📚

ArangoDBのGraphサンプルデータ

2021/10/06に公開

ArangoDB as Graph Database

https://www.arangodb.com/graph-database/
を読んだところ

Pregel Community Detection Tutorial

https://www.arangodb.com/learn/graphs/pregel-community-detection/
に良いサンプルデータが有ったので持ってくるまでを記載します。

コレクション作成

  • 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という名前で作成)
Graph作成

作成後作られたtestをクリックすると
作成されたGraph

このようなグラフ画面になります(毎回開くたびにランダムに変わるっぽい)
Graph図

Discussion