初期化文字列 - Access Module

Teradata® Tools and Utilities Access Moduleリファレンス

Product
Access Module
Release Number
17.10
Published
2021年10月
Language
日本語
Last Update
2021-11-16
dita:mapPath
ja-JP/uur1608578381725.ditamap
dita:ditavalPath
ja-JP/obe1474387269547.ditaval
dita:id
B035-2425
Product Category
Teradata Tools and Utilities

Teradata Access Module for S3は、その操作パラメータのほとんどを初期化文字列から取得します。初期化文字列は、空白で区切られた一連のキーワードと値のペアで構成されています。キーワードの値には、整数値または文字列を指定できます。

sntx_S3_Initialization_String

構文規則:

構文要素 説明
S3AccessID (必須)このパラメータは、実際にはS3のユーザーIDです。S3AccessIDの値は、初期化文字列パラメータS3AccessID、環境変数AWS_ACCESS_KEY_ID、またはcredentialsファイルで指定できます。初期化文字列パラメータS3AccessIDで指定されている場合、環境変数AWS_ACCESS_KEY_IDの値およびcredentialsファイルの内容は考慮されません。環境変数AWS_ACCESS_KEY_IDで設定されている場合、credentialsファイルの内容は考慮されません。

この値をTPTスクリプトまたはジョブ変数(JV)ファイルに格納するかどうかを決定する場合は、セキュリティ ポリシーを考慮します。Teradata Walletルックアップではこの変数の検索がサポートされています。

S3AccessKey (必須)このパラメータは、実際にはS3のパスワードです。S3AccessKeyの値は、初期化文字列パラメータ S3AccessKey、環境変数AWS_SECRET_ACCESS_KEY、またはcredentialsファイルで指定できます。初期化文字列パラメータS3AccessKeyで指定されている場合、環境変数AWS_SECRET_ACCESS_KEYの値およびcredentialsファイルの内容は考慮されません。環境変数AWS_ACCESS_KEY_IDで指定されている場合、credentialsファイルの内容は考慮されません。

この値をTPTスクリプトまたはジョブ変数(JV)ファイルに格納するかどうかを決定する場合は、セキュリティ ポリシーを考慮します。Teradata Walletルックアップではこの変数の検索がサポートされています。

S3AltURI (オプション)Amazon以外のS3プロトコル対応ストレージ サービスを使用します。一般的な形式はhttps://<ip addr or domain name>:<port number>です。このパラメータには、S3プロトコル対応ストレージ サービスのIPアドレス、またはそのアドレスに解決されるドメイン名が含まれている必要があります。コロンとポート番号は省略可能です。ポート番号が指定されていない場合、HTTPSトラフィックではポート443が使用され、HTTPトラフィックではポート80が使用されます。HTTPSトラフィックが望ましい場合は、簡潔にするために"https://"部分を省くこともできます。

S3Regionパラメータは、Amazon以外のストレージ サーバーに対して意味を持つので、必須のままです。

S3Bucket (必須)ロード操作およびエクスポート操作に使用されるS3バケットを指定します。

このパラメータは、アクセス モジュール パラメータの初期化文字列に含める必要があります。

S3BufferCount (オプション)S3ConnectionCountで指定されるTCP接続で使用するバッファ数を指定します。

接続数の2倍が最小推奨値です。値を指定しない場合、値(2 * S3ConnectionCount)がデフォルトとして使用されます。

S3BufferSize (オプション)TCP接続に使用されるバッファのサイズを指定します。デフォルトは8MB(8388608バイト)です。エクスポート操作の場合、バッファ サイズは少なくとも5メガバイト(5MB)が必要です。便宜上、k(1000)、K(1024)、m(1000 * 1000)、M(1024 * 1024)の乗数を使用できます。例えば、デフォルトは8Mまたは8192Kと指定できます。
S3ConfigDir (オプション)configファイルとcredentialsファイルのデフォルトの場所は

$HOME/.awsですが、このパラメータでオーバーライドすることができます。

S3ConnectionCount (オプション)S3サービスへのTCP接続の数を指定します

指定しないと、デフォルトの10が使用されます。

S3DontSplitRows (オプション)このパラメータは、エクスポート ジョブ(つまり、S3またはS3互換ストレージへの書き込み)にのみ適用されます。S3SinglePartFile=False(デフォルト)である場合、オブジェクトが「満杯」になると、次のオブジェクトが作成されて、データ ストリームは次のオブジェクトに書き込まれ続けます。それらのオブジェクトには、このドキュメントの他の部分で説明しているように、<your path>/F000000<your path>/F000001のような名前が付けられます。「オブジェクト フル」で定義されているバイト境界では分割が行なわれます。このアクセス モジュールでオブジェクトが読み取り直される場合、分割されているオブジェクト全体が単一オブジェクトであるかのように連結されてから処理されます。

