🍣

openMetadataとテストについて

2023/07/23に公開

最近openMetadata(以下metadata)の記事しか書いていないけど、それが楽しいのでヨシ!
今回はmetadaでのテストについてのお話です。やっぱりデータカタログを構築するならテストは必須ですよね!
と言うことでテストにまつわる話を書いていきます!

openMetadataのテスト用語

Test Suite(テストスイート)

公式ドキュメントより抜粋
テストスイートは、異なるテーブルから関連するテストケースをグループ化できる論理コンテナです。

私の勝手なイメージですが、テーブルそれぞれにテストを書くと思うので、そのテストを論理的にグループ化して、そのテスト項目実行するコンテナ単位かな?

Test Definition(テストの定義)

テスト定義は、次のようなテストに固有の汎用テスト定義要素です。

  • テスト名
  • 列名
  • データ・タイプ

これは実際にテストを作成する際に定義する項目を指しています。
以下スクショとおり、カラム名/テスト名/テストのタイプを設定する必要があります。

Test Cases(テストケース)

公式ドキュメントより抜粋
テストケースではテスト定義を指定します。
テストが成功するために満たさなければならない条件を定義します(例max=n: など)。
1つのテスト定義を複数のテストケースにリンクできます。

テストケースの作成

それでは実際にテストケースを作成していきます。
テストを実施するテーブルにアクセスし、「Profiler & Data Quality」タブをクリックします。
そして、画面右上の「Add Test」から今回は「Column」をクリックします。

テスト内容は「AMOUNT」カラムに対して、NotNullテストとしました。

以下作成できました。

スケジュールの設定

エンティティに対して作成する最初のテストの場合、実行時間を設定する必要があるそうです。
それでは「Add Ingestion」をクリックし、スケジュールを設定します。
動き続けらるのも面倒なので、マニュアル実行としました。

テストスイートの作成

ここでは先ほど作ったテストケースをテストケースに紐づけます。
画面左の垂直メニューバーより、「By Test Suites」をクリックし、画面遷移後の「Add Test Suite」をクリックします。

Test Suite名を入力します。

テストケースに先ほど作成したテスト「MyTestCase」を選択します。

テストケースを作成できました。

テストの実行

テストはAirflowのDAGから実行されるみたいです。
なので先ほどマニュアル実行としたのでいくら待っても実行されません。。。
仕方がないのでAirflowから直接実行します。
以下実行が完了したので、metadataの画面を確認してみます。

metadata画面でも実行されているステータスとなり、Nullカウントも0でテストは成功ですね。

テスト失敗時のアラート発生方法

続いて、テスト失敗時のアラート通知手順を確認してみます。

通知設定を行います。

設定項目 設定値
Source Test Caseを選択します
Filters Test Caseの名前を選択します。(候補が表示される)
Trigger Get Test Case Status Updatesを選択し、トリガー条件として「Failed」を設定する
Destination SlackのWebhookを指定

擬似的にテストを失敗(Failed)させます。

Slackに通知が届いていることを確認

まとめ

まだまだopenMetadataの扱いに慣れていない素人ですが、やりたいことができるよとても良い製品だと感じました。
それでは、他の機能についてもおいおい記事にしたいと思います!
興味のある方はぜひ一度openMetadataで遊んでみてください。

Discussion