Teradata Access Module for AzureでAzure Blob Storageにデータの読み書きをしてみる

とても多くのお客様がVantageとMicrosoft Azure First Party Servicesとの統合に関心を持っています。そのようなトピックからここではAzure BLOBとVantageの接続について説明します。

このガイドで説明するアプローチはVantageとAzure BLOBストレージとを統合するための多くの可能性のあるアプローチの一つであり、そのままの形で提供されるものです。 このアプローチは社内で実装されテストされていますが、TeradataまたはAzureのいずれからも、このアプローチに関する正式なサポートはありませんのでご注意ください。

免責事項：本ガイドは、AzureとTeradata製品の両方のドキュメントからの内容を含んでいます。

# 概要

[Teradata Access Module for Azure](https://docs.teradata.com/reader/p~0sSD4zl4K8YPbEGnM3Rg/TTu_WJMMIpo2TEaxFMFopQ)はTeradata Parallel Transporterのロード/アンロード・オペレーターと**Azure Blob Storage**の間のインターフェースとして動作する共有ライブラリです。

Teradata Access Module for AzureはAzure Blob Storageからのデータのエクスポート/インポートに使用することができます。

Teradata Access Module for AzureはAzure Blob StorageからデータをエクスポートしてTeradata Vantageにロードするシナリオにおいてチェックポイントおよび再起動/リカバリ操作をサポートします。

このスタートガイドではTeradataVantageとAzure Blob Storage間の接続とデータコピーの方法を紹介します。Teradata Access Module for Azure on Windowsを使用して、以下を実行します。

- VantageからAzure Blob Storageにデータをコピーする
- Azure Blob StorageからVantageにデータをコピーする。

前提条件
- Azure サブスクリプションの[無料アカウント](https://azure.microsoft.com/free/)（開始前)
- [Azure Blob Storage](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal)のアカウントとコンテナ
- [Teradata Tools and Utilitesのダウンロード - Windows](https://downloads.teradata.com/download/tools/teradata-tools-and-utilities-windows-installation-package)
  ・Teradata Parallel Transporter（BaseおよびStream）をインストールします。
  ・Azure用Teradata Access Moduleのインストール

[Azureポータル](https://portal.azure.com/)にログインしストレージアカウントを開きAccess keysをクリックし「Storage Account Name」と「Key」をメモ帳にコピーします。

![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/5a41622b-eb9c-a3d6-25de-60dad509d95a.png)

次にPropertiesをクリックし「Endpoint」を同じメモ帳ファイルにコピーします。これで、Teradata Access Module for Azureからストレージにアクセスできるようになります。

![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/1d7ef3fd-941b-fdf3-7bf2-bf5e0516c4a7.png)

メモ帳ファイルを「credentials」というファイル名で保存し、**Teradata Tools and Utilities Access Module Reference** [ドキュメント](https://docs.teradata.com/reader/p~0sSD4zl4K8YPbEGnM3Rg/TTu_WJMMIpo2TEaxFMFopQ)の章 **Teradata Access Module for Azure** のセクション **「The Credentials File」** に従って **資格情報** ファイル、**azureaxsmod** ディレクトリ、**HOME** 環境変数を作成してください。

![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/1075fed5-c9c7-6ee0-269c-8f966caee7cc.png)

:::note note
WindowsプラットフォームではHOME環境変数を手動で作成してazureaxsmodディレクトリが存在する場所を指すようにする必要があります。
:::

# TeradataからAzure Blob Storageへのデータコピー

Teradata Access Module for Azureドキュメントの手順に従っ、C:﹑Program Files Teradata﹑Client﹑16.20Teradata Parallel Transporter﹑quickstartディレクトリのスクリプトを変更します。

注意事項 :

- 以下のジョブスクリプトはWindowsの場合、libasureaxsmod.dllを参照しています。Linuxの場合、スクリプト内でlibazureaxsmod.soを参照する必要があります。
- azureaxsmodディレクトリが資格情報ファイルを保存するホームディレクトリの下にないか、HOME変数が作成されていない場合、スクリプト内の-ConfigDir初期化文字列を使用して資格情報ファイルが保存されているディレクトリパスを指定する必要があります。
- Azure Blobストレージ上のファイル名を指定するには-Objectパラメータを使用します。

ジョブ変数ファイル - Teradata サーバー名、ユーザー名、パスワードの適切なパラメーターで「jobvars」ファイルを作成します。

![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/8485664b-4c37-0321-4dfe-bd88677d8766.png)

注：CSVエクスポートの場合ジョブ変数ファイルに次のように設定・追加する必要があります。FileWriterFormat='Delimited'とFileWriterTextDelimiter=',' はカンマ区切りであることを表します。

**Setup Job (optional)** - エクスポートするテーブルやデータがない場合、サンプルディレクトリやドキュメントにあるスクリプトを使用して作成することができます。

**エクスポートジョブ** - 適切なパラメータ -Container, -Prefix (オプション), ファイル名, タブ名を設定したジョブスクリプトを作成します。

![画像5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/ba368f0f-808c-ef79-96bd-b09696cea21d.png)

ジョブスクリプトを実行するには、Windowsのコマンドプロンプト（CMD）を開きCDからスクリプトの場所（C: \Program FilesTeradata╱Client╱16.20ⒸTeradata Parallel Transporter╱quickstart）に入れて実行します。

tbuild -f <job script> -v <job variable file> -j <job name>

![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/9d250d93-75d0-e522-8595-df54077e0def.png)

AzureポータルにログインしBlobストレージアカウントを開きコンテナをクリックして読み込んだファイルを表示します。

![画像7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/d23d3e8b-454e-6a69-0037-08f23f8bd5a0.png)

# Azure Blob StorageからTeradataにデータをコピーする。

**Job var ファイル** - Teradata サーバ名、ユーザ名、パスワードの適切なパラメータを含む「jobvars」ファイルを作成します。

![画像8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/481e0536-3da8-ca4f-1722-f2dd292fc460.png)

注：CSVインポートの場合はジョブ変数ファイルに設定・追加する必要があります。FileReaderFormat='Delimiter' と FileReaderTextDelimiter =',' はカンマ区切りであることを表します。

**Setup Job (オプション)** - ターゲットテーブルが存在し前回のロードでエラーテーブルが作成されなかった場合は、テーブルを作成しエラーテーブルを削除するため処理を追加します。

**インポートジョブ** - 作成/修正するパラメータは<>括弧の中を適切に置き換える必要があります。Teradata Access Module for Azureの資格情報ファイルを作成し、$HOME/azureaxsmodに配置する必要があります。

![画像9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/806b5981-1ab3-6bbb-4ea9-967b3a7e141e.png)

ジョブスクリプトを実行するには、Windowsのコマンドプロンプト（CMD）を開き、CDからスクリプトの場所（C:﹑Program Files Teradata﹑Client﹑16.20ⒸTeradata Parallel Transporter﹑quickstart）を指定して、実行する必要があります：

tbuild -f <job script> -v <job variable file> -j <job name>

![画像10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/3725922e-e7dd-6f52-aac4-a1ae14732102.png)

# おわりに
Azure BLOBストレージへのインポートやエクスポートはいかがでしたでしょうか？
ぜひお試しください！

#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)