別のアプリケーションでオブジェクトを読み取り直す場合は、各Fxxxxxxオブジェクトがデータベース行の境界で終わるように、S3DontSplitRows=Trueを設定します。また、圧縮が有効になっている(つまり、パス名が".gz"で終わっている)場合、各Fxxxxxxオブジェクトに対して新規gzipコンテキストが生成されるので、各オブジェクトが互いに独立することになり、各オブジェクトを任意の順序で読み取ることや、同時に読み取ることができます。

S3HttpsProxy (オプション)認証を必要としないHTTPSプロキシのIPアドレス(またはドメイン名)とポート番号を指定します。形式はhttps://w.x.y.z:mです(w.x.y.zはプロキシ サーバーのIPアドレス、 mはプロキシ サービスのポート番号)。このパラメータの詳細については、このドキュメントのHTTPSプロキシのサポートセクションで説明しています。
S3KmsKeyId (オプション)S3オブジェクトに書き込む際に、KMSで管理されているキーをサーバー側の暗号化に使用する場合は、次のように設定します。
  • S3Sse=KMS
  • S3KmsKeyId=desired KMS key ID

KMSキーは、AWS Web ConsoleのIAMセクションで管理することができます。

読み取り時に、必要なキーを使用する権限をユーザーが持っている場合は、そのキーが自動的に使用されます。このフィールドは読み取りジョブでは無視されます。

S3LogAPI (オプション)開発者用の追加情報を含むデバッグ トレース ファイルを作成します。トレース ファイルにはユーザーの信頼証明が含まれるため、Teradataによる明示的な指示がない限りS3LogAPIは使用しないでください。
S3MaxObjectSize (オプション)このパラメータは、S3への書き込み時にのみ適用されます。このパラメータは、S3オブジェクトのサイズを制御します。動作の説明は、以下の「オブジェクト サイズの制御」というセクションに記載されています。
S3MaxRetries (オプション)アクセス モジュールが諦めてユーザーにエラーを返す前に、REST要求が再試行される回数。(デフォルト 8)
S3Object (必須)S3バケットに作成されるオブジェクトの名前。S3PrefixS3Objectを連結することによって、そのパス名になります。

大きな結果セットをサポートするために望ましい操作形態は、このアクセス モジュールによって生成される接尾辞を、指定されたパス名に付加することによって一連のオブジェクトを作成することです。詳細については、後述のS3SinglePartFileの説明を参照してください。

S3Prefix (オプション)この文字列が指定されている場合は、S3Object文字列の前に付加されて、バケット内でのパス名が作成されます。エクスポートまたはロードのスクリプト作成での利便性のために、一連のテーブルをエクスポートまたはロードするときに、パス名の中で変化しない部分を、このパラメータで指定することができます。
S3バケット内では、ディレクトリを明示的に作成する必要はありません。S3 CLIとGUIでは、"/"の存在に基づいてオブジェクトのリストが分離されますが、それは表示上の便宜のために行なわれるだけです。パス名で"/"を使用するためにディレクトリを作成する必要はなく、パス名での1つまたは複数の"/"の存在または位置は、S3RegionまたはS3Objectの文字列のいずれかまたは両方で指定できます。特に、S3Prefixを使用している場合、途中や末尾に"/"が含まれている必要はありません。”.
S3Profile configファイルとcredentialsファイルは、AWSのドキュメントごとのセクションに分かれています。各セクションには、角括弧で囲まれた見出しが付いています。S3Profile変数では、これらの2つの各ファイルにあるセクションを選択します。[default]というセクションは必ず存在します。S3Profileが指定されていない場合、または"default"という値が明示的にデフォルトとして示されている(S3Profile=default)場合に、このセクションが使用されます。
S3Region (必須)S3オブジェクトが格納されているS3リージョンを指定します。S3リージョン名がus-west-2である場合は、初期化文字列でS3Region=us-west-2と指定するか、またはconfigファイルで"region = us-west-2"と指定する必要があります。この必須パラメータは、アクセス モジュールの初期化文字列で明示的に指定してオーバーライドされていない場合は、configファイルから取得されます。
米国東海岸の元のAWS S3地域は、「米国標準」と呼ばれることがよくあります。これは、us-east-1と指定します。
S3RetryRate (オプション)最初の再試行の初期基本ミリ秒数を設定します。 その後の再試行では、この間隔が2倍になります。(デフォルト 50)
S3Role (オプション)このAWS固有の機能では、S3への接続に使用する信頼証明を指定します。このパラメータで指定されるAWS IAMロールは、ジョブが実行されているAWS EC2インスタンスに割り当てられているIAMロールである必要があります。S3Roleを指定している場合、S3AccessIDとS3AccessKeyは必須ではなくなり、指定されていても無視されます。指定するロールには、以下のアクセス権が含まれている必要があります。
Resource *:
     S3:ListAllMyBuckets, S3:GetBucketLocation
