日本発のデータカタログサービス「Quollio Data Catalog」を試してみた

日本発のデータカタログサービス「Quollio Data Catalog」を試してみた

Clock Icon2022.06.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

今年の4月にQuollio Technologies社が「Quollio Data Catalog」というデータカタログのサービス提供を開始しました!

Quollio Technologies社は2021年8月に日本で創業した企業なのですが、日本からこういったデータ基盤に関わるサービスが生まれるのは純粋に嬉しいですね!

ということで本記事では、このQuollio Data Catalogを触ってみたので、その内容をまとめていきます。

Quollio Data Catalogとは

まずQuollio Data Catalogを一言でいうと、「企業のメタデータ管理を実現する、データカタログのサービス」です。

なぜデータカタログのサービスが必要なのか?

データ基盤を自社で導入して運用している企業は多いと思いますが、「自社内にあるデータに関する情報(メタデータ)」はどうやって管理しているでしょうか?企業によってはExcelやスプレッドシートなどで、全て人間による手動運用をしている所も多いと思います。

しかし、こういった手動運用をしていると、

  • 手動運用によるメンテナンスコストが重い
  • スプレッドシート上の定義がいつ更新したデータかわからなくなり、そのスプレッドーシート自体が活用されなくなる

といった問題に繋がることがあります。

そこで、こういった問題に対して、本記事で検証するQuollio Data Catalogのようなデータカタログのサービスを導入すると、データに関する情報の管理についての運用コストが削減され、新しいデータの整備や活用などに注力することが出来ます。

Quollio Data Catalogの強み

ただ、データカタログと言っても、海外のSaaSも含めるとたくさんのサービスがすでに世の中にあります。

そんな中でQuollio Data Catalogはデータカタログの1サービスとして、下記のような機能を提供しています。

  • カタログ検索
    • 一覧表示されているアセットから「キーワード、タグ、アセットの種類、サービス名、お気に入り、元データ消失(元データが消失したアセット)」で絞り込み、検索を行うことが可能です。
  • メタデータ自動収集コネクター
    • 既存データサービスから、基本的なメタデータの自動抽出とプロファイリングを行います。データ定義書の更新運用が容易になり、データ管理者の大幅な工数削減が期待できます。
  • ビジネス用語集
    • ビジネス用語や、ガバナンスポリシーに関する用語など、共通ワード・概念の定義を行い、タグとして再利用が可能な状態で管理します。組織横断での用語の統一が行えます。
  • 自動データ分類
    • プライバシーデータや会社にとって重要度が高いデータを始め、ビジネス用語集で定義したタグに関して自動分類することが可能となり、データ理解の向上、また適切な利用を促します。
  • 分析アドバイザリーサポート
    • Quollio Data Catalog上で整理・蓄積したデータを利用して、データの品質状態や利用状況、またメタデータ管理状況をはじめとした分析アドバイザリーを行い、データカタログの継続的な運用・価値享受を支援します。

今回私も実際に触ってみた上で、「メタデータ自動収集コネクター」と「自動データ分類」がQuollioの強みの機能だと感じています。

データカタログのサービスを導入しても、結局人手がかかってメンテナンス出来なくなっては元も子もありません。この自動収集や自動分類の機能により、データカタログのメンテナンスコストを削減しつつ企業に存在するデータに関する情報をクリアにすることで、より企業内のデータ活用を活性化させることが出来ると思います。

…ちなみに、Quollio Technologies社のCTOは弊社クラスメソッドのOBである春田さんが務めています!クラスメソッド在籍時代にも多様なデータ基盤の案件に関わり、数多くのブログを執筆されています。データ基盤に関わるテック領域に詳しい方なので、このデータカタログのプロダクトにどう反映されていくのか、期待しちゃいますね!笑

アカウント作成~メタデータの連携

ということで、ここからは実際にQuollio Data Catalogを試してみた内容を書いていきます!この章ではQuollio Data Catalogにメタデータの内容を連携するところまで記します。

