著者 Wenjie Tehan
最終更新日 2022年2月14日
警告
本記事はTeradata CorporationのサイトGetting Startedに掲載された内容を抄訳したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
概要
この記事では、GitHub上のData Catalog Teradata Connectorを使用してTeradata VantageとGoogle Cloud Data Catalogを接続し、Data Catalog経由でVantageテーブルのメタデータを探索する手順について説明します。
・スクレイプ Teradata Vantageに接続し、利用可能なすべてのメタデータを取得する。
・準備する。Data Catalogエンティティでメタデータを変換し、タグを作成する
・インジェストする。Data CatalogエンティティをGoogle Cloudプロジェクトに送信します。
Google Cloud Data Catalogについて
Google Cloud Data Catalogは、完全に管理されたデータ発見およびメタデータ管理サービスである。Data Catalogは、データ資産のネイティブなメタデータをカタログ化することができます。Data Catalogはサーバーレスで、テクニカルメタデータとビジネスメタデータの両方を構造化された形式で取り込むためのセントラルカタログを提供します。
Teradata Vantageについて
Vantageは、データウェアハウス、データレイク、アナリティクスを単一の接続されたエコシステムに統合する最新のクラウドプラットフォームです。
Vantageは、記述的分析、予測的分析、処方的分析、自律的意思決定、ML機能、可視化ツールを統合したプラットフォームで、データの所在を問わず、リアルタイムのビジネスインテリジェンスを大規模に発掘することが可能です。
Vantageは、小規模から始めて、コンピュートやストレージを弾力的に拡張し、使用した分だけ支払い、低コストのオブジェクトストアを活用し、分析ワークロードを統合することを可能にします。
Vantageは、R、Python、Teradata Studio、およびその他のSQLベースのツールをサポートしています。Vantageは、パブリッククラウド、オンプレミス、最適化されたインフラ、コモディティインフラ、as-a-serviceのいずれでも導入可能です。
Teradata Vantageの詳細については、ドキュメントを参照してください。
前提条件
・Teradata Vantageインスタンスにアクセスできること。
メモ!
Vantageの新しいインスタンスが必要な場合は、Google Cloud、Azure、AWSのクラウドにVantage Expressという無料版をインストールすることができます。また、VMware、VirtualBox、またはUTMを使用して、ローカルマシン上でVantage Expressを実行することもできます。
・Data Catalog Admin ロールを持つ Google サービスアカウント
・アカウント用に作成されたCloud Consoleプロジェクト(例:Partner-integration-lab)
・課金が有効
・Google Cloud SDKのインストールと初期化
・Pythonがインストールされている
・Pipのインストール
手順
① データカタログAPIを使用可能にする
② Teradata Data Catalog Connectorをインストールする
③ 実行
④ Teradata VantageのメタデータをData Catalogで調査する
データカタログAPIを有効にする
・Google consoleにログインし、ナビゲーションメニューからAPI & Servicesを選択し、Libraryをクリックします。上部のメニューバーでプロジェクトが選択されていることを確認します。
・検索ボックスにData Catalogと入力し、Google Cloud Data Catalog APIをクリックし、ENABLEをクリックします。
Teradata Data Catalogコネクタのインストール
Teradata Data CatalogのコネクタはGitHubで公開されています。このコネクターはPythonで記述されています。
・以下のコマンドを実行し、gcloudを認証して、Googleのユーザー認証でCloud Platformにアクセスできるようにします。
gcloud auth login
・Googleのログインページが開くので、Googleアカウントを選択し、次のページでAllowをクリックします。
・次に、デフォルトプロジェクトの設定がまだの場合は設定します。
gcloud config set project <project id>
virtualenvのインストール
Teradata Data Catalog Connectorは、分離されたPython環境にインストールすることをお勧めします。そのために、まずvirtualenvをインストールします。
Windows
pip install virtualenv
virtualenv --python python3.6 <your-env>
<your-env>\Scripts\activate
MacOS
pip install virtualenv
virtualenv --python python3.6 <your-env>
source <your-env>/bin/activate
Linux
pip install virtualenv
virtualenv --python python3.6 <your-env>
source <your-env>/bin/activate
Data Catalog Teradata Connectorのインストール
Windows
pip.exe install google-datacatalog-teradata-connector
MacOS
pip install google-datacatalog-teradata-connector
Linux
pip install google-datacatalog-teradata-connector
環境変数の設定
export GOOGLE_APPLICATION_CREDENTIALS=<google_credentials_file>
export TERADATA2DC_DATACATALOG_PROJECT_ID=<google_cloud_project_id>
export TERADATA2DC_DATACATALOG_LOCATION_ID=<google_cloud_location_id>
export TERADATA2DC_TERADATA_SERVER=<teradata_server>
export TERADATA2DC_TERADATA_USERNAME=<teradata_username>
export TERADATA2DC_TERADATA_PASSWORD=<teradata_password>
google_credential_file には、サービスアカウントのキー(jsonファイル)を指定します。
実行
google-datacatalog-teradata-connector コマンドを実行して、Vantage データベースへのエ ントリポイントを確立します。
google-datacatalog-teradata-connector \
--datacatalog-project-id=$TERADATA2DC_DATACATALOG_PROJECT_ID \
--datacatalog-location-id=$TERADATA2DC_DATACATALOG_LOCATION_ID \
--teradata-host=$TERADATA2DC_TERADATA_SERVER \
--teradata-user=$TERADATA2DC_TERADATA_USERNAME \
--teradata-pass=$TERADATA2DC_TERADATA_PASSWORD
google-datacatalog-teradata-connectorコマンドの出力例です。
INFO:root:
==============Starting CLI===============
INFO:root:This SQL connector does not implement the user defined datacatalog-entry-resource-url-prefix
INFO:root:This SQL connector uses the default entry resoure URL
============Start teradata-to-datacatalog===========
==============Scrape metadata===============
INFO:root:Scrapping metadata from connection_args
1 table containers ready to be ingested...
==============Prepare metadata===============
--> database: Gcpuser
37 tables ready to be ingested...
==============Ingest metadata===============
DEBUG:google.auth._default:Checking /Users/Teradata/Apps/Cloud/GCP/teradata2dc-credentials.json for explicit credentials as part of auth process...
INFO:root:Starting to clean up the catalog...
DEBUG:google.auth.transport.requests:Making request: POST https://oauth2.googleapis.com/token
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): oauth2.googleapis.com:443
DEBUG:urllib3.connectionpool:https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
INFO:root:0 entries that match the search query exist in Data Catalog!
INFO:root:Looking for entries to be deleted...
INFO:root:0 entries will be deleted.
Starting to ingest custom metadata...
DEBUG:google.auth._default:Checking /Users/Teradata/Apps/Cloud/GCP/teradata2dc-credentials.json for explicit credentials as part of auth process...
INFO:root:Starting the ingestion flow...
DEBUG:google.auth.transport.requests:Making request: POST https://oauth2.googleapis.com/token
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): oauth2.googleapis.com:443
DEBUG:urllib3.connectionpool:https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_database_metadata
INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata
INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_column_metadata
INFO:root:Entry Group created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata
INFO:root:1/38
INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser
INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser
INFO:root: ^ [database] 34.105.107.155/gcpuser
INFO:root:Starting the upsert tags step
INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_database_metadata ...
INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser/tags/CWHNiGQeQmPT
INFO:root:2/38
INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories
INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories
INFO:root: ^ [table] 34.105.107.155/gcpuser/Categories
INFO:root:Starting the upsert tags step
INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata ...
INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories/tags/Ceij5G9t915o
INFO:root:38/38
INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest
INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest
INFO:root: ^ [table] 34.105.107.155/gcpuser/tablesv_instantiated_latest
INFO:root:Starting the upsert tags step
INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata ...
INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest/tags/Ceij5G9t915o
INFO:root:
============End teradata-to-datacatalog============
Data Catalog を使用して Teradata Vantage メタデータを調査する。
・Data Catalogコンソールに移動し、Projectsの下にあるプロジェクト(例:Partner-integration-lab)をクリックします。右側のパネルにTeradataのテーブルが表示されます。
・興味のあるテーブル(例:CITY_LEVEL_TRANS)をクリックすると、このテーブルに関するメタデータが表示されます。
クリーンアップ(オプション)
・データカタログからメタデータをクリーンアップします。これを行うには、https://github.com/GoogleCloudPlatform/datacatalog-connectors-rdbms/blob/master/google-datacatalog-teradata-connector/tools/cleanup_datacatalog.py をローカルディレクトリにコピーします。
・このファイルがあるディレクトリに移動し、以下のコマンドを実行します。
python cleanup_datacatalog.py --datacatalog-project-ids=$TERADATA2DC_DATACATALOG_PROJECT_ID