Windows版DockerのインストールとグラフDBのDockerImageの作成
これまでマカーだったのに、メモリ不足に我慢できずノートPCを更新することに。
金額とスペックを相談したところ、HPのspecre X360に。
めちゃくちゃ熱くなるところ以外は満足してます。設定もいろいろやったのですが、今日はタイトルのことで色々やったので記録しておく。
Docker for Windowsのインストール
参考:https://www.kakistamp.com/entry/2018/11/26/231341
設定→アプリ→アプリと機能→関連設定「プログラムと機能」→「Windowsの機能の有効化または無効化」を開く
Hyper-Vのチェックを全てにチェックを入れる
win+X→A で管理者でPowerShellを開く
Chocolateyを使って、Dockerをインストール
choco install -y docker
choco install -y docker-compose
choco install -y docker-for-windows
以上で完了。Dockerを起動するとメッセージが出るので、パソコンを再起動する。
Redmineで起動を確認する
これで127.0.0.1:8080にアクセスするとredmineの画面が表示される
WindowsのDockerでPGXを使えるようにする。
参考:https://www.slideshare.net/HikariMorita/windows-docker-pgx
1.PGXのダウンロード
Oracleのサイトからダウンロードする。アカウントの作成が必要。
商用利用はできないが、無償で検証や開発は可能とのこと。
https://www.oracle.com/technetwork/oracle-labs/parallel-graph-analytix/downloads/index.html
今回は参考ページにあわせて、2.7.0をダウンロード
2.configファイルを作成
作業するフォルダとしてc:\Users\homaju\data\pgxを作成。
ここに、configファイルを作成する。
{
"port": 7007,
"enable_tls": false,
"enable_client_authentication": false
}
同じ場所にDockerfileを作成
FROM openjdk:8-jdk
ARG PGX_VERSION=2.7.0
ENV PGX_HOME=/opt/pgx \
INSTALL_FILE=pgx-${PGX_VERSION}-server.zip# 1. copy from downloaded file
COPY $INSTALL_FILE $PGX_HOME/# 2. extract the file
WORKDIR $PGX_HOME
RUN apt-get install -y unzip && \
unzip $INSTALL_FILE && \
rm $INSTALL_FILE# 3. Change config file
WORKDIR ./pgx-${PGX_VERSION}/
RUN rm ./conf/server.conf
COPY server.conf ./conf/server.confCMD ./bin/pgx
ダウンロードしたzipファイル、server.config、Dockerfileを同じフォルダに保存する。
3. Dockerイメージの作成
PowerShellの画面などで、1で作成したフォルダに移動する。
コマンドを実行
>docker build -t pgx-2.7.0 .
実行が成功したらコマンドで確認
>docker images
4. PGX Shellを起動
>docker run -it --rm pgx-2.7.0 ./bin/pgx
これで起動してPGXのShellが使えるようになる。
終了時は>:exit
ヘルプ表示は>:help
5. データを実際に使用してみる。(準備)
グラフDBの説明や実際の方法は下記スライドを参考にした。
https://www.slideshare.net/oracle4engineer/oracle-labs-pgx/
データの入手でExposedata.comからとなっているが、現時点でドメインが失効しているので、同じデータをKaggleから取得
https://www.kaggle.com/csanhueza/the-marvel-universe-social-network/downloads/the-marvel-universe-social-network.zip/1
Kaggleでのアカウントが必要なので注意
ダウンロードしたデータを解凍して、PGXフォルダにstorage/hero-networkを作成し、csvファイルを保存する。
ロードするための情報をJSONで記述する
hero-network.csv.jsonをダウンロードデータと同じフォルダに保存
{
"uri": "hero-network.csv"
, "format": "edge_list"
, "node_id_type": "string"
, "separator": ","
}
6. データフォルダをマウントして起動
>docker run -it --rm -v c:\Users\homaju\data\PGX\strage:/opt/pgx/workspace pgx-2.7.0
データの読み込みは
pgx> G = session.readGraphWithProperties("../workspace/hero-network/hero-network.csv.json")
読み込んだデータの処理は上記参照のP26からを参考に
https://www.slideshare.net/oracle4engineer/oracle-labs-pgx/3