やることとしては、Quollio Technologies社が提供しているドキュメントのチュートリアルの「アセットを登録する」の項目に該当します。

事前準備

まず、Quollio Data Catalogは対象のDWHやDBにあるメタデータを収集するために、Metadata Agentと呼ばれるメタデータ収集のためのAWSリソース郡を、自社のAWSアカウント上に構築する必要があります。

このMetadata Agent構築はユーザーがCloudFormationのテンプレートを用いてセットアップする必要があります。このCloudFormationのテンプレートの利用についての詳細は、Quollio Technologies社までお問い合わせください。

ログイン

QuollioはSaaSとして提供されています。ログイン画面でメールアドレスとパスワードを再度入力し、「ログイン」を押します。

これで、ログインは完了です!

アセットを登録する

続いて、Quollio Data CatalogからDWH・DBに対してアクセスするための設定をしていきます。

事前準備で述べたMetadata Agentについての設定が必要となるため、対象のAWSアカウント上で作業が必要となります。

基盤環境のセットアップ

Quollio Technologies社にて、「Private Linkあり」と「Private Linkなし」2パターンのCloudFormationのテンプレートを用意しています。この記事では、「Private Linkなし」のパターンのCloudFormationスタックを作成していきます。

下記のリンクをクリックして、CloudFormationスタックの作成画面を開きます。(今後リンク先は変わる可能性があるので、ご注意ください。)

パラメータ欄に、以下の内容で入力していきます。

  • AwsBatchSubnetIds
    • インターネットゲートウェイにルーティングされたサブネットを設定します
  • AwsBatchVpcId
    • 上で設定したサブネットを持つVPCを設定します
  • QuollioAccountId
    • Quollio Technologies社から提供される、Company IDを入力します

設定後、このような画面になるはずです。

機能欄の確認項目にチェックを入れた後、右下の「スタックの作成」を押します。

私が実施したときは、数分でスタックの作成は終わりました。下図のようにリソースが出来ていればOKです!

Metadata Agent用のパラメータの設定とスタック作成

続いて、Metadata Agent本体を構築する前に、使用するDWHの接続情報をAWS Systems Managerのパラメータストアに保存します。今回はSnowflakeの接続情報をパラメータに設定してきます。

まず、AWSのマネジメントコンソールから、AWS Systems Managerを起動します。

「パラメータストア」を押し、画面右上の「パラメータの作成」を押します。

パラメータを作成する画面に切り替わったら、「名前」「タイプ」「値」の3つを設定・入力し右下の「パラメータを作成」を押します。

  • 名前
    • 作成するパラメータの名前。使用するDWHごとに必要なパラメータは異なります。
  • タイプ
    • すべて「安全な文字列」でOKです
    • 名前に該当するパラメータの値を入れます(Snowflakeだと、使用するユーザー名・ロール名・ウェアハウス名、などが該当します)

Snowflakeの場合は、下記8種類のパラメータを登録します。

  • /quollio/company_id
    • Quollioから提供されるCompany ID
  • /quollio/quollio_account_id
    • Quollio社で管理するAWSアカウントID ※別途、対象のAWSアカウントIDはQuollioの担当者へ確認が必要です。
  • /quollio/snowflake/account_id
    • SnowflakeのアカウントID。例)ab12345.ap-northeast-1.aws
  • /quollio/snowflake/username
    • Snowflakeのユーザー名
  • /quollio/snowflake/role
    • Snowflakeのロール名。指定したユーザーが使用でき、カタログ化するデータベースやスキーマに対してRead権限があるロールを選択します
  • /quollio/snowflake/password
    • Snowflakeユーザーのパスワード
  • /quollio/snowflake/warehouse
    • SQL実行に使用するSnowflakeのウェアハウス名
  • /quollio/snowflake/database
    • Snowflakeのデータベース名。ジョブ開始時に最初に仕様するデータベースを指定するためのパラメータであり、実際はクラスタ内でそのユーザーがアクセスできる全てのデータベースがカタログ化されます

