メインコンテンツまでスキップ

Azure Data Share を Teradata Vantage に接続する

概要

この記事では、Azure Data Share サービスを使用して Azure Blob Storage データセットをあるユーザーから別のユーザーと共有し、ネイティブ オブジェクト ストア (NOS) 機能を活用して Teradata Vantage でクエリーを実行するプロセスについて説明します。両方のユーザーに対してストレージ アカウントとデータ共有アカウントを作成して使用します。

これは、ワークフローの図です。

Azure Data Shareについて

Azure データ共有 を使用すると、組織は複数の顧客やパートナーとデータを簡単かつ安全に共有できます。データを共有および受信するには、データ プロバイダとデータ コンシューマーの両方が Azure サブスクリプションを持っている必要があります。Azure Data Share は現在、スナップショット ベースの共有とインプレース共有を提供しています。現在、Azure Data Share サポートされているデータストア には、Azure Blob Storage、Azure Data Lake Storage Gen1 および Gen2、Azure SQL Database、Azure Synapse Analytics、Azure Data Explorer が含まれます。Azure Data Share を使用してデータセット共有が送信されると、データ コンシューマーは Azure Blob Storage などの任意のデータ ストアでそのデータを受信し、Teradata Vantage を使用してデータを探索および分析できます。

詳細については、ドキュメントを参照してください。

Teradata Vantage について

Vantageは、データウェアハウス、データレイク、アナリティクスを単一の接続されたエコシステムに統合する最新のクラウドプラットフォームです。

Vantageは、記述的分析、予測的分析、処方的分析、自律的意思決定、ML機能、可視化ツールを統合したプラットフォームで、データの所在を問わず、リアルタイムのビジネスインテリジェンスを大規模に発掘することが可能です。

Vantageは、小規模から始めて、コンピュートやストレージを弾力的に拡張し、使用した分だけ支払い、低コストのオブジェクトストアを活用し、分析ワークロードを統合することを可能にします。

Vantage は、R、Python、Teradata Studio、およびその他の SQL ベースのツールをサポートしています。Vantage は、パブリック クラウド、オンプレミス、最適化されたインフラストラクチャまたはコモディティ インフラストラクチャ、またはサービスとして導入できます。

Teradata Vantage Native Object Store (NOS) を使用すると、標準 SQL を使用して、Azure Blob Storage などの外部オブジェクト ストア内のデータを探索できます。NOS を使用するには、特別なオブジェクト ストレージ側のコンピューティング インフラストラクチャは必要ありません。コンテナを指す NOS テーブル定義を作成するだけで、Blob Storage コンテナ内のデータを探索できます。NOS を使用すると、Blob Storage からデータをすばやくインポートしたり、データベース内の他のテーブルに結合したりすることもできます。

あるいは、Teradata Parallel Transporter (TPT) ユーティリティを使用して、Blob Storage から Teradata Vantage にデータを一括インポートすることもできます。データがロードされると、Vantage 内でデータを効率的にクエリーできます。

詳細については、ドキュメントを参照してください。

前提条件

  • Teradata Vantageインスタンスへのアクセス。
    注記

    Vantage のテストインスタンスが必要な場合は、 https://clearscape.teradata.com で無料でプロビジョニングできます

  • Azure アカウント。 無料アカウントで始めることができます。
  • データセットを保存するための Azure Blob Storage アカウント

手順

前提条件を満たした上で、以下の手順で行います。

  1. Azure Blob Storage アカウントとコンテナーを作成する
  2. データシェアアカウントの作成
  3. 共有を作成する
  4. データ共有を使用してデータを受信および受信する
  5. Blob Storage への NOS アクセスを構成する
  6. Blob Storageのデータセットにクエリーを実行する
  7. Blob StorageからVantageにデータをロードする(オプション)

Azure Blob Storageアカウントとコンテナを作成する

  • ブラウザで Azureポータル を開き(Chrome、Firefox、Safariでうまくいきます)、この記事の myProviderStorage_rg というリソースグループに ストレージアカウントを作成するの手順に従います。

  • ストレージ名と接続方法を入力します。この記事では myproviderstoragepublic endpoint を使用します。

注記

