10 Parquetイベント・ハンドラの使用
Parquetイベント・ハンドラを使用して、ファイル・ライター・ハンドラによって生成されたファイルをHDFSにロードする方法について学習します。
「ファイル・ライター・ハンドラの使用」を参照してください。
10.1 概要
Parquetイベント・ハンドラを使用すると、Parquet形式のデータ・ファイルを生成できます。Parquetファイルはローカル・ファイル・システムまたはHDFSに直接書き込むことができます。Parquetは、データ取得時間とビッグ・データ分析のパフォーマンスが大幅に向上する列データ形式です。https://parquet.apache.org/を参照してください。
親トピック: Parquetイベント・ハンドラの使用
10.2 機能の詳細
10.2.1 HDFSに書き込むParquetイベント・ハンドラの構成
Apache Parquetフレームワークは、HDFSへの直接書込みをサポートします。Parquetイベント・ハンドラはParquetファイルを直接HDFSに書き込むことができます。次の追加の構成ステップが必要です。
Parquetイベント・ハンドラの依存性と考慮事項は、HDFSハンドラと同じです。「HDFSのその他の考慮事項」を参照してください。
writeToHDFS
プロパティをtrue
に設定します。
gg.eventhandler.parquet.writeToHDFS=true
gg.classpath
にHDFSクライアント・ライブラリが含まれていることを確認します。
HDFS core-site.xml
ファイルを含むディレクトリがgg.classpath
にあることを確認します。これは、core-site.xml
ファイルを実行時に読み取ることができ、HDFSへの接続情報を解決できるようにしています。たとえば:
gg.classpath=/{HDFS_install_directory}/etc/hadoop
HDFSクラスタ上でKerberos認証が有効化されている場合は、パスワードを実行時に解決できるように、Kerberosプリンシパルとkeytab
ファイルの場所を構成する必要があります。
gg.eventHandler.name.kerberosPrincipal=principal
gg.eventHandler.name.kerberosKeytabFile=path_to_the_keytab_file
親トピック: 機能の詳細
10.2.2 アップストリーム・データ形式について
Parquetイベント・ハンドラは、ファイル・ライター・ハンドラによって生成されたAvroオブジェクト・コンテナ・ファイル(OCF)のみを変換できます。Parquetイベント・ハンドラは他の形式をParquetデータ・ファイルに変換できません。ファイル・ライター・ハンドラの形式は、avro_row_ocf
またはavro_op_ocf
である必要があります。「ファイル・ライター・ハンドラの使用」を参照してください。
親トピック: 機能の詳細
10.2.3 テンプレート文字列の使用
テンプレート文字列には、実行時に動的に解決されるリテラルとキーワードの組合せを含めることができます。Parquetイベント・ハンドラは、テンプレート文字列を多用して、HDFSディレクトリ名、データ・ファイル名およびHDFSバケット名を生成します。これにより、データ・ファイルおよびデータ・ファイルの名前を書き込む場所を柔軟に選択できます。
サポートされているテンプレート文字列
キーワード | 説明 |
---|---|
${fullyQualifiedTableName} |
ピリオド( |
${catalogName} |
個々のソース・カタログ名。たとえば、 |
${schemaName} |
個々のソース・スキーマ名。たとえば、 |
${tableName} |
個々のソース表名。たとえば、 |
${groupName} |
Replicatプロセスの名前(調整された適用を使用する場合は、スレッド番号を含む)。 |
${emptyString} |
空の文字列になります。たとえば、 |
${operationCount} |
データ・ファイル内の操作の合計数。名前変更か、イベント・ハンドラで使用する必要があります。それ以外の場合、何もまだ書き込まれていないため、ゼロ( |
${insertCount} |
データ・ファイル内の挿入操作の合計数。名前変更か、イベント・ハンドラで使用する必要があります。それ以外の場合、何もまだ書き込まれていないため、ゼロ( |
${updateCount} |
データ・ファイル内の更新操作の合計数。名前変更か、イベント・ハンドラで使用する必要があります。それ以外の場合、何もまだ書き込まれていないため、ゼロ( |
${deleteCount} |
データ・ファイル内の削除操作の合計数。名前変更か、イベント・ハンドラで使用する必要があります。それ以外の場合、何もまだ書き込まれていないため、ゼロ( |
${truncateCount} |
データ・ファイル内の切捨て操作の合計数。名前変更か、イベント・ハンドラで使用する必要があります。それ以外の場合、何もまだ書き込まれていないため、ゼロ( |
${currentTimestamp} |
現在のタイムスタンプ。日時のデフォルトの出力形式は
この形式は、Javaの |
${toUpperCase[]} |
角カッコ内のコンテンツを大文字に変換します。たとえば、 |
${toLowerCase[]} |
角カッコ内のコンテンツを小文字に変換します。たとえば、 |
テンプレート文字列の構成では、キーワードおよび静的文字列の組合せを使用して、実行時にパスとデータ・ファイル名を構成できます。
親トピック: 機能の詳細
10.3 Parquetイベント・ハンドラの構成
プロパティ・ファイルを使用して、Parquetイベント・ハンドラの操作を構成します。これらのプロパティは、Javaアダプタ・プロパティ・ファイルにあります(Replicatプロパティ・ファイルにはありません)。
Parquetイベント・ハンドラは、ファイル・ライター・ハンドラと組み合せてのみ機能します。
Parquetイベント・ハンドラの選択を有効にするには、まずgg.eventhandler.name.type=parquet
およびその他のParquetイベント・プロパティを次のように指定してハンドラ・タイプを構成する必要があります。
表10-1 Parquetイベント・ハンドラの構成プロパティ
プロパティ | 必須/オプション | 有効な値 | デフォルト | 説明 |
---|---|---|---|---|
|
必須 |
|
なし |
使用するParquetイベント・ハンドラを選択します。 |
|
オプション |
|
|
ローカル・ファイル・システムに書き込むには、 |
|
必須 |
生成されたParquetファイルを書き込むパスを動的に生成するために使用される、解決可能なキーワードと定数を含む文字列。 |
なし |
定数とともにインタレースされるキーワードを使用して、一意のパス名を実行時に動的に生成します。パス名は、通常、 |
|
オプション |
実行時にParquetファイル名を動的に生成するために使用される、解決可能なキーワードと定数を含む文字列 |
なし |
Parquetファイル名を設定します。設定しない場合、アップストリームのファイル名が使用されます。 |
|
オプション |
|
|
生成されたParquetファイルの圧縮コーデックを設定します。 |
|
オプション |
|
|
ファイナライズ・アクションでのParquetイベント・ハンドラの動作を示します。 |
|
オプション |
|
Parquetのデフォルト。 |
Parquetディクショナリ・エンコーディングを有効にするには、 |
|
オプション |
|
Parquetのデフォルト。 |
Parquet検証を有効にするには、 |
|
オプション |
整数 |
Parquetのデフォルト。 |
Parquetディクショナリのページ・サイズを設定します。 |
|
オプション |
整数 |
Parquetのデフォルト。 |
Parquet埋込みサイズを設定します。 |
|
オプション |
整数 |
Parquetのデフォルト。 |
Parquetページ・サイズを設定します。 |
|
オプション |
整数 |
Parquetのデフォルト。 |
Parquet行グループ・サイズを設定します。 |
|
オプション |
Kerberosプリンシパル名。 |
なし |
HDFSに直接書き込み、Kerberos認証が有効になっている場合は、Kerberosプリンシパルに設定します。 |
|
オプション |
Kerberos |
Parquetのデフォルト。 |
HDFSに直接書込み、HDFS Kerberos認証が有効になっている場合は、Kerberos |
|
オプション |
子イベント・ハンドラを相互参照する一意の文字列識別子。 |
イベント・ハンドラは構成されない。 |
ファイル・ロール・イベントで呼び出されるイベント・ハンドラ。イベント・ハンドラは、S3へのファイルのロード、ParquetまたはORC形式への変換、HDFSへのファイルのロードなどのファイル・ロール・イベントのアクションを実行できます。 |
gg.eventhandler.name.writerVersion |
オプション | v1|v2 |
Parquetバージョン1.11.0を介して起動されるParquetライブラリのデフォルトは、v1 です。
|
Parquetライターのバージョンを設定する機能を許可します。 |
親トピック: Parquetイベント・ハンドラの使用