パラメータを作成し終えると、下図のように8つのパラメータが登録されていることが確認できるはずです。

続いて、Metadata AgentについてのCloudFormationスタックの作成をしていきます。

下記のリンクをクリックして、Metadata Agent用のCloudFormationスタックの作成画面を開きます。(今後リンク先は変わる可能性があるので、ご注意ください。)

ここでは、メタデータを収集する処理を担うAWS Batchが実行されるスケジュールを設定します。デフォルトでは「日本時間深夜0時に日次」で起動するようになっています。

また「スタックの名前」が後工程で手動実行するAWS Batchのジョブ名になるため、確認した上で、必要に応じて名前の変更もしましょう。

あとは、機能欄の確認項目にチェックを入れた後、右下の「スタックの作成」を押せばOKです。

AWS Batchジョブの手動実行

続いて、まだQuollioの画面の方にメタデータの収集が行われていないため、対象のAWS Batchを手動実行して、正しくメタデータが収集出来るかを確認してみます。

AWSマネジメントコンソールから「AWS Batch」を開き、「ジョブ定義」を押します。

その後、先程作成したCloudFormationスタックと同じ名称でジョブの定義がされているはずです。そちらをクリックします。

ジョブの定義の詳細画面に遷移しますので、右上の「新しいジョブを送信」を押します。

以下の設定をした上で、画面末尾の右下の「送信」ボタンを押します。

  • 名前
    • 任意のものでOKです
  • ジョブ定義
    • CloudFormationにより構築されたものを選択
  • ジョブキュー
    • CloudFormationにより構築されたものを選択
  • 実行タイムアウト
    • 「60」と入力します

すると、作成したジョブが動き始めます。このジョブが終わると、Quollio Data Catalogの画面上に抽出したメタデータが反映されます!

タグの作成

この章では、タグの作成についてまとめていきます。

ここで「タグ」についてですが、Quollio Data Catalogでは収集したアセットに共通する分類や説明を付与することができます。この「共通する分類や説明」をQuollioでは「タグ」として管理します。

このタグの付与する宛先ですが、具体的にはスキーマ、テーブル、カラムごとに割り当てる事ができます。

画面上の「タグ用語集」をクリックすると、カタログ上に存在するタグの一覧の確認と、新規追加が出来る画面に遷移します。

まずは、タグを1つのグループにまとめた概念である、タグカテゴリを作っていきます。今回は1つサンプルとして「地理情報」というタグカテゴリを作り、その中に「国名」「住所」などの地理情報に関するタグを作成してみます。

タグカテゴリの作成

タグカテゴリの中から「+ 新規追加する」というところを押します。

少し画面が暗転してタグカテゴリ作成の入力欄が出てきます。 この入力欄の中に作成したいタグカテゴリ名を入力した後、右側の「+」を押してください。

(ちなみに、よく使いそうなタグカテゴリとタグがまとまったテンプレートもいくつか用意されております。まずはこちらを使ってタグカテゴリを作成するのも良いと思います!)

これで、新しいタグカテゴリが出来ました。

タグの作成

続いて、作成したタグカテゴリの中にタグを作成していきます。

新しいタグの作成先であるタグカテゴリを選択した状態で、画面右上の「+ 新規追加する」を押します。

すると、新しいタグを作成するためのポップアップが出てきます。「タグ名」と「概要」を入力して、右下の「タグを作成」を押します。

これにより、新しいタグが作成できました!

アセットにメタデータを付与する

続いて、スキーマ・テーブル・カラムのアセットに対して、メタデータを付与してみます。

ここでは、「手動入力」「タグの手動付与」「ルールを用いたタグの自動付与」の3つを試してみます。

手動入力

まず、手動入力によるメタデータ付与についてです。

メタデータを手動入力したいアセットを、カタログの画面上から選択します。今回は「CUSTOMERS」テーブルに対して、手動入力でメタデータを付与してみます。

