📚
ArangoDBのGraphサンプルデータ
ArangoDB as Graph Database
を読んだところ
Pregel Community Detection Tutorial
に良いサンプルデータが有ったので持ってくるまでを記載します。
コレクション作成
-
profiles
はDocumentタイプ -
relations
はEdgeタイプ
で作成します
グラフデータの準備
curl -OL https://snap.stanford.edu/data/soc-pokec-profiles.txt.gz
curl -OL https://snap.stanford.edu/data/soc-pokec-relationships.txt.gz
で落としてきます
※ArangoDBコンテナにはcurlがないので適当に用意して落としてきてください
tsvファイルを生成する
profiles用tsvファイル(soc-pokec-profiles-arangodb.txt)
echo -e '_key\tpublic\tcompletion_percentage\tgender\tregion\tlast_login\tregistration\tAGE\tbody\tI_am_working_in_field\tspoken_languages\thobbies\tI_most_enjoy_good_food\tpets\tbody_type\tmy_eyesight\teye_color\thair_color\thair_type\tcompleted_level_of_education\tfavourite_color\trelation_to_smoking\trelation_to_alcohol\tsign_in_zodiac\ton_pokec_i_am_looking_for\tlove_is_for_me\trelation_to_casual_sex\tmy_partner_should_be\tmarital_status\tchildren\trelation_to_children\tI_like_movies\tI_like_watching_movie\tI_like_music\tI_mostly_like_listening_to_music\tthe_idea_of_good_evening\tI_like_specialties_from_kitchen\tfun\tI_am_going_to_concerts\tmy_active_sports\tmy_passive_sports\tprofession\tI_like_books\tlife_style\tmusic\tcars\tpolitics\trelationships\tart_culture\thobbies_interests\tscience_technologies\tcomputers_internet\teducation\tsport\tmovies\ttravelling\thealth\tcompanies_brands\tmore\twk' > soc-pokec-profiles-arangodb.txt
gunzip < soc-pokec-profiles.txt.gz | sed -e 's/null//g' -e 's~^~P~' -e 's~ $~~' >> soc-pokec-profiles-arangodb.txt
※soc-pokec-profiles-arangodb.txtに関してechoでフィールド名追加してますが59個しか無くデータが60個あるためarangoimpでエラーが出てしまいます。対策としてフィールド名の60個目としてwkを入れています。
relationships用tsvファイル(soc-pokec-relationships-arangodb.txt)
echo -e '_from\t_to\tvertex' > soc-pokec-relationships-arangodb.txt
gzip -dc soc-pokec-relationships.txt.gz | awk -F"\t" '{print "profiles/P" $1 "\tprofiles/P" $2 "\tP" $1}' >> soc-pokec-relationships-arangodb.txt
ArangoDBにtsvファイルをインポート
arangoimp -c none --server.endpoint http+tcp://localhost:8529 --type tsv --collection profiles --file soc-pokec-profiles-arangodb.txt
arangoimp -c none --server.endpoint http+tcp://localhost:8529 --type tsv --collection relations --file soc-pokec-relationships-arangodb.txt
※コマンド実行時にパスワードを聞かれますのでroot
のパスワードを入れてください
※このコマンドはArangoDBコンテナの中で行ってください
Graph
GraphsのAdd Graphをクリックして作成します(ここではtest
という名前で作成)
作成後作られたtest
をクリックすると
このようなグラフ画面になります(毎回開くたびにランダムに変わるっぽい)
Discussion