Knowledge graph completion (KGC) is a hot topic in knowledge graph construction and related applications, which aims to complete the structure of knowledge graph by predicting the missing entities or relationships in knowledge graph and mining unknown facts. Starting from the definition and types of KGC, existing technologies for KGC are analyzed in categories. From the evolving point of view, the KGC technologies could be divided into traditional and representation learning based methods. The former mainly includes rule-based reasoning method, probability graph model, such as Markov logic network, and graph computation based method. The latter further includes translation model based, semantic matching model based, representation learning based and other neural network model based methods. In this paper, different KGC technologies are introduced, including their advantages, disadvantages and applicable fields. Finally the main challenges and problems faced by the KGC are discussed, as well as the potential research directions.