Resource <bucket> and <bucket>/*:
     S3:ListBucket, S3:GetObject, S3:PutObject,
     S3:DeleteObject
S3SecurityToken (オプション)AWS多要素認証の支援として、サービスアカウントが利用できない可能性があり、一時的な信頼証明が提供されるシナリオの場合、これは“session-token”です。

S3SecurityTokenの値は、初期化文字列パラメータS3SecurityToken、環境変数AWS_SESSION_TOKEN、または信頼証明ファイルaws_session_tokenで指定できます。初期化文字列パラメータS3SecurityTokenで指定されている場合、環境変数AWS_SESSION_TOKENの値と信頼証明ファイルの内容は考慮されません。環境変数AWS_SESSION_TOKENで指定されている場合、信頼証明ファイルの内容は考慮されません。

S3SinglePartFile (オプション)読み取りまたは書き込みの対象となるS3オブジェクトが、S3Objectで指定されている名前を持つ単一ファイルか、S3Objectで命名されされている「見かけ上の」ディレクトリ内の一連の番号付きファイルのどちらであるかを決定します。前述のように、ディレクトリは実際には存在しませんが、GUIおよびCLIでは、"/"に基づいてファイルが分離されて、ディレクトリがあるように表示されます。

アプリケーションがS3上にオブジェクトを作成する場合、最大10,000個の「ピース」から1つのオブジェクトを作成できます。接続を開くときに、「ピース」のサイズとSHAハッシュを提示する必要があります。ディスク上のファイルをバッファリングすることは望ましくないので、「ピース」のサイズはバッファのサイズに制限されます。ピース サイズおよびバッファ サイズの最小値は5MBです。デフォルトでは、メモリ使用量とパフォーマンスの適切なトレードオフとして8MBが使用されます。ピースを1つのS3オブジェクト(ファイル)にまとめる場合、コマンドでは10,000個に制限されています。そのため、より大きいバッファ サイズが使用されていない場合、作成される単一のS3オブジェクト(ファイル)のサイズは実質的に80GBに制限されます。

解決方法は、関連するパス名を持つオブジェクト(ファイル)のリストを、エクスポート操作またはロード操作のための単一ファイルとして自動的に処理するメカニズムを提供することです。Teradata Access Module for S3では、"/"、"F"、連番が順に付加されます。そのため、要求されているS3オブジェクトの名前で作成された「見かけ上の」ディレクトリがあり、その「見かけ上の」ディレクトリ内のファイルには、F000001F000002F000003という名前が付けられます。これによって、データベースからの任意のサイズの大きい結果セットを処理するための問題は解決します。「ピース」の接尾辞は事前定義されていて、オーバーライドすることはできません。

出力がバッファ サイズの10,000倍を超える場合は、連番のファイルが作成されるように、S3SinglePartFileパラメータが"false"に設定されている必要があります。S3SinglePartFileのデフォルト値は"false"です。

次のシナリオでは、S3SinglePartFileパラメータを"true"に設定できます。
  • 小規模データセットを使用したテスト
  • 保存する結果セットが10,000*buffersizeよりも確実に小さくなることを顧客が確信している場合の実働

パーツ(F000001、F000002など)に分割されていない任意のサイズのS3オブジェクト(ファイル)を読み取るときは、S3SinglePartFileをtrueに設定する必要があります。

S3SSe (オプション)使用する暗号化がバケット ポリシーで指定されている場合、またはS3に書き込むアプリケーションがサーバー側の暗号化を要求している場合を除いて、S3上に置かれているS3オブジェクトのデータは暗号化されていません。暗号化キーはユーザーのAWSアカウントに関連付けられています。そのキー(「S3キー」とも呼ばれる)を要求するには、S3Sseの値に"True"または"S3"を指定します。AWS Key Management Serviceで管理されている特定のキーを使用することもできます。
特定のAWSアカウントのすべてのユーザーで共有される、S3管理キーを使用するには、次のパラメータを設定します。
  • S3SSe=TrueまたはS3Ss3=S3 (同等)
KMS管理キーを使用するには、次のパラメータを設定します。
  • S3Sse=KMS
  • S3KmsKeyId=desired KMSKeyID

S3SseおよびS3KmsKeyIdで指定されている値は、S3オブジェクトの読み取り時には無視されます。必要なキーへのアクセス権をユーザーが持っている場合、これらのパラメータが指定されているかどうかに関係なく、読み取りジョブは成功します。

S3TransportMode アクセス モジュールからS3またはS3互換ストレージ サーバーへの暗号化されていないトラフィックを許可します。この機能は、S3TransportModeUnEncryptedに設定する(S3TransportMode=UnEncrypted)ことで有効になります。このパラメータでは大文字と小文字が区別されます。
暗号化されていないトラフィックが使用されたことを示す警告がログに記録されます。