IICS Cloud Data Profilingを使ってみる

2020.12.15

こんにちは。データアナリティクス事業本部の松村です。
本エントリはクラスメソッド インフォマティカ Advent Calendar 2020のエントリです。

Cloud Data Profilingとは

Informatica Intelligent Cloud Services(以降IICS)のCloud Data Profilingとは、簡単に言うと、既存のデータソースの中身をスキャンして、スキーマ定義だけでは読み取れない、実際のデータのパターンや分布などのサマリ情報を生成してくれるものです。一般的にこのプロセスはデータプロファイリングと呼ばれます。

インフォマティカ製品には、より強力なEnterprise Data Catalog(以降EDC)という製品があるのですが、それの簡易版とも言えるでしょう。Cloud Data ProfilingはEDCに比べると機能が限定されていますが、その分導入も運用もお手軽です。EDCはアプリケーションサーバ、Hadoopクラスタ、リポジトリ用のRDBといったサーバ群を必要とするのに対して、Cloud Data Profilingに必要なものはSecure Agentだけです。
また、プロファイリングの結果もIICSのクラウドプラットフォームに保存されますので、バックアップのことを気にする必要はありません。ただし、このことはプロファイル結果(実際のデータの一部も含みます)がインターネットを通じてプライベートネットワークの外部に配置されることを意味します。セキュリティ要件などでこれが許されない場合は、Cloud Data Profilingを使用することはできません。一方で、EDCはプライベートネットワーク内部に構築することが可能です。

EDCでできることについてはアドベントカレンダーの別のエントリで紹介していますので、そちらもぜひご覧ください!

Enterprise Data Catalogでデータカタログを理解してみた

データプロファイリングの実行

早速データプロファイリングを実行してみます。マイサービスの『データプロファイリング』をクリックします。

メニューの『新規』をクリックします。

『データプロファイリングタスク』をクリックします。

データプロファイリングの詳細を設定します。名前は適当なものを入力します。

プロファイリング対象のテーブル指定と動作設定を行います。

今回はOracleコネクタを使って、サンプルデータベースのCUSTOMERSを選択しました。
読み込む行数は全行(55,500行)にしました。行数を指定することもできるのですが、ランダムサンプリングではなく結果ストリームの先頭からの行数になりますので、データソースの実装によってはスキャンされるデータに偏りが生じます。たとえばクラスタ化インデックスを設定したテーブルだと、インデックス順にソートされたデータの先頭N行がスキャンされることがあり得ます。

ドリルダウンは、プロファイルリング結果を閲覧中に、特定の値やパターンによってデータをフィルタしてプレビューする機能です。後で実際の動きを紹介します。
これはプロファイル結果自体に影響することはありません。今回は『はい』を選択しておきますが、後でプロファイリングを再実行することなくドリルダウン設定だけを変更することができます。

最後にプロファイリング対象のカラムを指定します。今回はすべてのカラムを指定しています。
設定はこれだけです。保存して実行します。

プロファイリングの進捗状況は『マイジョブ』などで確認することができます。成功したら、データプロファイリングのメニューに戻ります。

プロファイル結果の参照

プロファイル結果は、保存されたデータプロファイリングをクリックすることで参照できます。それでは見てみましょう。

こちらがプロファイル結果です。全カラムのサマリ(左上)、個別のカラムの詳細(右上)、データプレビュー(下)の3つのペインから構成されています。それぞれ詳しく解説していきます。

全カラムのサマリ

プロファイリングしたすべてのカラムのサマリ情報です。
グラフの色は後続の統計値の文字色に対応しており、赤がNULLの行の割合、緑が個別の(ユニーク値の)行の割合、黒が重複のある行の割合です。

右にスクロールして他の統計値を表示してみます。さっきのスクリーンショットに載っていなかった統計値項目はこれで全てです。

個別カラムの詳細

全カラムのサマリのペインでグリッドの行をクリックすると、その行のカラムの詳細が右側のペインに表示されます。これはCUST_CREDIT_LIMIT(顧客の与信限度額)のものです。

『トレンド』は、このスクリーンショットだと何を表しているのかわかりませんが、NULL値、ユニーク値、重複のある値のそれぞれについて、直近の5回のプロファイル結果における割合の変化を表しています。このエントリでは触れませんが、同一のテーブルに対して時期を空けて複数回プロファイリングを行って、もう少し詳細に結果の比較を行うこともできます。

『データ型』の先頭の『文書化されたデータ型』(この画像だとdouble(15))は、テーブル定義で定められたデータ型です。なお、CUST_CREDIT_LIMITのDBにおけるデータ型は、precisionscaleの指定がないNUMBER型です。
2行目以降は、実際のデータのうち、そのデータ型に当てはめることができるものがどのぐらいあるかを表しています。値が複数のデータ型に当てはまる場合もありますので、パーセンテージの合計は必ずしも100%とは限りません。

『パターン』は、特定のパターンに当てはまるデータがどれぐらいあるかを表します。9(4)というのは4桁の数字であることを表しています。

『もっとも頻度の高い値(上位5件)』は特に説明の必要はないと思います。値が区分値や離散値の場合に有効ですね。
カラムの定義が数値型であれば、平均や合計などの統計値も表示されます。

ヒストグラム

全カラムのサマリのペインでカラムの名前をクリックすると、そのカラムのヒストグラムが同じペインに表示されます。これはCUST_CITY(居住地)のものです。

ヒストグラムには、カラムの値のうちユニークなものがデフォルトでは最大で500個表示されます。一部範囲を拡大してさらに詳細を確認することができます。
オレンジ色の、ヒストグラム上の下線や値の左の縦棒は、その値が異常値と判定されたことを表しています。具体的にどんな基準で異常値判定をしているかはわかりません。

ヒストグラム上の四角をマウスでドラッグすることで、詳細表示の範囲を変えることができます。これは実際に範囲を変えてみたところです。

プレビュー

画面の下のペインには、プロファイリング対象のテーブルのデータのプレビューが最大で10行表示されます。これはその場でデータの再取得を行っているので、データプロファイリング実行時に行数を絞っていたり、その後データが更新がされたりした場合は、実際にスキャンされたデータとは異なるものが表示されることがあります。

プロファイル結果のドリルダウン

データプロファイリングの実行前に設定したドリルダウン機能について説明します。
ヒストグラムペインや、個別カラムの詳細ペインに表示されるチェックボックスをチェックすると、その条件に合致するデータが最大で100行プレビュー表示されるものです。これはCUST_CITYLos Angelsのデータをドリルダウンしたところです。
やはりこれも再検索を行っているので、データプロファイリング当時とは異なるデータが表示されることがあります。

データのパターンでドリルダウンしたら便利そうだと思ってやってみたのですが、このようなエラーが出て結果が表示されませんでした。もう少し原因を調べてみて、何かわかったら追記します。

プロファイル結果のエクスポート

プロファイル結果はExcel形式でエクスポートすることもできます。画面右上の三点リーダーのようなアイコンをクリックして、『プロファイル結果のエクスポート』を選択します。

詳細を設定して『エクスポート』をクリックします。

エクスポートしたファイルはそのままブラウザでダウンロードされます。これはダウンロードされたファイルを開いたところです。

最後に

Cloud Data Profilingをざっと使ってみました。明日はもう少し細かい機能を使ってご紹介したいと思います。