作成するすべてのサービスに同じ場所を使用することをお勧めします。

  • Review + create を選択し、Create を選択します。

  • Go to resource をクリックし、 Containers をクリックし、コンテナを作成します。

  • + Container ボタンをクリックします。

  • コンテナ名を入力します。この記事では providerdata を使用します。

  • 作成 をクリックします。

データシェアアカウントの作成

データセットを共有するプロバイダーのデータ共有アカウントを作成します。

この記事の Azure データ共有アカウントを作成する 手順に従って、 マイデータシェアプロバイダ_rg というリソース グループにリソースを作成します。

  • Basics タブにデータ共有アカウント名を入力します。この記事では mydatashareprovider を使用します。
注記

作成するすべてのサービスに同じ場所を使用することをお勧めします。

  • Review + create を選択し、Create を選択します。

  • デプロイが完了したら、Go to resource を選択します。

共有の作成

  • [データ共有]の概要ページに移動し、 共有を作成する の手順に従います。

  • Start sharing your data を選択します。

    • Create を選択します。
  • Details タブで、共有名と共有タイプを入力します。この記事では WeatherDataSnapshot を使用します。

スナップショットの共有

受信者にデータのコピーを提供するために、スナップショット共有を選択します。

サポートされているデータストア Azure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure SQL Database、Azure Synapse Analytics (旧 SQL DW)

インプレース共有

データへのアクセスをソースで提供するために、インプレース共有を選択します。

サポートされているデータストア Azure データエクスプローラ

  • Continue をクリックします。

  • Datasets タブで、 Add datasets をクリックします。

  • Azure Blob Storage を選択します。

  • Next をクリックします。

  • データセットを提供するストレージ アカウントを入力します。この記事では myproviderstorage を使用します。

  • *次へをクリックします。

  • コンテナをダブルクリックしてデータセットを選択します。この記事では providerdataonpoint_history_postal-code_hour.csv ファイルを使用します。

図 6 ストレージ コンテナとデータセットの選択

注記

Azure Data Share は、フォルダ レベルとファイル レベルで共有できます。Azure Blob Storage リソースを使用してファイルをアップロードします。

  • Next をクリックします。

  • フォルダとデータセットに対して消費者が見るデータセット名を入力します。デフォルトの名前を使用しますが、この記事では providerdata フォルダを削除します。 Add datasetsをクリックします。

  • Add datasets をクリックします。 送信済み共有にデータセットを追加しました

  • Continue をクリックします。

  • Recipients タブで、 Add recipient の電子メールアドレスを追加するをクリックします。。

  • 消費者の電子メールアドレスを入力します。 受信者の電子メールアドレスを�追加

ヒント

消費者が受け入れることができるシェア有効期限を設定します。

  • Continue をクリックします。

  • Settings タブでスナップショットのスケジュールを設定します。この記事ではデフォルトの チェックを外して を使用します。 スナップショットのスケジュールを設定

  • Continue をクリックします。

  • Review + Create タブの Create をクリックします。 Review + Create

  • これでAzureデータ共有が作成され、データ共有の受信者が招待を受け入れる準備ができました。 データ共有の準備の完了と受信者への招待の送信

Azure Data Share を使用したデータの受理と受信

今回は、受信者/消費者が Azure Blob ストレージ アカウントにデータを受信することを想定しています。

データ共有 プロバイダ と同様に、データ共有の招待を受け入れる前に、コンシューマ のすべての事前要件が完了していることを確認します。

  • Azureのサブスクリプション。持っていない場合は、事前に +++free account+++ を作成してください。
  • Azure Blob Storage アカウントとコンテナ: myConsumerStorage_rg というリソース グループを作成し、アカウント名 myconsumerstorage とコンテナ consumerdata を作成します。
  • Azure Data Share アカウント: myDataShareConsumer_rg というリソース グループを作成し、 mydatashareconsumer というデータ共有アカウント名を作成して、データを受け入れます。

Azure Data Share を使用したデータの受理と受信の手順に従ってください。

招待状を開く

  • メールには、Microsoft Azureから「Azure Data Share invitation from *+++yourdataprovider@domain.com+++.*という件名の招待状が届いています。 *View invitation(招待状を表示する)*をクリックすると、Azureで招待状を表示することができます。 受信者へのData Share招待状メール

  • ブラウザでData Shareの招待状の一覧を表示するアクションです。 Data Shareへの招待

  • 表示したいシェアを選択してください。この記事では WeatherData を選択します。

