基本的な使い方

メタデータ収集とデータプロファイリング

プロファイリングで収集する項目

データベースのテーブルを指定して、メタデータ収集とデータプロファイリング(テーブル統計情報とカラム統計情報の取得)を行うことができます。

収集する項目は以下の通りです。

  • メタデータ(データベースディクショナリから取得)
    • スキーマ名
    • テーブル名
    • カラム名
    • カラムデータ型
  • テーブル統計情報
    • レコード数
    • カラム数
  • カラム統計情報
    • 最小値/最大値
    • 非NULL割合
    • カーディナリティ(ユニーク性)
    • データ分布(出現頻度別ランク)

メタデータ収集とプロファイリングの実施

メタデータ収集とデータプロファイリングは、 dm-run-profiler コマンドを用い て行います。

dm-run-profiler コマンドのオプションで、接続するデータベースの種類 (Oracle、PostgreSQLなど)を指定し、必要なパラメータ(ホスト名やポート 番号、データベース名やユーザ名、パスワードなど)を与え、テーブル名を指 定して実行すると、 db-run-profiler コマンドが自動的にメタデータ収集 とデータプロファイリングを行います。

以下は、 SCOTT.CUSTOMER というテーブルをプロファイリングする実行例です。

dm-run-profiler --dbtype oracle --tnsname ORCL --user scott --pass tiger SCOTT.CUSTOMER

Oracleデータベースに対してプロファイリングを行う場合には、接続先をホスト名かTNS名で指定します。この例ではTNS名で接続しています。

引数に列挙することで複数のテーブルを指定することもできます。

dm-run-profiler --dbtype oracle --tnsname ORCL --user scott --pass tiger SCOTT.CUSTOMER SCOTT.ORDERS

スキーマ名だけを指定した場合には、指定したスキーマ内のすべてのテーブルを検出し、プロファイリングします。

以下は、Oracleの ORCL データベースの SCOTT スキーマ内のすべてのテーブルを対象にプロファイリングする実行例です。

dm-run-profiler --dbtype oracle --tnsname ORCL --user scott --pass tiger SCOTT

スキーマ名やテーブル名が何も指定されなかった場合、データベース内に存在するスキーマの一覧が表示されます。1つかそれ以上のスキーマを指定する必要があります。

dm-run-profiler コマンドの詳細については「コマンドリファレンス」を参照してください。

クエリ処理時間の制限とデータプロファイル項目

dm-run-profiler コマンドでは、クエリのタイムアウトを設定することができます。 --timeout オプションでクエリタイムアウトを設定すると、プロファイリングを行うクエリの実行時間の上限を設定することができます。

上限時間を超えたクエリは中断され、テーブルの実データに対するクエリではなく、各DBMSの持つデータベース統計情報から収集するように切り替えます(但し、データベース統計情報が取得されていない場合には、データプロファイルを取得できません)。

なお、データベース統計情報が使われる場合、すべてのデータプロファイルを取得できるわけではありません。また、データベース統計情報から収集したデータプロファイルは、実際の値と異なることがあります。

そのため、 --enable-validation オプションを指定した場合にはクエリタイムアウトの指定は無効化されます。これは、データ検証において必ずしも正確ではないデータベース統計情報を使う事態を避けるためです。

取得できるデータプロファイルは以下の通りです。

  • テーブルスキャン+カラムスキャン(テーブル、カラムともにタイムアウトが発生しなかった場合、または --enable-validation を指定した場合)
    • テーブル - レコード数
    • カラム - NULL数
    • カラム - カーディナリティ
    • カラム - 最小値・最大値
    • カラム - 最頻値ランキング
  • テーブルスキャン+カラム統計情報(テーブルはタイムアウトが発生せず、カラムのプロファイリング中にタイムアウトが発生した場合)
    • テーブル - レコード数
    • カラム - NULL数
    • カラム - カーディナリティ
  • テーブル統計情報+カラム統計情報(テーブルのレコード数を取得している間にタイムアウトが発生した場合)
    • テーブル - レコード数

補足メタデータのCSVファイルからのインポート

インポートできる補足メタデータの項目

データベースディクショナリから取得できないメタデータは、CSVファイルから取り込むことで、ディクショナリから取得したメタデータと一緒に閲覧することができるようになります。

CSVファイルからインポートできる項目は以下の通りです。

  • テーブル関連
    • 日本語名
    • コメント
    • タグ
    • 管理者
  • カラム関連
    • 日本語名
    • コメント
    • 外部キー参照情報
  • データマッピング関連
    • データソースのデータベース名
    • データソースのスキーマ名
    • データソースのテーブル名
    • データソースのカラム名
    • 変換種別
    • 変換ルール
    • 更新者

これらの情報をCSVファイルとして作成し、それをインポートすることでディクショナリから取得したメタデータを補足します。

各CSVファイルのフォーマットについては、「CSVファイルフォーマット」を参照してください。

補足メタデータのインポート方法

テーブルメタデータCSVおよびカラムメタデータCSVを取り込むには dm-import-csv コマンドを、データマッピングCSVを取り込むには dm-import-datamapping コマンドを使います。

dm-import-csv コマンドは、CSVファイルのヘッダ(1行目)のフィールド名からCSVファイルの内容(テーブル関連かカラム関連か)を判断して、適切に変換してレポジトリにインポートします。

以下は、テーブル関連の補足メタデータをShift-JISのCSVファイルから取り込んでいる例です。

dm-import-csv repo.db pgsql_tables.csv

