クイックスタート¶
ソースコードの入手とインストール¶
Githubのソースコードレポジトリを git clone
してソースコードを取得します。
[snaga@localhost tmp]$ git clone https://github.com/snaga/Hecatoncheir.git
Cloning into 'Hecatoncheir'...
remote: Counting objects: 3482, done.
remote: Compressing objects: 100% (237/237), done.
remote: Total 3482 (delta 176), reused 19 (delta 19), pack-reused 3226
Receiving objects: 100% (3482/3482), 864.87 KiB | 1.09 MiB/s, done.
Resolving deltas: 100% (2534/2534), done.
[snaga@localhost tmp]$ cd Hecatoncheir/
[snaga@localhost Hecatoncheir]$ ls
LICENSE build.bat dm-import-csv env.sh
QuickStart.md build.sh dm-import-datamapping requirements.txt
README.md demo dm-run-profiler setup.py
README.oracle dm-attach-file dm-run-server src
bin dm-export-repo dm-verify-results
[snaga@localhost Hecatoncheir]$
次に pip install .
でインストールを行います。
[snaga@localhost Hecatoncheir]$ sudo /usr/local/bin/pip install .
Processing /disk/disk1/snaga/Hecatoncheir/Hecatoncheir
Requirement already satisfied: jinja2==2.8 in /usr/local/lib/python2.7/site-packages (from hecatoncheir==0.8)
Requirement already satisfied: MarkupSafe in /usr/local/lib/python2.7/site-packages (from jinja2==2.8->hecatoncheir==0.8)
Installing collected packages: hecatoncheir
Running setup.py install for hecatoncheir ... done
Successfully installed hecatoncheir-0.8
[snaga@localhost Hecatoncheir]$
以下のコマンドがインストールされたら完了です。
[snaga@localhost tmp]$ ls /usr/local/bin/dm-*
/usr/local/bin/dm-attach-file /usr/local/bin/dm-import-datamapping
/usr/local/bin/dm-dump-xls /usr/local/bin/dm-run-profiler
/usr/local/bin/dm-export-repo /usr/local/bin/dm-run-server
/usr/local/bin/dm-import-csv /usr/local/bin/dm-verify-results
[snaga@localhost tmp]$
メタデータ取得とデータのプロファイリング¶
次に、実際のテーブルに対してメタデータ取得とデータプロファイリングを実行します。ここではOracleの SCOTT
スキーマ、 CUSTOMER
テーブルを対象とします。
メタデータの収集とデータプロファイリングをするには dm-run-profiler
コマンドを使います。
データベースの種類、TNS名、ユーザ名、パスワード、プロファイリング対象のテーブル名( SCOTT.CUSTOMER
)を指定して、 dm-run-profiler
コマンドを実行します。
[snaga@localhost tmp]$ dm-run-profiler --dbtype oracle --tnsname orcl --user scott --pass tiger SCOTT.CUSTOMER
[2017-04-30 15:57:09] INFO: 接続先(TNS): scott@orcl
[2017-04-30 15:57:09] INFO: データベースに接続しています。
[2017-04-30 15:57:09] INFO: データベースに接続しました。
[2017-04-30 15:57:09] INFO: レポジトリを初期化しました。
[2017-04-30 15:57:09] INFO: レポジトリファイル repo.db をオープンしました。
[2017-04-30 15:57:09] INFO: ----------------------------------------------
[2017-04-30 15:57:09] INFO: テーブルスキャン並列度: 0
[2017-04-30 15:57:09] INFO: テーブルプロファイリングスキップ: False
[2017-04-30 15:57:09] INFO: 行数プロファイリング: True
[2017-04-30 15:57:09] INFO: カラムプロファイリングスキップ: False
[2017-04-30 15:57:09] INFO: カラムプロファイリング閾値: 100,000,000行
[2017-04-30 15:57:09] INFO: 最小値/最大値プロファイリング: True
[2017-04-30 15:57:09] INFO: NULL値数プロファイリング: True
[2017-04-30 15:57:09] INFO: 最頻値プロファイリング: 10 件
[2017-04-30 15:57:09] INFO: カーディナリティプロファイリング: True
[2017-04-30 15:57:09] INFO: データ検証有効化: False
[2017-04-30 15:57:09] INFO: サンプルレコード取得: True
[2017-04-30 15:57:09] INFO: ----------------------------------------------
[2017-04-30 15:57:09] INFO: 1 テーブルのプロファイリングを開始します。
[2017-04-30 15:57:09] INFO: テーブル SCOTT.CUSTOMER のプロファイリングを開始します。
[2017-04-30 15:57:09] INFO: データ型の取得: 開始
[2017-04-30 15:57:09] INFO: データ型の取得: 完了
[2017-04-30 15:57:09] INFO: 行数の取得: 開始
[2017-04-30 15:57:09] INFO: 行数の取得: 完了 (28)
[2017-04-30 15:57:09] INFO: サンプル行の取得: 開始
[2017-04-30 15:57:09] INFO: サンプル行の取得:完了
[2017-04-30 15:57:09] INFO: NULL値数の取得: 開始
[2017-04-30 15:57:09] INFO: NULL値数の取得: 完了
[2017-04-30 15:57:09] INFO: 最小値/最大値の取得: 開始
[2017-04-30 15:57:09] INFO: 最小値/最大値の取得: 完了
[2017-04-30 15:57:09] INFO: 最頻値の取得(1/2): 開始
[2017-04-30 15:57:09] INFO: 最頻値の取得(2/2): 開始
[2017-04-30 15:57:09] INFO: 最頻値の取得: 完了
[2017-04-30 15:57:09] INFO: カーディナリティの取得: 開始
[2017-04-30 15:57:09] INFO: カーディナリティの取得: 完了
[2017-04-30 15:57:09] INFO: レコード検証: 開始
[2017-04-30 15:57:09] INFO: レコード検証: データ検証ルールがありません
[2017-04-30 15:57:09] INFO: テーブル SCOTT.CUSTOMER のプロファイリングが完了しました。
[2017-04-30 15:57:09] INFO: 1 テーブル中 0 テーブルのプロファイリングに失敗しました
[2017-04-30 15:57:09] INFO: 1 テーブルのプロファイリングを完了しました
[snaga@localhost tmp]$
メタデータ取得とプロファイリングが完了すると、取得したデータはレポジトリ(デフォルトでは repo.db
というファイル名)に保存されます。
[snaga@localhost tmp]$ ls -l repo.db
-rw-r--r-- 1 snaga snaga 35840 4月 30 15:57 2017 repo.db
[snaga@localhost tmp]$
HTMLファイルへのエクスポート¶
取得したメタデータとデータプロファイルをHTMLファイルに出力するには、 dm-export-repo
コマンドを使います。
レポジトリファイルと出力用ディレクトリを指定して dm-export-repo
コマンドを実行すると、指定したディレクトリにファイルを出力します。デフォルトではHTMLファイルフォーマットで出力します。
[snaga@localhost tmp]$ dm-export-repo repo.db html
[2017-04-30 15:58:14] INFO: 出力用ディレクトリ html を作成しました。
[2017-04-30 15:58:14] INFO: レポジトリファイル repo.db をオープンしました。
[2017-04-30 15:58:14] INFO: html/orcl.SCOTT.CUSTOMER.html を出力しました。
[2017-04-30 15:58:14] INFO: html/orcl.SCOTT.html を出力しました。
[2017-04-30 15:58:14] INFO: html/validation-valid.html を出力しました。
[2017-04-30 15:58:14] INFO: html/validation-invalid.html を出力しました。
[2017-04-30 15:58:14] INFO: html/index.html を出力しました。
[2017-04-30 15:58:14] INFO: html/index-tags.html を出力しました。
[2017-04-30 15:58:14] INFO: html/index-schemas.html を出力しました。
[2017-04-30 15:58:14] INFO: html/glossary.html を出力しました。
[2017-04-30 15:58:15] INFO: static ディレクトリを html にコピーしました。
[snaga@localhost tmp]$ ls -l html
total 140
-rw-rw-r-- 1 snaga snaga 5111 4月 30 15:58 2017 glossary.html
-rw-rw-r-- 1 snaga snaga 6043 4月 30 15:58 2017 index-schemas.html
-rw-rw-r-- 1 snaga snaga 5620 4月 30 15:58 2017 index-tags.html
-rw-rw-r-- 1 snaga snaga 6043 4月 30 15:58 2017 index.html
-rw-rw-r-- 1 snaga snaga 79935 4月 30 15:58 2017 orcl.SCOTT.CUSTOMER.html
-rw-rw-r-- 1 snaga snaga 6046 4月 30 15:58 2017 orcl.SCOTT.html
drwxr-xr-x 4 snaga snaga 4096 4月 29 16:41 2017 static
-rw-rw-r-- 1 snaga snaga 4466 4月 30 15:58 2017 validation-invalid.html
-rw-rw-r-- 1 snaga snaga 4704 4月 30 15:58 2017 validation-valid.html
[snaga@localhost tmp]$
このHTMLファイルをブラウザで表示することによって、データディクショナリから収集したメタデータとデータプロファイリングの結果を確認することができます。