目次

Search

  1. はじめに
  2. Informatica Data Engineering Integrationについて
  3. マッピング
  4. マッピングの最適化
  5. ソース
  6. ターゲット
  7. トランスフォーメーション
  8. Pythonトランスフォーメーション
  9. データプレビュー
  10. クラスタワークフロー
  11. プロファイル
  12. 監視
  13. 階層データ処理
  14. 階層データ処理設定
  15. スキーマが変更された階層データの処理
  16. インテリジェント構造モデル
  17. ブロックチェーン
  18. ステートフルコンピューティング
  19. 付録 A: 接続リファレンス
  20. 付録 B: データ型リファレンス
  21. 付録 C: 関数リファレンス

Blazeエンジン上のHiveターゲットのルールとガイドライン

Blazeエンジン上のHiveターゲットのルールとガイドライン

Blazeエンジンで実行するInformaticaのマッピングにHiveターゲットを含めることができます。
Blazeエンジンで実行するマッピングにHiveターゲットを設定する場合は、次のルールとガイドラインを考慮します。
  • Blazeエンジンで実行されるマッピングは、ソート済みターゲットへの読み取りと書き込みを行えます。
  • Blazeエンジンは、ロックが有効化されたHiveテーブルをサポートします。
  • Blazeエンジンは、Hiveターゲットテーブルを作成または置き換えることができます。
  • 書き込みトランスフォーメーションでHiveターゲットの行順序を保持するように設定した場合、Blazeエンジンは行順序を保持しません。
  • Blazeエンジンで実行するマッピングには、ターゲットとしてパーティション化およびバケット化されたHiveテーブルを設定できます。ただし、バケット化されたテーブルにデータを付加した場合、Blazeエンジンはバケット化されたターゲットのデータを上書きします。
  • マッピングでHiveパーティション化ターゲットへの書き込みを行う場合、マッピングを実行する偽装ユーザーはターゲットテーブルに対して
    ALL
    特権を持っている必要があります。Blazeエンジンが「MSCK REPAIR TABLE」コマンドを使用してHiveパーティション化ターゲットに書き込み行う場合、このコマンドを実行するには
    ALL
    特権が必要です。
  • Hive ACIDテーブルに書き込むには、Hiveターゲットに接続されたアップデートストラテジトランスフォーメーションがマッピングに含まれている必要があります。アップデートストラテジの式は、挿入のために各行にフラグを設定する必要があります。
  • アップデートストラテジのプロパティを更新または削除することはできません。

HiveテーブルとしてのRCFile

Blazeエンジンは、HiveテーブルとしてRCFileへの読み書きを実行できます。ただし、BlazeエンジンがサポートするのはColumnarSerDe SerDeのみです。Hortonworksでは、RCFileのデフォルトのSerDeはLazyBinaryColumnarSerDeです。RCFileテーブルの読み書きを行うには、SerDeを
org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe
として指定することで、このテーブルを作成する必要があります。
以下に例を示します。
CREATE TABLE TEST_RCFIle (id int, name string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe' STORED AS RCFILE;
デフォルトのRCFile SerDeをAmbariまたはClouderaマネージャから設定することもできます。
hive.default.rcfile.serde
プロパティを
org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe
に設定します。

圧縮されたHiveテーブル

Blazeエンジンは、圧縮されたHiveテーブルへの読み書きを実行できます。ただし、圧縮されたHiveテーブルからの読み取りと、圧縮形式のHiveテーブルへの書き込みのためには、
TBLPROPERTIES
句を次のように設定する必要があります。
  • テーブルの作成時に、テーブルプロパティを次のように設定します。
    TBLPROPERTIES ('property_name'='property_value')
  • テーブルがすでにある場合、次のテーブルプロパティを設定するようにテーブルを変更します。
    ALTER TABLE table_name SET TBLPROPERTIES ('property_name' = 'property_value');
プロパティの名前と値は大文字と小文字が区別されません。ファイル形式に応じて、テーブルプロパティは異なる値を取得します。
次の表に、ファイル形式別のプロパティの名前と値の一覧を示します。
ファイル形式
テーブルプロパティの名前
テーブルプロパティの値
Avro
avro.compression
BZIP2、deflate、Snappy
ORC
orc.compress
Snappy、ZLIB
Parquet
parquet.compression
GZIP、Snappy
RCFile
rcfile.compression
Snappy、ZLIB
シーケンス
sequencefile.compression
BZIP2、GZIP、LZ4、Snappy
テキスト
text.compression
BZIP2、GZIP、LZ4、Snappy
Blazeエンジンは、ORC形式として格納されたHiveターゲットへの書き込み時に、デフォルトのZLIB圧縮形式でデータを書き込みません。圧縮形式でデータを書き込むには、このテーブルを変更し、TBLPROPERTIES句がORCファイル形式にZLIBまたはSnappyを使用するように、この句を設定します。
次のテキストに、テーブルを作成し、テーブルを変更するためのコマンド例を示します。
  • テーブルの作成は次のとおりです。
    create table CBO_3T_JOINS_CUSTOMER_HIVE_SEQ_GZIP (C_CUSTKEY DECIMAL(38,0), C_NAME STRING,C_ADDRESS STRING, C_PHONE STRING,C_ACCTBAL DECIMAL(10,2), C_MKTSEGMENT VARCHAR(10),C_COMMENT vARCHAR(117)) partitioned by (C_NATIONKEY DECIMAL(38,0)) TBLPROPERTIES ('sequencefile.compression'='gzip') stored as SEQUENCEFILE;
  • テーブルの変更は次のとおりです。
    ALTER TABLE table_name SET TBLPROPERTIES (avro.compression'='BZIP2');