1 から学ぶ「Teradata」(第2回)- VantageCould Enterprise構築編

# 前回からの振り返り
前回はTeradataの会社概要、製品およびアーキテクチャについて記載しました。
※前回の記事：https://qiita.com/NTTD-niwats/items/0ba385fa4d061b2cb2e7

# 今回のテーマ
今回はVantageCould Enterpriseの構築について記載します。

## 事前の予備知識
構築を説明する前にTeradata製品の用語について説明します。
Teradataの製品はとにかく別名が多く混乱しますので私が把握している範囲で以下にまとめます。
※Teradata有識者やTeradata社の方と会話する場合には事前に呼び名を決めておくことをお勧めします。

<details><summary>名称一覧</summary>

|名称|説明|別名/略称|
|-------|-------|----|
|Vantage as a service<BR>(VaaS)|Terdata社の(SaaS版)クラウド製品<BR>提供している製品|VantageCloud Enterprise<BR>(VCE),<BR>VantageCloud Lake<BR>(VCL)|
|Vantage|Vantage製品名ですがデータサーバとして示す場合があります|データベースサーバ|
|Data Stream Architecture<Br>(DSA)|バックアップ機能|DSC,<Br>BAR|
|Viewpoint|ポートレットと呼ばれるWebベースのアプリケーション用のフレームワーク<Br>監視アラートの設定およびダッシュボードによるリソース状況の確認|VP<Br>システムモニター|
|cmic|各サーバ上で実行されているサーバ管理用エージェント<BR>ただし、監視マネージャーの機能とを示す場合もある|PSIM|
|VantageConsole|インターネット公開されているWEBベースアプリケーション用のフレークワーク<BR>・VantageCloud EnterpriseのVantageCloudはバックアップやサーバ環境変更などを実施またはTerdata社に依頼する機能<Br>・VantageCloud LakeのVantageCloudは機械学習用の機能も付与されている<Br>https://cloud.vantage.teradata.com|システムコンソール|
|サポートポータル|Terdata社の障害・技術問い合わせを行うサイト<BR>https://support.teradata.com|ポータル|
|サイトID|テラデータの環境ごとに割り振られた一意の番号<BR>ポータルサイトによる問い合わせ時に入力項目|-|
|BaaS API<BR>(Backup as a Service API)|バックアップを実行するためのAPI機能<BR>ジョブ管理ツールからTeradataのデータのバックアップを実行する場合に利用される機能<BR>(Backup as a service)|-|
|ワークロード管理|一連のルールによってデータベースへのアクセスを管理できる共通の特性を持つデータベース リクエストである<BR>・リクエストのタイプごとに異なるアクセス優先順位を設定<BR>・リソースの使用パターン、パフォーマンス調整、および容量計画を監視<BR>・同時に実行できるリクエストまたはセッションの数を制限<BR>viewpointで設定可能|Teradata Active System Management<BR>(TASM)|
|DBC|(データベース内)Database Controlユーザの略称であり、管理者ユーザ（admin）を示すユーザ|-|
|ユーザ|(データベース内)データベースに接続するためのユーザ<BR>※別のDBエンジンのスキーマのイメージです。|-|
|データベース|データベースの全体を示す場合と(データベース内)テーブルなどオブジェクトを格納する場所を示す2種類があります。<BR>※後者のデータベースは別のDBエンジンのスキーマのイメージであるが、ユーザ/ パスワードによるログインができません|-|
|Account|(データベース内)USERを操作するID<BR>メンテナンス、運用担当者などの用途に合わせて利用|-|
|Permanent<BR>(Perm)|(データベース内)ユーザまたはデータベースに割り当てるディスク領域|-|
|Spool|(データベース内)ユーザが実行するクエリの結果をマージする場合の一時的ディスク領域|-|
</details>


# 構築
AWSを利用したVantageCould Enterpriseの構築について記載します。
|項番|作業分類|作業内容|
|-------|-------|----|
|1 |NW構築|Teradata社のAWSアカウントとPrivatelink接続する|
|2 |データベース構築|データベース、ユーザ、権限等を作成する|
|3 |監視設定|データベース内のディスク容量のアラート通知等を設定する|
|4 |バックアップ設定|データベースのバックアップ用ジョブを作成する|
|5 |クライアントツール|クライアントのインストール、および設定する|


### 1. NW構築
![NW.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/ddb2f778-28e9-4672-a9a6-e1138a23ae3f.png)

|#|接続|説明|
|-|-------|-------|
|1|データベース用のエンドポイント接続|PrivateLink接続<BR>セキュティグループ<BR>Route53:エンドポイントの別名設定|
|2|Viewpoint用のエンドポイント接続|PrivateLink接続<BR>セキュティグループ<BR>Route53:エンドポイントの別名設定|
|3|VantageConsole用のインターネット接続|(Proxyサーバを用意している場合)<BR>・インスタンスのProxy<BR>・Proxyのホワイトリストの追加|
|4|BaaS API実行用のインターネット接続|(Proxyサーバを用意している場合)<BR>・インスタンスのProxy<BR>・Proxyのホワイトリストの追加|
|5|サポートポータル用のインターネット接続|(Proxyサーバを用意している場合)<BR>・インスタンスのProxy<BR>・Proxyのホワイトリストの追加|

