DatahubのBusiness Glossary(Term)について

2022.01.04

どーもsutoです。

今回はLinkedIn製のOSSデータカタログ「DataHub」のBusiness Glossaryの登録について検証していきます。

Datahubの概要や過去の記事については下記をご参照ください。

データカタログに登録するBusiness Glossary

Datahubにはデータセットの他にビジネス用語集を独自に登録することができ、外部のビジネス用語や社内で使用されている業務用語などをデータカタログツールに集約することで、業務上のデータや用語の把握、理解に役立ちます。

登録した単語は「Term」という要素として、Tagと同じように各データセット内のオブジェクトに情報を付与することができます。

タグとの違いは以下となります。

  • 単語に付随できる情報について
    • Tag:Descriptionのみ
    • Term:Owner、Link、properties、Term同士の関連付けなど付与できる情報がTagより多い
  • 登録方法について
    • Tag:Web画面上で自由に新規作成が可能
    • Term:yamlファイルで定義し、レシピと同じ取り込み方法で登録する必要がある

Tagはデータ検索をしやすくしたりデータの分類をアドホックに整理していくのに役立ちます。Termはデータの意味をさらに深く理解するために付与してあげる要素として役立ちます。

データセットの詳細画面のなかでで一見するとTagとTermの違いがよくわからないかと思いますが、上記のようにそもそもの用途に違いがありますので、業務で運用する上でどのように活用していくか方針やルールを検討することが必要です。

Termの取り込み手順

Termの取り込み手順を要約すると、

  • Termを定義するyamlファイルを作成
  • Termを取り込むレシピをyamlファイルで作成
  • CLIでレシピの取り込み実行

となります。

Termの定義ファイル作成

テキストエディタ等でTermの定義ファイルを作成します。(ファイル形式は.ymlです)

Termの定義で使用できるパラメータを以下に解説します。

  • nodes:登録するTermをまとめるグループ名(リスト名)の役割をする。このnodes名でTermのカテゴリ分けができる
  • term:登録したい用語(Term)の名前
  • owners:Termを管理するユーザまたはユーザグループ
    • 入力可能な文字列は英数字(日本語は表示できませんでした)、また既存ログインユーザ/グループである必要はなく、自由に文字列を登録可能
    • Termを管理するユーザまたはユーザグループを設定できる
    • termごとに設定が可能
    • nodesに設定すればその配下のTermすべてに登録される
    • トップインデント側に設定すれば、すべてのTermのデフォルト値になる
  • url:Term全体として用語集が定義されている場所を指すURL(該当する場合に設定)
  • description:名前のとおりTermの説明
  • term_source:INTERNAL ・EXTERNALのどちらかを設定可能
    • Term(用語)が社内で使われている用語か、一般的に使われている用語かを区別する
  • source_ref、source_url:用語集の用語が由来するソースの名前とそのリンク先
  • contains:関連する別のTerm、または狭義の意味を持つ別のTermを設定
    • <nodes名.Term名>の形式で指定
    • 複数登録可
  • inherits:用語の意味を継承している別のTermを設定
    • <nodes名.Term名>の形式で指定
    • containsとinheritsの使い分けはユーザでルールを決めて良い。どちらも用語同士の関連付けのために活用するとよい
  • custom_properties:任意のカスタムプロパティのキーと値のペアのマップ
    • AWSのタグを同じようにTermに対する付属情報として、<キー:値>の形式で情報を追加できる

※ownersのuser名やgroup名以外はすべて日本語登録が可能でした

公式ページを参考に、実際のサンプルファイルを見てみると、上記で説明した書き方をほぼすべて網羅していますので、今回はこちらを登録してみます。

レシピ作成

データセット取り込みと同じくTerm定義ファイルを指定したレシピを作成します。

# File name is "term.yml".

source:
  type: datahub-business-glossary
  config:
    file: "<<Term定義ファイルを保存しているフォルダパス>>/business_glossary.yml"
sink:
  type: "datahub-rest"
  config:
    server: "http://<<GMSサーバのエンドポイント>>:8080"

Termの取り込み

取り込みはデータセットの取り込みとまったく同じ手順となります。以前のブログにRedshiftを例とした取り込み手順を紹介していますので、CLI実行のための前提条件は以下の記事を参考にしていただければと思います。

レシピの作成が完了したら以下コマンドのようにメタデータの取り込みを実行します。

datahub ingest -c ./term.yml

Pipeline finished successfullyというメッセージが出たら取り込み成功です。

実際に画面を見てみると以下のようになります。

まとめ

今回はDatahubのBusiness Glossaryの使い方と取り込み手順についてご紹介しました。

取り込んだデータセットの情報をさらに充実させ、データの意味を理解するために役立てることができる機能となっていますので、データの利活用促進に利用してみてはいかがでしょうか。