権限 - Parallel Data Pump

Teradata® Parallel Data Pump リファレンス

Product
Parallel Data Pump
Release Number
17.00
Published
2020年6月
Language
日本語
Last Update
2021-01-07
dita:mapPath
ja-JP/ioq1544831946920.ditamap
dita:ditavalPath
ja-JP/ioq1544831946920.ditaval
dita:id
B035-3021
Product Category
Teradata Tools and Utilities

タスクで使用するマクロの作成はTeradata TPumpで統括されるため、Teradata TPumpのユーザーは、再始動ログ表の入ったデータベースに対する権限が必要となります。

ログ テーブルを削除すると、Teradata TPumpジョブを再始動できなくなります。マクロまたはエラー テーブルを削除すると、Teradata TPumpジョブの再始動が非常に困難になります。

Teradata TPumpでは、作成したデータベース オブジェクトが特に保護されることはありません。したがって、Teradata TPumpが使用するデータベースに対する権限の設定は、Teradata TPump管理者およびユーザーの責任で行ないます。

Teradata TPumpの権限の多くは、直感的に理解できるものです。例えば、次のように指定します。
  • ログ テーブルの置かれるデータベースには、CREATE TABLE権限が必要です。
  • エラー テーブルの置かれるデータベースには、CREATE TABLE権限が必要です。
  • マクロの置かれるデータベースには、CREATE/DROP MACRO権限が必要です。
  • マクロの置かれるデータベースには、EXECUTE MACRO権限が必要です。

マクロ

マクロを使用することにより、Teradata TPumpでの権限は若干複雑になります。Teradata TPumpジョブを実行するために必要なその他の権限には、2種類のシナリオがあります。
  • Teradata TPumpマクロが操作対象の テーブルと同じデータベース内に置かれている場合に必要な権限は、実行するDMLに応じて、操作対象のテーブルに対するINSERT/UPDATE/DELETE権限です。
  • Teradata TPumpマクロが操作対象のテーブルとは別のデータベース内に置かれている場合、マクロが置かれているデータベースには、実行するDMLに応じて、操作対象のテーブルに対するINSERT/UPDATE/DELETE, WITH GRANT権限が必要です。それに加えて、マクロの置かれているデータベースに対するEXECUTE MACRO権限も必要です。

Teradata TPumpジョブがEXECを使用してマクロを直接指定している場合にも、権限のシナリオは同じです。ただし、マクロはジョブの前にも後にも存在しているため、CREATE/DROP MACRO権限は必要ありません。

テーブル

Teradata TPumpタスクで変更されるテーブルについては、そのテーブルに対するINSERT、UPDATE、またはDELETE権限が必要です。複数のテーブルを単一のTeradata TPumpジョブのターゲットにすることができます。

BEGIN LOADコマンドは、Teradata TPumpを呼び出してタスク処理を実行します。このタスクの文は、インポートされたデータ レコードのうち一致するものを、指定の索引値を持つターゲット テーブルの各行に適用します。Teradata TPumpではすべてのテーブルのタイプがサポートされます。MultiLoadとは異なり、禁止されている索引タイプはありません。したがって、テーブルは、空でもデータが入っていても構わず、さらに、副次索引が付いていても付いていなくても構いません。

すべての必要なデータがインポートされます。どのデータも、データベースにすでに存在するテーブルから入手されることはありません。IMPORTタスクのどの文も、その文の影響を受けるもの以外のテーブルや行を参照することはできません。

インポートされることになるレコードとの関連で考えると、すべてのINSERT文では、デフォルト値(ヌルを含む)が定義されている列を除くすべての列の値を明示的に指定する必要があります。また、インポートされるレコードとの関連で考えると、すべてのUPDATE文とDELETE文では、基本索引のすべての列の値を明示的に指定する必要があります。UPDATE文とDELETE文の場合にこの要件を満たすには、次のどちらかの形式の一連のAND結合された項を指定する必要があります。

column_reference = colon_variable_reference

または

column_reference = constant

Teradata TPumpは、インポートされたレコードを、インポート ファイルからの値(またはヌル)を使用してハッシュする必要があるため、OR結合された項を含むUPDATE文およびDELETE文を処理しません。 これらの文でOR結合の使用を試みると、Teradata TPumpに障害が起きます。これを回避するためには、2つの別々のDML文を作成し、条件に応じてそのどちらかを適用するようにします。

Teradata TPumpでは、IMPORTタスクの更新に関していくつかの制約があります。行の基本索引の値を変更しようとすると拒否されます。しかし、他の列については再帰的な更新であっても受け付けられます。列の再帰的な更新では、いくつかの列の現在の値に基づく式の処理結果として新しい値が計算されます。

Teradata TPumpは、BEGIN LOAD文からEND LOAD文までのすべての文を処理し検証します。Teradata TPumpの制御セッションと処理セッションが確立され、Teradata SQL要求はデータベースに転送されます。Teradata TPumpは、DML文ごとに単一のエラー テーブルと一連のマクロを作成します。ターゲット テーブルは、同時アクセスされないように保護されることはありません。

Teradata TPumpは、データをインポートし、指定された適用条件に従ってそれぞれのレコードを評価します。適用条件が満たされるたびに、レコードはデータベースに送られます。あるレコードでエラーが起きた場合には、エラー テーブルからそのレコードの順序番号を探せばレコードを特定できます。

タスクが完了すると、すべてのロックは解除され、すべてのマクロは削除され、さらに、エラー テーブルが空であればこれも削除されます。IMPORTタスクの結果に関する統計がレポートされます。

アクセス ロギングは重大な性能上の不利益をもたらす恐れがあります。テーブルの更新をすべて記録した場合には、それぞれの操作に関してログ エントリが作成されます。そのため、アクセス ログ テーブルの基本索引が行ハッシュの競合を発生させる可能性があります。