10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

この記事は インフォマティカ Advent Calendar 2021 Day 13 の記事として書かれています。

はじめに

インフォマティカのデータカタログである、 Enterprise Data Catalog(以下、EDC)の大きな特徴として、リネージュを可視化できるという機能があります。
リネージュ(Lineage)とは系統や系列を表す英単語で、DBやファイルシステム間でのデータの流れを可視化し、データの流通経路の全体像を、視覚的に把握する事ができる大変便利な機能です。詳細はこちらの過去のブログもご覧下さい。

今回は、最新のCould NativeなDWHソリューションである、Snowflakeのリネージュを可視化してみます。
インフォマティカのデータカタログ(EDC)では、Snowflakeの固有の機能も含めたメタデータおよびリネージュを取得する事ができます

メタデータ

Database, Schema, Tables, Views, External tableをはじめとするデータ・オブジェクトに加えて、Stage, Pipe, Procedureなどのデータ・パイプラインやスクリプトも取得することができます。
こちらの過去のブログでも詳細を記載しています

  • メタデータの一覧 (Schema, Tablesの確認、ViewsのSQLとリネージュ)
    ※クリックして拡大表示できます
wjDXZLzRkc.gif

  • リレーションの表示 (外部キー、Viewなどの関係性)
rIkMcxCixB.gif

Stage / Pipesのリネージュ

前の章で見たメタデータは、各オブジェクトのシステム属性を表示したものとなりますが、この後の章ではSnowflakeが持つデータの流れであるリネージュを視覚化してみたいと思います。

Snowflakeでは、標準機能として下記のようなデータロードを行うオプションがあり、クラウド・ストレージなどの外部データを容易にかつ継続的に取り込む事ができます。

1. ステージ(Stage) : 各種クラウド・ストレージ上のファイルへのSnowflakeからの透過的なアクセス
2. パイプライン(Snowpipe / Pipe) : ステージからの一括もしくは継続的なデータロード

  • ステージとパイプラインのリネージュ

下記のイメージの例では、ステージとして定義されたS3上に配置されたCSVファイルから、Snowpipeを使ってSnowflakeのテーブルに対してロードするパイプライン処理が定義されています。それらをデータカタログを使って、カラムレベルでのリネージュの表示、およびPipeで実行されているSQLクエリの内容を確認する事ができます。
これによりデータの流れと内部的な変換ロジックを、正確にかつ視覚的に確認することができます。
※クリックして拡大表示できます

Rm1zuUta0J.gif

Stored procedureのリネージュ

Snowflake上でのアプリケーション開発として、ストアドプロシージャやUDFs(ユーザー定義関数)などを使って、バッチ処理などの複雑で高度な処理を実装することができます。
インフォマティカのデータカタログでは、それらの複雑なコードやスクリプト群を解析し、メタデータやリネージュとして取り込み、ブラックボックスになりがちなビジネスロジックの全体像やデータの流れ、詳細な変換ロジックを容易に把握する事が出来ます。

具体的には、Javascriptで書かれたストアドプロシージャで処理するデータの流れを解析し、それらを線でつながったリネージュとして可視化でき、さらにドリルダウンすることで、カラム単位でどのようなロジックを使って変換処理をしているかをSQLの構文レベルも含めて解析する事で詳細に把握する事ができます。
また、UDFs(ユーザー定義関数)についても、SQLベースの定義から解析することができます。
下記のイメージでは、リネージュ上でドリルダウンして、詳細なロジックを確認できる事がわかります。

5us8V04oUq.gif

まとめ

インフォマティカのデータカタログである、Enterprise Data Catalog(EDC)では標準的なメタデータの取得に加えて、リネージュの取得・描画に関する機能を強化しており、さまざまなデータソースから高度で複雑なリネージュを取得する事が出来ます。
別の記事において、他システムからのリネージュ取得についても解説していきます。

10
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?