招待を承諾

  • Target Data Share Account(ターゲット データ共有アカウント) で、データシェアをデプロイするサブスクリプションとリソースグループを選択するか、ここで新しいデータシェアを作成することができます。
注記

プロバイダが利用規約の承諾を必要とする場合、ダイアログボックスが表示され、利用規約に同意することを示すボックスにチェックを入れる必要があります。

  • リソース グループとデータ共有アカウントを入力します。この記事では myDataShareConsumer_rgmydatashareconsumer アカウントを使用します。 Target Data Share アカウント

  • Accept and configure を選択すると、Share subscriptionが作成されます。

受信共有の設定

  • Datasets タブを選択します。宛先を割り当てるデータセットの横にあるチェックボックスをオンにします。+ Map to target を選択して、ターゲット データ ストアを選択します。 DatasetとMap to targetを選択

  • データの保存先となるターゲット データ ストアの種類とパスを選択します。この記事のスナップショットの例では、コンシューマーの Azure Blob Storage アカウント myconsumerstorage とコンテナ consumerdata を使用します。

注記

Azure Data Share は、さまざまなデータ ストア間で共有する機能など、オープンで柔軟なデータ共有を提供します。スナップショットとインプレース共有を受け入れることができる サポートされている データ ソースを確認します。

データセットをターゲットにマッピングする

  • Map to target をクリックします。

  • マッピングが完了したら、スナップショットベースの共有の場合は Details タブをクリックし、 Full または _Incremental_の場合は Trigger snapshot をクリックします。プロバイダからデータを受信するのは初めてなので、完全コピーを選択します。 フルまたはインクリメンタルのスナップショットをトリガーする

  • 最終実行ステータスが _成功_の場合、ターゲット データ ストアに移動して受信したデータを表示します。 Datasetsを選択し、ターゲット パスのリンクをクリックします。 共有データを表示するためのデータセットとターゲット パス

Azure Blob Storage への NOS アクセスの構成

Native Object Store(NOS)は、Azure Blob Storageのデータを直接読み込むことができるため、明示的にデータを読み込むことなくBlob Storageのデータを探索、分析することが可能です。

外部テーブル定義の作成

外部テーブル定義により、Blob Storage内のデータをAdvanced SQL Engine内で簡単に参照することができ、構造化されたリレーショナル形式でデータを利用できるようになります。

注記

NOSは、CSV、JSON、Parquet形式のデータをサポートしています。

  • Teradata Studio を使用して Vantage システムにログインします。

  • 以下のSQLコマンドを使用して、Blob StorageコンテナにアクセスするためのAUTHORIZATIONオブジェクトを作成します。

** _USER_の文字列は、ストレージアカウント名に置き換えてください。 ** PASSWORD の文字列を、ストレージアカウントのアクセスキーまたはSASトークンに置き換えます。

  • 以下のSQLコマンドで、Blob Storage上のCSVファイルに対する外部テーブル定義を作成します。
注記

最低限、外部テーブルの定義には、テーブル名(WeatherData)と、オブジェクトストアのデータを指し示すロケーション句を含める必要があります。

LOCATION にはストレージ アカウント名とコンテナ名が必要です。これを独自のストレージ アカウントとコンテナ名に置き換える必要があります。

オブジェクトに標準拡張子 (例えば、「.json」、「.csv」、「.parquet」) がない場合、 Location…Payload 列定義句も必要であり、LOCATION フェーズにファイル名を含める必要があります。例: LOCATION (AZ/<storage account name>.blob.core.windows.net/<container>/<filename>)。

外部テーブルは常にNo Primary Index (NoPI)テーブルとして定義される。

Azure Blob Storage のデータセットにクエリーを実行する

以下のSQL コマンドを実行して、データセットにクエリーを実行します。

外部テーブルには、Location と Payload の 2 つの列のみが含まれます。Location は、オブジェクト ストア システム内のアドレスです。データ自体は payload 列に表され、外部テーブルの各レコード内の payload 値は 1 つの CSV 行を表します。

WeatherData テーブル

以下のSQLコマンドを実行し、オブジェクト内のデータに注目します。

WeatherData テーブルのペイロード

ビューを作成する

ビューを使用すると、ペイロード属性に関連する名前を簡素化でき、オブジェクトデータに対するSQLを簡単にコーディングでき、外部テーブルのLocation参照を隠蔽できます。