VantageColudを利用するに伴いテラデータ社に接続に関する情報を連携する必要があります。そのため、連携すべき最低限の情報を以下に記載します。
※口頭によるヒアリングなのでに認識齟齬がないことを十分に確認してください。

|#|項目|説明|
|--|-------|-------|
|1|製品|Enterprise or Lake|
|2|バージョン|バージョン情報|
|3|AWSのアカントID|利用者側のAWSアカント|
|4|リージョン|利用者側のAWSで利用している同じリージョン|
|5|接続するAZ-ID|メインで接続するAZのID|
|6|Cross ZoneのLoad balancing設定|別AZからの接続可否|
|7|インスタンスタイプ|サーバスペック|
|8|インスタンス数|サーバ台数<BR>バックアップからの復元が保証が最低3台であるため、3台は用意する|
|9|ノード単位のディスク容量|全体のディスク容量/インスタンス数の容量<BR>※設定した値はメモリダンプ、OS割当なども含まれている<BR>そのため、実際に利用できる容量よりも小さくなる|
|10|ノード単位のAMP数|移行する場合には移行前のAMP数となる。<BR>新規の場合はデフォルト値の18を指定|
|11|接続形態|PrivateLink or TransitGateway|

### 2. データベース構築
データベース構造を理解する前に「ユーザ」と「データベース」について説明します。
まずもっとも混乱しやすいデータベースについて、<BR>データベースという用語はデータベース全体を示しますが、テラデータではオブジェクトの格納先もデータベースと呼びます。
そのため、同じ用語ですが、２つの意味がありますので話の流れからどちらを示しているのかを把握する必要があります。

「ユーザ」は別のデータベースのスキーマに相当します。
ユーザとデータベースの違いはログインの可否のみとなるため、ユーザ上にオブジェクトを配置することも可能です。

このことからユーザだけでも良いのではと思いますが、推奨の構成としてユーザにはオブジェクトを配置せず、データベースにオブジェクトを配置し、「ユーザ」のデフォルトデータベースの参照先をオブジェクトを配置した「データベース」にするようです。

参考例：データベース内部構造
![データベース内部構造.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/58b641ce-2224-e5ac-9687-b412b72cabb4.png)

### 3. 監視設定
監視設定はブラウザ経由でViewpointにアクセスを行い設定します。
![VP-設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/f7157be4-a2d2-9a9b-ae88-e1ab60b51349.png)

