はじめに
2019/4に行われたGoogleNext@サンフランシスコで発表されたGoogle Cloud Platform(以下GCP)の新サービスの一つにData Catalogというものがあります。
これは何かというと「フルマネージドでスケラービリティの高いデータ検出およびメタデータ管理サービス」(公式より)で、もっとざっくりというとGCP上のリソースを簡単に検索でき、またメタデータを付与して管理できるサービスです。
このDataCatalogですがConsole画面から使うとBigQuery、Pub/Subなどの異なるサービスのリソースを同一画面から簡単に検索できて便利なのですが、CLIやAPIから利用しようとするとあまり見慣れない用語がよく出てきて初めはとっつきにくかったりします。
用語に関してドキュメント等に詳しく書いてあればいいのですが、DataCatalogはβ版(2019/12/29現在)という事もあり調べてもあまり情報が出てこないのが現状です。
DataCatalogが正式にリリースされればもっと公式の情報も充実すると思いますが、今現在(2019/12/29現在)情報が少ないので私がDataCatalogを利用する時に調べて分かった内容を共有できればと思います。
注意点
この記事の内容はDataCatalogがβ版の時の情報であり今後変更がかかる可能性もありますので、その点ご注意ください。
用語
Entry
EntryはGCP上のリソースを表します。
BigQueryのデータセット・テーブル、Pub/SubのトピックなどのGCP上のリソースはDataCatalogではEntryというエンティティで表されます。
Entryは内部で自動生成されたIDを含むURL形式のnameというフィールドを持っており、これで一意に表されます。
# Entryのname
projects/<project-id>/locations/<location>/entryGroups/<entrygroups>/entries/<entry-id>
CLI、APIでリソースの情報を取得したりする場合はこのnameを使用したりします。
EntryGroup
EntryGroupはEntryを論理的にまとめたものです。
DataCatalogでは自動的にBigQueryとPub/SubのEntryGroupが作成されており、それぞれ@bigquery、@pubsubとなります。
BigQuery上のEntryであるデータセット・テーブルなどは自動的に@bigqueryに所属します。
Scope
検索範囲を表します。
CLI・APIではinclude_org_ids、include_project_ids、include_gcp_public_datasetsなどで検索範囲を組織、プロジェクト、公開データセットかどうかを指定できます。
# 指定したプロジェクトIDの範囲でfooという名前のリソースを検索する
$ gcloud beta data-catalog --include-project-ids=<project-ids> 'name:foo'
DataCatalogでは検索する際に自動的に検索範囲を選択しようとするので、検索する際にはScopeの指定が必要になってきます。
SearchResult
検索結果。
検索でヒットしたものが何か(BigQueryのデータセット・テーブルなど)とそのリソースがどこにあるかの参照などの概要が返ってきます。
CLI・APIで検索した結果からEntryの詳細な情報を取得したい場合は、SearchResultを元にEntryの情報を取得しにいく必要があります。
TagTemplate
名前の通りタグテンプレートを表します。
TagTemplateもEntryと同じくURL形式のnameで一意に表されますが、Entryと異なり自動生成されたIDは持たず、ユーザーが指定したテンプレートIDがIDとなります。
# test_templateというIDで作成している場合
projects/<project-id>/locations/<location>/tagTemplates/test_template
Tag
こちらも名前の通りタグを表します。
同じくURL形式のnameにより一意に表され、Entryと同じく自動生成されたIDを持ちます。
projects/<project-id>/locations/<location>/entryGroups/<entry-group>/entries/<entry-id>/tags/<tag-id>
Tagは元となるTagTemplateのnameを保持しています。
まとめ
簡単ですがDataCatalogで出てくる主要な用語をまとめてみました。
下記のリンクも分かりやすかったので合わせて見てみて下さい。
参考リンク
Google Cloud Data Catalog hands-on guide: a mental model
gcp-datacatalog-diagrams - github
Cloud Storage filesets