また、CSVファイルの文字コードはShift-JISをデフォルトとしていますが、任意の文字コードを指定することもできます。

以下は、カラム関連の補足メタデータをUTF-8のCSVファイルから取り込む例です。

dm-import-csv --encoding utf-8 repo.db pgsql_columns.csv

データマッピングのCSVファイルは dm-import-datamapping コマンドでインポートします。

dm-import-datamapping repo.db pgsql_datamapping.csv

dm-import-csv および dm-import-datamapping の各コマンドの詳細は「コマンドリファレンス」を参照してください。

データ検証の設定と実施

データ検証の設定

データ検証を行うためには、まずデータ検証のためのルールファイルを作成します。

ルールファイルはCSV形式のファイルで、検証したいテーブル名やカラム名、検証ルールやパラメータなどを記載します。

ルールの記述方法の詳細については「データ検証ルール設定リファレンス」を参照してください。

このCSVファイルを dm-import-csv コマンドを使ってレポジトリにインポートします。

dm-import-csv repo.db validation_oracle.txt

dm-import-csv コマンドの詳細は「コマンドリファレンス」を参照してください。

データ検証の実施

dm-run-profiler コマンド実行時に --enable-validation オプションを指定して、プロファイリングと同時にデータの検証を行います。

以下の例は、 SCOTT.CUSTOMER テーブルをプロファイリングするのと同時にデータ検証も行う例です。

dm-run-profiler --dbtype oracle --tnsname ORCL --user scott --pass tiger --enable-validation SCOTT.CUSTOMER

dm-run-profiler コマンドで実行したデータ検証の結果は、取得したメタデータやデータプロファイルと一緒にレポジトリに保存されます。

データ検証結果のチェック

データ検証結果のチェックを行うには、 dm-verify-results コマンドを使います。

レポジトリを指定して dm-verify-results コマンドを実行すると、各テーブルについて最新のデータ検証結果にルール違反があったかどうかを確認することができます。

dm-verify-results repo.db

ルール違反が検知されると、メッセージを出力するとともに終了コードが「0以外」を返却します。

データ検証をバッチ処理で行う場合には、この dm-verify-results コマンドを使うことで異常を検知することができます。

ビジネス用語集の作成

ビジネス用語の定義

テーブルやカラムの日本語名や、各種のコメントの中に出てくる用語について、その意味や同義語、関連用語、関連IT資産(テーブル)などを定義し、その定義をデータカタログから参照することができます。

また、任意の用語を検索することもできます。

ビジネス用語の登録

定義したい用語とその定義を記述したCSVファイルを作成します。

CSVファイルの詳細は「CSVファイルフォーマット」を参照してください。

作成したCSVファイルを dm-import-csv コマンドを使ってレポジトリにインポートします。

dm-import-csv repo.db business_glossary.csv

dm-import-csv コマンドの詳細は「コマンドリファレンス」を参照してください。

データセットの定義とデータカタログの作成

データセットの定義

データセットは、スキーマ単位でまとめられたテーブルのグループ、または同じタグが付けられたテーブルのグループとして定義されます。(テーブルへのタグ付けはテーブルの補足メタデータで設定することができます。詳細は「」補足メタデータのCSVファイルからのインポート」」を参照してください)

データセットコメントの登録

テーブルのグループであるデータセットに対してコメントを登録することができます(このコメントは利用者への説明としてデータカタログに掲載されます)。

コメントを登録したいデータセットがスキーマの場合、スキーマコメントを記載したCSVファイルを作成します。

コメントを登録したいデータセットがタグの場合、タグコメントを記載したCSVファイルを作成します。

各CSVファイルの詳細は「スキーマコメントCSV」および「タグコメントCSV」を参照してください。

作成したCSVファイルを dm-import-csv コマンドを使ってレポジトリにインポートします。

dm-import-csv repo.db schema_comments.csv
dm-import-csv repo.db tag_comments.csv

dm-import-csvコマンドの詳細は「コマンドリファレンス」を参照してください。

データセット関連資料の添付

データセットのコメントはMarkdown形式で記述できるため比較的柔軟な表現が可能ですが、Markdownだけでは表現しきれない場合や、分量が多くなる場合があります。

そのような場合には、関連ファイル(具体的にはPowerPointやExcelのファイルなど)をデータセットのコメントに添付することができます。

ファイルを添付するには dm-attach-file コマンドを使います。

レポジトリを指定し、添付したいデータセットの種別と名前を指定して、ファイルの追加を実行します。

以下は、「 タグ1 」というタグのデータセットに「 Tag1.ppt 」というファイルを添付する例です。

dm-attach-file repo.db tag:タグ1 add Tag1.ppt

以下は、「 testdb.public 」というスキーマのデータセットに「 schema_design.xlsx 」というファイルを添付する例です。

dm-attach-file repo.db schema:testdb.public add schema_design.xlsx

dm-attach-file コマンドの詳細は「コマンドリファレンス」を参照してください。

データカタログの出力

レポジトリ内に取得・収集・登録した情報を閲覧するためには、データカタログとしてHTMLファイルを出力する必要があります。

dm-export-repo コマンドでレポジトリと出力先ディレクトリを指定して実行すると、データカタログをHTMLとして出力します。

dm-export-repo repo.db ./html

dm-export-repo コマンドでは生成するHTMLのテンプレートをデフォルトとは違うものを指定することもできます。テンプレートを変更することでデータカタログをカスタマイズすることができます。

dm-export-repo --template /path/to/mytemplates repo.db html

dm-export-repo コマンドの詳細は「コマンドリファレンス」を参照してください。