17.10 - 再始動ログ表に必要な空き領域の算出 - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

Teradata MultiLoadの再始動ログ表の所要空き領域は、ジョブの仕様によって大きく左右されます。いくつかの挿入操作はすべてのTeradata MultiLoadジョブで実行されます。その他の挿入操作はジョブに依存します。

Teradata MultiLoadによって自動的に作成される、Teradata MultiLoad再始動ログ表の表定義の一例を次に示します。

CREATE TABLE SFD.samplelog ,FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL
     (
      LogType INTEGER,
      Seq INTEGER,
      ReqRC INTEGER,
      ReqType INTEGER,
      ReqLen INTEGER,
      ReqMsg VARCHAR(255),
      SysInfo VARBYTE(255),
      MiscInt1 INTEGER,
      MiscInt2 INTEGER,
      MiscInt3 INTEGER,
      MiscInt4 INTEGER,
      MiscInt5 INTEGER,
      MiscInt6 INTEGER,
      MiscInt7 INTEGER,
      MiscInt8 INTEGER,
      MLoadSeq INTEGER DEFAULT 0 ,
      MLoadImpSeq INTEGER,
      MLoadSrcSeq INTEGER,
      MLoadCkpt VARBYTE(255),
      RunDate DATE DEFAULT DATE ,
      RunTime FLOAT DEFAULT TIME )
      UNIQUE PRIMARY INDEX( LogType ,Seq ,MLoadSeq );

この表定義から分かるとおり、各行のサイズはVARCHAR長によって異なり、その範囲は0から255です。

  • VARCHARの長さが0の場合、各行のサイズは82バイトです。
  • VARCHAR長が255の場合、各行のサイズは847バイトです。

この表に対して実行される可能性のある挿入は次のとおりです。

  • 7つの強制的な挿入
    • 3つの挿入(DMLフェーズ、取得フェーズ、アプリケーション フェーズに入るごとに1つずつ)
    • 1つの挿入(Teradata MultiLoadタスクの終了を示す)
    • 3つの挿入(それぞれETエラー表、UTエラー表、およびWT作業表の削除を示す)
  • Teradata SQL文(CREATE TABLE、DROP TABLEなど)が処理されるたびに1つの挿入
  • 入力データ チェックポイントごとに1つの挿入

このガイドラインに基づいて見積もると、例に挙げた再始動ログ テーブルに必要な空き領域は260KBになります。

  • 574バイト: 必須エントリ: 82バイト * 7 = 574バイト
  • 2,541バイト: Teradata SQL要求 – 最大値847バイトに平均値3を乗算。847 * 3 = 2,541バイト
  • 127,050バイト: チェックポイント - 1,500万行のTeradata MultiLoadジョブで100,000行ごとチェックポイントを設定し、平均で150のチェックポイントを作成する場合。847バイト* 150 = 127,050バイト
  • 130,165バイト: フォールバック表 - 再始動ログ表自体のサイズを2倍にする。574バイト + 2,541バイト + 127,050バイト = 130,165バイト
  • 260,330バイト: 再始動ログ表所要空き領域の見積もり合計

これらの計算から見積もると、例に挙げたジョブの再始動ログ表の場合、空きメモリ領域量は260Kバイトで恐らく十分です。同様の計算方法で、実際のTeradata MultiLoadジョブで必要な空き領域を見積もってください。