注記

Vantage の外部テーブルでは、オブジェクト名と列名の区切りに .. (ダブルドットまたはダブルピリオド) オペレータが使用されます。

  • 以下の SQL コマンドを実行し、ビューを作成します。
  • 以下の SQL コマンドを実行し、ビューを検証します。

WeatherData_view

ビューを作成したので、クエリーでオブジェクト ストア データを簡単に参照し、他のテーブル (Vantage 内のリレーショナル テーブルとオブジェクト ストア内の外部テーブルの両方) と組み合わせることができます。これにより、データがどこにあっても、Vantage の完全な分析機能を 100% のデータに対して活用できます。

Blob StorageからVantageへのデータのロード(オプション)

Blob Storage データの永続的なコピーがあると、同じデータに繰り返しアクセスすることが予想される場合に便利です。NOS は、Blob Storage データの永続的なコピーを自動的に作成しません。外部テーブルを参照するたびに、Vantage は Blob Storage からデータを取得します。(一部のデータはキャッシュされる場合がありますが、これは Blob Storage のデータのサイズと Vantage 内のその他のアクティブなワークロードによって異なります。)

さらに、Blob Storage から転送されたデータに対してネットワーク料金が請求される場合があります。Blob Storage 内のデータを複数回参照する場合は、一時的にでも Vantage にロードすることでコストを削減できます。

Vantageにデータをロードする方法は、以下の中から選択できます。

単一のステートメントでテーブルの作成とデータの読み込みを行う

1 つのステートメントを使用して、テーブルの作成とデータのロードの両方を行うことができます。外部テーブル ペイロードから必要な属性と、リレーショナル テーブルでのそれらの名前を選択できます。

CREATE TABLE AS … WITH DATAステートメントは、ソーステーブルとして外部テーブル定義を使用することができます。

  • 以下のSQLコマンドを実行してリレーショナル テーブルを作成しデータをロードします。
  • 以下の SQL コマンドを実行し、テーブルの内容を検証します。

[Weather data,width=624,height=87]

複数のステートメントでテーブルを作成し、データをロードする

複数のステートメントを使用して、最初にリレーショナル テーブルを作成し、次にデータをロードすることもできます。この選択の利点は、複数のロードを実行できることです。異なるデータを選択したり、オブジェクトが非常に大きい場合は小さな増分でロードしたりすることができます。

  • 以下の SQLコマンドを実行し、リレーショナルテーブルを作成します。
  • 以下の SQLを実行し、データをテーブルにロードします。
  • 以下の SQL コマンドを実行し、テーブルの内容を検証します。

[WeatherData_temp,width=624,height=84]

READ_NOS - 外部テーブルの代替方法

外部テーブルを定義する代わりに、 READ_NOS テーブル演算子を使用することもできます。このテーブル演算子を使用すると、最初に外部テーブルを作成せずにオブジェクト ストアから直接データにアクセスしたり、Location 句で指定されたすべてのオブジェクトに関連付けられたキーのリストを表示したりできます。

READ_NOS テーブルオペレータを使用すると、オブジェクト内のデータを探索することができます。

  • 以下のコマンドを実行し、オブジェクト内のデータを調査します。
  • LOCATION にはストレージ アカウント名とコンテナ名が必要です。これは上記で黄色で強調表示されています。これを独自のストレージ アカウントとコンテナ名に置き換える必要があります。
  • ACCESS_ID の文字列は、ストレージアカウント名に置き換えてください。
  • ACCES_KEY の文字列を、ストレージアカウントのアクセスキーまたはSASトークン に置き換えます。

[READ_NOS,width=624,height=86]

また、READ_NOSテーブルオペレータを活用して、オブジェクトの長さ(サイズ)を取得することも可能です。

  • 以下の SQL コマンドを実行し、オブジェクトのサイズを表示します。
  • LOCATIONACCESS_ID、および ACCESS_KEY の値を入れ替えてください。

READ_NOS オブジェクトの長さ

NOS_READテーブルオペレータは、上記セクションの外部テーブル定義で、データをリレーショナルテーブルに読み込むために代用することができます。

注記

ご質問がある場合やさらにサポートが必要な場合は、 コミュニティフォーラム にアクセスしてサポートを受けたり、他のコミュニティ メンバーと交流したりしてください。

興味深い記事