Amazon DatazoneのデータアセットにMetadata formsとBusiness glossariesを追加してみた
どーも、データアナリティクス事業本部コンサルティングチームのsutoです。
Amazon Datazoneに取り込んだデータアセットは、自動的にGlueカタログテーブルの情報であるテクニカルメタデータが付与されます。
GlueテーブルのDescriptionやRedshiftのCommentなどでデータの意味を説明するワードをある程度登録できますが、実際にビジネスでデータ利活用のためデータを検索する際、
- どのシステムで使われているデータか
- どの部署が管理しているデータか
- データ自体の公開範囲レベルはどれくらいか(全社/部署/役職/個人 など)
- データ保持期間はどのくらいか
などのビジネスメタデータの追加が求められます。
Amazon Datazoneにもテクニカルメタデータ以外のメタデータを追加/管理できる「Metadata forms」、「Business glossaries」という機能があるので実際に触ってみようと思います。
本記事をご覧になる前に
- 本記事は、Amazon DataZoneのパブリックプレビュー段階で検証した内容です。GA時には本記事で記載した検証結果や前提条件が異なる可能性がありますのでご注意ください。
事前に準備しているもの
本記事ではDatazone「ドメイン作成〜データアセットの追加」についての手順は記載しません。以下キャプチャ画面のようにすでに複数のデータアセットがパブリッシュされた状態を前提になっています。
ドメイン作成〜のチュートリアルやデータアセットの追加の方法については、以下の公式ドキュメントやブログのリンクからご参照頂けますと幸いです。
Business glossariesの追加
- Datazoneポータル画面にログインし、左下にある「Catalog management」→「Business glossaries」を選択、Business glossary termsの画面を開き「CREATE GLOSSARY」を選択
- Glossaryの名前とDescriptionを入力する欄が表示されるので任意の用語を入力して「CREATE GLOSSARY」をクリックすることで新規追加が可能です
- 追加完了した後はEnabled列のバーをクリックして有効化することでメタデータに対して付与できるようになります。さらに追加したビジネス用語に対するバリュー(値)を作り込むために”・・・”を選択して「Create child term」を選択します
- Glossary欄もDescription欄も日本語入力であっても問題なく登録できたので、今回は以下のように「部署名のカテゴリを表すTerms」のサンプルを作ってみました
- Child termからさらにChild termを追加することでネストを深くすることも可能でした
- もし作成したTermを削除したい場合は、Enabled列を無効にすることで削除が可能になります
Metadata Formsの追加
- Dataポータルのトップ画面に戻り左下の「Catalog management」→「Metadata forms」を選択して、以下のForms画面に遷移し「CREATE METADATA FORM」を選択
- forme名とDescription入力欄が表示されるので任意の名前を入力して「CREATE FORM」を選択して追加
- Enabled列を有効化してForm名をクリック
- 詳細画面に遷移したら「CREATE FIELD」で項目を追加していくことができます
- 使用できるデータタイプは以下の画面のとおりで、フィールド名、データタイプ、Descriptionを設定できます
- IntegerやDecimalは設定できる入力値の最小値と最大値も設定できます
- 本検証では以下のような項目を設定してみました。前項で作成したTermもフィールドの1つとして設定できます
以上の基本操作でデータアセットに紐づけるカスタムメタデータのテンプレートが完成となります。
では実際にデータアセットにMetadata formをアタッチしてデータ検索の検証もやってみましょう。
データアセットにMetadata formを設定
- 任意のデータアセット(今回はflightdata)の詳細画面を開き「Add metadata form」を選択します
- metadata form選択欄が表示されるので作成したFormを選んで「APPLY FORM」をクリック
- 「METADATA」タブのSCHEMA FORMの下に作成したform(Forms-1)の欄が追加されているので「EDIT」をクリック
- フィールド名に対する値を入力して「SAVE CHANGES」をクリックして保存します(検証なので入力値は超テキトーです)
これで設定作業は完了したので、Data catalog画面に遷移してキーワード検索を検証してみます
まず右側のカテゴリ検索欄を見ると、登録したBusiness Glossaryでツリー検索/ワード検索が可能であることがわかります
STRING型でフィールド作成した「備考」に入力したワードでも、英数だろうがひらがなだろうが漢字だろうが以下のように問題なく部分一致検索できることがわかりました
さいごに
今回のMetadata formsとBusiness glossaries追加はポータル画面からGUI操作による手順となりましたが、APIやCLI、ジョブによる自動付与ができそうな機能は現段階では見受けられませんでした。
Datazoneにせよ他データカタログツールにせよカタログ上に追加するBusiness glossariesは登録データアセットが多いほど手動追加は面倒になるので、あるドメイン配下(またはプロジェクト配下)に特定のMetadata formを一律登録できるような仕組みがあるのが望ましいですね。