下図の赤枠のように、対象のアセットをクリックします。

画面右側に選択したアセットの詳細が出てきます。その中から、右上の「・・・」をクリックし、「編集」を押します。

すると、「論理名」と「概要」という入力欄が出てきます。

  • 論理名
    • このアセットに対する論理名を入れることが出来ます。
    • 例えばテーブルでは、通常DWH内のテーブル名はアルファベット表記だと思いますので、仕様に沿った日本語名、あるいは組織内の共通認識となっているい名称を付与すると良いと思います。
  • 概要
    • このアセットに対する概要の説明文を入れることが出来ます。

下図の様に入力が完了したら、右下の「保存」を押してください。

これにより、テーブルの論理名、概要がカタログ上に反映されました。

タグの手動付与

次に、先程作成したタグの手動付与を行ってみます。先程作成したタグ「国名」を付与してみます。

まず、下図の赤枠のように、対象のアセットをクリックします。

続いて、画面右側に選択したアセットの詳細が出てきましたら、その中から「+ タグの追加」を押します。

すると、現在アカウント上に登録されているタグの一覧が出てきます。この中から、付与したいタグの横の「+」を押します。

これにより、タグの付与が出来ました!

ルールを用いたタグの自動付与

最後3つ目として、「ルールを用いたタグの自動付与」に取り組んでみます。

先程は手動でタグを付与してみましたが、正直同じようなカラム1つ1つに手動でタグを付与するのは、運用として相当辛いと思います。

そこでQuollio Data Catalogではルールという機能があり、指定したルールに沿ってタグを自動でアセットに付与する機能が備わっています。

1つ例として、先程「国名」というタグを手動で付与しましたが、今度はルールを用いた自動付与を行ってみたいと思います。

まず、ルールを新しく設定するために、画面上の「ルール設定」を押します。

はじめに、複数のルールをまとめた「ルールセット」という概念がありますので、このルールセットを作成します。

画面左のルールセット欄から、「+ 新規追加する」を押します。

すると、画面が少し暗転して、新しいルールセットの名称の入力欄が出てきます。

ここに、任意のルールセット名を入力し、右側の「+」を押します。

これにより、ルールセットが新しく出来ました。

続いて、作成したルールセットの中にルールを追加していきます。

作成したルールセットの中から「+ 新規追加する」を押します。

すると、下図のように新しいルールの作成画面が出てきます。

まず、このルールで適用させるタグを設定します。

「+」マークを押して、適用させたいタグを選択します。(今回は行いませんが、複数のタグを1つのルールに設定することも可能です。)

続いて、ルールの条件を設定していきます。

「もし」のあとに続く、「対象」「オプション」「演算子」「値(カンマ区切り)」を設定してきます。

今回は、カラムの物理名にcountryと含む場合に、この「国名」というタグを設定したいため、条件は下図のように設定してみました。

ちなみに、「+ 条件を追加」を押すと、別の条件を「かつ」「または」で追加することも出来ます。

適用したいタグと、そのタグの適用条件の設定が終わったら、右上の「+ 追加する」を押します。これで、ルールの設定は完了です!

ルールの追加が完了すると、アセットへのタグ付けはすぐに行われます。countryを含むカラムに、下図のように「国名」タグが付与されました。

このタグの自動付与は他のデータカタログ製品にはない機能だと思います。操作も簡単で、実際私も触ってみて特に躓くことなく操作できました!

最後に

日本発のデータカタログ「Quollio Data Catalog」を触ってみました。

一度Metadata Agentの設定をしてしまえば、シンプルな操作感でタグなどのメタデータを簡単に付与できます。

特に、ルールを設定した上でのタグの自動付与は私も凄い気に入りました!こういったメタデータは同じような定義をすることも多いため、そういった汎用的な定義はタグにしてしまい、ルールを用いて自動付与できるのはとても便利だと思います。

Quollio Data Catalog、気になった方は、ぜひ下記リンクから問い合わせをしてみてください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.