1
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?

【OpenMetadata】Snowflakeのテクニカルメタデータをデータカタログに取得する

Last updated at Posted at 2024-12-25

ごあいさつ

こんにちは。日鉄ソリューションズ株式会社のhayashitaniです。
私が所属している組織では製造業のお客様向けに、データ基盤構築、データガバナンスコンサルなどを支援させていただいております。

今回は、OSSのデータカタログツール「OpenMetadata」を使って、データカタログでどのようなことができるのか、実機操作をしながら見ていきたいと思います。

          image.png

本記事を皮切りに、以下のような色々な機能を見ていく予定です。

no 概要
# データカタログ概要
1 Snowflakeのテクニカルメタデータをデータカタログに取得する ★本記事
# ビジネスメタデータをデータカタログに登録する
# データカタログの検索機能を触ってみる
# リネージをデータカタログに登録する
# Snowflakeの利用情報をデータカタログに登録する
# 用語をデータカタログに登録する
# サンプルデータをデータカタログに登録する
# プロファイリング情報をデータカタログに登録する
# データカタログで品質テストを行う
# データカタログで品質テストを行う

本投稿の内容は私個人の意見であり、組織の見解を代表するものではありません。

メタデータの概要については以下に投稿を行っています。

前提

  • OpenMetadataがインストール済み(本記事では、1.6.1バージョンを利用)
  • Snowflakeアカウントを利用可能
  • ブラウザを利用可能(本記事では、Chromeを利用)

準備

  • OpenMetadataからSnowflakeへの接続に利用する、ユーザー、ロール、仮想ウェアハウスを作成

  • 作成したユーザーに、作成したロールを付与

  • 作成したロールに、作成した仮想ウェアハウスの権限を付与

  • Snowflakeに以下の画像の通り、DB、スキーマ、テーブル、ビューを作成
    image.png

  • 作成したDB、スキーマ、テーブル、ビューに権限を付与
    ※ 2024年12月時点で必要な権限は、以下の通りでした。
     ・DB、スキーマ:USAGE
     ・テーブル、ビュー:SELECT

  • ブラウザからOpenMetadataに管理者ユーザーでログイン
    image.png

接続設定

「設定」>「サービス」>「データベース」>「新しいサービスを追加」をクリック

サービスは、OpenMetadata上にメタデータを登録するためのオブジェクトです。
Snowflakeで言うと、DBの1つ上の階層に該当します。
サービスがあると、同じDBでも複数のオブジェクトに分けて登録が可能となります。オブジェクトを分けるメリットとしては、権限管理の簡素化が挙げられます。
このような機能は、他のデータカタログ製品でもよく見かける仕様かと思います。

接続対象のツールが表示されるので、Snowflakeを選択します

image.png

サービス名の定義、接続情報の入力、接続テストが完了したら保存します
image.png

※ 接続テスト結果イメージです。
image.png

権限によっては、GetTags(タグ取得)、GetQueries(クエリ情報取得)でAttentionになると思いますが、こちらに関しては、別の投稿で見ていく予定なので今回は無視します。

接続設定が完了すると以下のようにサービスのページが作成されます
image.png

取込ジョブ作成

サービスオブジェクトのページで、メタデータインジェスチョンを追加をクリックします

インジェスチョンは、情報を取得するためのジョブの名称です。
OpenMetadataでは、用途毎にインジェスチョンの種類が分かれています。

取込設定、スケジュール設定を行い、デプロイします
image.png

※ 私は今回デフォルトから以下を変更しました

  • 「INFORMATION_SCHEMA」は対象外に指定(取り込みたくないため)
  • 「Include Tags」はオフ(今回はタグの取得は対象外のため)
  • 「Include_DDL」はオン(テーブル、ビュー定義を取得したいため)
  • 「Overrude Metadata」はオン(複数回取得ジョブを実行する可能性があるため)

また、今回は1度ジョブを実行できれば良いので、スケジュール設定は手動実行で指定しました。

取込ジョブ実行

サービス画面のインジェスチョンタブを開き、対象のジョブを実行します
image.png

実行が開始すると、実行状況が「QUEUED」になります
image.png

「SUCCESS」になったら完了です!
image.png

結果

データベースのページ

image.png
データベースの物理名、データベースが保持するスキーマが取得されました

スキーマのページ

image.png
スキーマの物理名、スキーマが保持するテーブル、ビューが取得されました

テーブルのページ

image.png
テーブルの物理名、カラムの一覧、カラムの物理名、カラムのデータ型、桁数、制約(プライマリーキー、NOT NULLなど)が取得されました

image.png
「Include_DDL」をオンにしたので、「Schema Definition」タブにテーブル定義が取得できました

最後に

取得できるテクニカルメタデータの種類は、多い印象を受けています。
高額なエンタープライズ規模のデータカタログツールほどではありませんが、データカタログツールの中でも充実していると思います。

(過去に見たデータカタログツールには、テーブルカラムの桁数や制約を取得できないものもありました、、)
Snowflakeの権限設定も比較的容易に行えます。

また、テーブル定義書をExcelファイルで手動管理している場合や、Excelファイルをデータカタログとして手動管理している場合においては、管理負荷の高さや、正確性の担保が課題となってしまうことがあります。
データカタログツールは、定期的に自動でこれらの情報を取得して更新できるので、前述の課題解決に有効です。

次回は、今回取得したテクニカルメタデータにサンプルデータを付与したいと思います。

本記事についてご不明点、ご質問事項等があれば、コメントをお願いいたします。
また、本分野に関してご興味を持っていただけた方がいらっしゃれば、お気軽にお問い合わせください。

1
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
1
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?