Graphs are widely used as a popular representation of the network structure of connected data. Graph data can be found in a wide spectrum of various domains such as social systems, ecosystems, biological networks, knowledge graphs, and information systems. With the continuous penetration of artificial intelligence technologies, graph learning (i.e., machine learning on graphs) has been gaining rapidly increasing attention from both researchers and practitioners. Graph learning has proved to be effective for many tasks, such as classification, link prediction, recommender systems, and anomaly detection. Generally, graph learning methods extract relevant features of graphs by taking advantage of machine learning algorithms. In this survey, we present a comprehensive overview on the state of the art of graph learning. In particular, special attention is paid to four categories of existing graph learning methods, including graph signal processing, matrix factorization, random walk, and deep learning. Major models and algorithms under these categories are reviewed respectively. Graph learning applications are examined. In addition, we discuss several promising research directions in this field.