監視対象システムから各種の監視設定を行います。
(データベースのディスク使用率が80%を超えた場合にメール通知するなど）

### 4. バックアップ設定
１. VantageConsoleから設定を行います。
VantageConsoleにログインするユーザはサポートポータルのユーザとなります。
少しわかりずらいので以下の整理します。

■サポートポータルについて説明します
サポートポータルのユーザは(ポータル)管理者と一般の２種類があります。
管理者はVantageConsoleへの操作権限を保持していること、一般ユーザに権限を付与することができます。
![support-alluser.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/0ab9fac3-3289-5cff-3f3f-18bc5a23b155.png)

一般ユーザがVantageConsoleを操作した場合には管理者ユーザで権限を付与する必要があります。
![support-権限付与.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/8923cf7b-aaa2-e688-5014-b31148f4b60e.png)


サポートポータルにユーザを追加する場合には「ユーザ名」、「メールアドレス」、「パスワード」を入力する必要があります。
![support-useradd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/223dac13-d00b-48e8-e55c-90e996b73d86.png)


__■■■■　サポートポータルには多くの問題があるため、注意が必要です。■■■■__
__■１度ユーザを登録するとユーザの削除や変更ができない。__
不要となったユーザに対してはサポートポータルの管理者ユーザから無効化することが可能です。<BR>無効化することにより、サポートポータルへの接続はできません|

__■サポートポータルに登録するメールアドレスは利用範囲が限定的ではない__
サポートポータルおよびテラデータ社の研修サイトから登録するメールアドレスは一元的管理されているようで目的ごとに同じメールアドレスを登録することができません<BR>
・テラデータ社の研修サイトで登録したメールアドレスを利用してサポートポータルのユーザを作成すると重複エラーが発生し、登録できません。
・サポートポータルで登録したメールアドレスでテラデータ社の研修サイトにアクセスが可能
・サポートポータルで登録するユーザは企業単位のアカウントおよび環境ごとに管理されているため、例えば開発環境、本番環境の２環境がある場合には２つのメールアドレスを用意する必要がある。またユーザを削除できないため、別の環境への再利用は不可となる。
<BR>

#### バックアップの設定
|#|作業手順|
|--|-------|
|1|サポートポータルのユーザを作成する|
|2|【サポートポータルのユーザが管理者以外の場合のみ】<BR>サポートポータルの管理者が1で作成したユーザに対してCloud Service Ownerの権限を付与する|
|3|サポートポータルで作成したユーザのメールアドレスを利用してVantageConsoleにアクセスする|
|4|VantageConsole画面からデータベースのバックアップを操作するためのユーザを参照し、Vantageのデータベース上でサポートポータルのTD UserをVantage上のユーザとして登録および権限を付与する|

<BR>
上記の作業が完了後にVantageConsole(https://cloud.vantage.teradata.com) に接続してバックアップのジョブを作成します。

![バックアップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/4fedb35f-793d-4358-8ea4-cd24b189f6f6.png)

|項目|説明|備考|
|-------|-------|--|
|タイプ|フルと累積（増分）の２種類<BR>※Teradata製品はフル、デルタ（差分）、累積の３種類のバックアップがありますが、VCEはデルタ(差分)がありません|VCEの画面の表記がDELTAとなっておりますが、実際はデルタではなく累積バックアップのようです。<BR>※名称が正しく累積に修正されることを期待します|
|バックアップ対象範囲|全体バックアップとオブジェクトを指定するバックアップの２種類|※2023年３月時点でオブジェクトを指定するバックアップを選択する場合にはバックアップのタイプがフルでなければリストアできないため注意が必要です|

バックアップの処理は非常に高速なのでオブジェクトを指定したバックアップではなく、全体バックアップをお勧めします。

<BR>
<BR>
２. ジョブやツール経由でバックアップを実行する場合にはBaaS APIを利用します。
<BR>

VantageConsoleの画面からスケジュール（時刻）を指定することでバックアップを取得することが可能です。
ただ、バックアップを終わり次第、処理/ジョブを実行したい場合など関連性を持たせたい場合にBaaS APIを利用します。

BaaS APIは以下のような構成になっているようです。
![BaaSAPI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695372/631ab0d2-ac17-ea59-e645-0061ee66d751.png)

メールアドレス、パスワード、バックアップジョブなどの情報を設定の上、Curlコマンドを利用して実行します。
※コマンドの実行方法についてはマニュアルなどがないため、Teradata社に問い合わせいただく必要があります。

BaaS APIを実行には以下の２つの前提条件が必要となります
・VantageConsoleの画面からバックアップのジョブ予め作成しておくこと
・サポートポータルの管理者権限のユーザであること
　(※管理者権限ではなく、権限付与されたユーザのみ実行できるように改善してほしい)

### 5. クライアントツール
さまざまなクライアントツールが用意されていますが、今回利用したツールのみ記載します。

ダウンロード先：https://downloads.teradata.com/

|ツール名|機能|備考|
|-------|-------|----|
|Teradata Studio |データベースにアクセスするGUIベールのツール|-|
|Bteq|データベースにアクセスするコマンドラインベースのツール|Teradata Tools and Utilities (TTU) の1つ|
|Teradata Parallel Transporter(TPT)|データのエクスポートやロードなどのツールを統合した総称<BR>|Teradata Tools and Utilities (TTU) の1つ|
|Fast export |データベース上からデータを抽出しファイル化するツール<BR>(TPT群に属するツール)|Teradata Parallel Transporter(TPT) の1つ|
|Fast Load |ファイルからデータを登録するツール<BR>(TPT群に属するツール)|Teradata Parallel Transporter(TPT)の1つ|
|S3Access module |Fast exportで抽出したファイルをAWSのS3に直接書き込みする場合のモジュール<BR>※AWS専用|Teradata Tools and Utilities (TTU) の1つ|
|ODBCドライバ/ JDBCドライバ |BIツールなどと接続するためのドライブ|※1|

※1　ドライバ単独で動作確認することはできないため、ドライバインストール時にドライバ経由の接続を確認できるツールが用意されていますので必要に応じて利用してください。

https://docs.teradata.com/r/Vj58LtP_dLKGR90prQrdtw/KEm~617tXw9dUm7Ej1dWGQ
※動作させるためには環境変数が必要となるが、本サイトに環境の記載がないため以下の環境変数を設定すること

    ODBCINI
    ODBCINSINI
    LD_LIBRARY_PATH

## 運用について
運用する上で必要な情報や作業について次の記事で書きます。
※1から学ぶ「Teradata」(第3回)- VantageCould Enterprise運用編
https://qiita.com/NTTD-niwats/items/1188772d1e4ae59235b8

# 仲間募集
NTTデータ テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。

<details><summary>1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)</summary>
クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer
</details>

<details><summary>2. データサイエンス領域（データサイエンティスト／データアナリスト）</summary>
データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist
</details>

<details><summary>3.お客様のAI活用の成功を推進するAIサクセスマネージャー</summary>
DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。
https://nttdata.jposting.net/u/job.phtml?job_code=804
</details>

<details><summary>4.DX／デジタルサクセスを推進するデータサイエンティスト</summary>
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。
https://nttdata.jposting.net/u/job.phtml?job_code=898
</details>