2
0

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.

メタデータインポートを使ってSnowflakeの超巨大テーブル群から一括でメタデータを取り込んでみた。/2023年6月更新

Last updated at Posted at 2022-12-21

メタデータインポートを使って複数のデータソースから一括でメタデータを取り込む

この記事の位置づけ

  • この記事は、[datatech-jp Advent Calendar 2022] (https://qiita.com/advent-calendar/2022/datatech-jp) の12/21分として記載します。
  • SaaS版のデータカタログであるWatson Knowledge Catalogにおいて、メタデータインポート機能を使って、スキーマごとに一括でテーブルを取り込んでみます。

前提事項

  • メタデータインポートを実施するプロジェクトと呼ばれる箱を準備する
    • ここでは「metadata-pj-in-ibm」というプロジェクトを準備します。
  • メタデータを取り込む元となるデータソースへの接続情報画、上記プロジェクトに格納されていること。
    • ここではSnowflakeへの接続情報を格納します。

メタデータインポートを作成

  • 作業場所となるプロジェクトの画面右上の青い「新規資産」ボタンをクリックします。
    スクリーンショット 2022-12-21 18.51.16.png

  • 画面左上の「メタデータのインポート」パネルをクリックします。
    スクリーンショット 2022-12-21 18.52.22.png

  • メタデータの名前、説明、タグ、を入力し、画面右下の青い「次へ」ボタンをクリックします。
    スクリーンショット 2022-12-21 18.54.36.png

  • メタデータを取り込む先のプロジェクトあるいはカタログを選択します。ここではこのプロジェクト内にそのまま取り込むこととします。
    スクリーンショット 2022-12-21 18.55.55.png

  • メタデータを取り込む元となるデータソースを選択します。画面真ん中の「接続の選択」ボタンをクリックします。
    スクリーンショット 2022-12-21 18.56.56.png

  • メタデータを取り込む対象を選択します。ここでは対象となるSnowflake配下のすべてのスキーマをどかんと一括で取り込んじゃいましょう。
  • たしか60億行くらいあるテーブルもあったはずですが、メタデータを取り込むだけなので、元テーブルの巨大さはあまり関係ないはずです。
  • 対象となるチェックボックスを選択し、画面右下の青い「選択」ボタンをクリックします。
    スクリーンショット 2022-12-21 18.58.12.png

  • 選択された対象を確認し、「次へ」をクリックします。
    スクリーンショット 2022-12-21 19.04.38.png

  • スケジュール設定画面になります。ここでは何も設定せず(スケジュール:オフ の状態)、そのまま画面右下の青い「次へ」ボタンをクリックします。
    スクリーンショット 2022-12-21 19.07.57.png

  • しかし、仮にスケジューリングする場合は以下のように実施します。
    • こちらの場合では、以下のような設定例となります。
      • バッチジョブの開始日時:2022/12/22の20時
      • 繰り返し:有り
      • 繰り返す頻度:毎日20時
      • 除外する曜日:土曜日、日曜日
      • 終了日:2023年12月31日 20時
        スクリーンショット 2022-12-21 19.10.40.png

  • 繰り返しメタデータをインポートする場合、どの項目を更新するかを選択します。
    スクリーンショット 2023-06-24 23.34.24.png

  • 設定項目のまとめ画面で、内容を確認します。問題なければ画面右下の青い「作成」ボタンを作成します。
    スクリーンショット 2023-06-24 23.35.15.png
    スクリーンショット 2023-06-24 23.35.28.png

  • しばらくするとメタデータインポートの管理画面が表示されます。
    スクリーンショット 2022-12-21 19.17.44.png

  • 「更新」ボタンを押すと取り込まれたメタデータの一覧が表示されてきます。
    スクリーンショット 2022-12-21 19.19.27.png

  • 取り込み先のプロジェクトを見ると、すでに多数のデータ資産が取り込まれていることがわかります。
    スクリーンショット 2022-12-21 19.24.54.png

  • どういうわけか失敗したという表示が出ました。。。
    スクリーンショット 2022-12-21 19.26.46.png

  • 画面右上の通知を見るとエラーメッセージが確認できます。
    スクリーンショット 2022-12-21 19.27.56.png

  • また、プロジェクトの「ジョブ」タブから、先程実行したジョブのログも確認できます。
    スクリーンショット 2022-12-21 19.30.10.png

  • 失敗:1 と出ています。詳細を確認するには、実行の日時の箇所をクリックします。
    スクリーンショット 2022-12-21 19.30.38.png

  • ジョブのエラーログが確認できます。
    スクリーンショット 2022-12-21 19.32.52.png

  • 86テーブルあるうちの、3テーブルが失敗したようです。
    スクリーンショット 2022-12-21 19.35.28.png

  • ログの詳細も観てみます。
    スクリーンショット 2022-12-21 19.37.34.png

  • これ以上の詳細については、サポートとの確認が必要ですかねえ。Read Timed Out と出ていましたが、タイムアウトかなあ。
  • あとで再実施したらすべて正常終了しました。

結果確認

WKC側の確認


  • プロジェクトに取り込まれたデータ資産を観てみます。タグとしては、所属するスキーマ名がタグになるようです。
    スクリーンショット 2022-12-21 19.46.45.png

Snowflake側の確認


  • 以下はおまけですが、Snowflake側での確認もしてみます。
    スクリーンショット 2022-12-21 19.41.44.png

  • リクエストの一つを観てみると、以下のようになっています。
    スクリーンショット 2022-12-21 19.42.29.png

再インポートしてみる。

  • 再度インポートしてみます。画面右上の青い「アセットの再インポート」をクリックします。
    スクリーンショット 2022-12-21 20.03.21.png

  • 「再インポート」をクリックします。
    スクリーンショット 2022-12-21 20.03.44.png

  • 今度はうまくいきました!
    スクリーンショット 2022-12-21 20.07.33.png

  • ジョブも成功したジョブが表示されています。
    スクリーンショット 2022-12-21 20.09.22.png

  • ログとしては以下のようになっていました。
    スクリーンショット 2022-12-21 20.10.27.png

効果

  • 80を超えるテーブル群のメタデータを、少しのエラーはありましたが、15分もかからずにすべてを自動的に取り込むことができました。

最後に

この記事としては以上です。

この次としては、取り込んだメタデータに対してビジネス用語等を紐付けるメタデータエンリッチメントについての記事も書いてみたいと思います。

もしこの記事を読んで興味を持たれた方は、この記事の大本となる、IBM Cloud Pak for Data as a Service ハンズオン資料 目次 から内容を見てみてください。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?