サポートされているHDFSファイル形式は、Json、AvroおよびParquetです。形式を指定するには、データ・ストアの「記憶域」タブで表示される記憶域形式の値を設定します。HDFSのすべてのファイルについて、記憶域タイプ(Json、Avro、Parquet)がデータ・ストアで定義されています。JSON、AvroおよびParquetの各形式には、arrayやObjectなどの複合データ型があります。リバース・エンジニアリング・フェーズで、このような型のスキーマ定義は、Avroに変換されて複合データ型の属性のデータ形式列に格納されます。この情報は、マッピングでそのデータをフラット化する際に使用されます。
JSON、AvroおよびParquetの場合、各タイプで、スキーマ・ファイルの場所を入力する必要があります。デリミタ付きの場合、レコードおよびフィールド・セパレータの情報、ヘッダー行数を指定する必要があります。AvroファイルをHiveにロードする場合は、Avroスキーマ・ファイル(.avsc)をHDFSファイルと同じHDFSの場所にコピーする必要があります。
表9-1 HDFSファイル形式
ファイル形式 | リバース・エンジニアリング | 複合型のサポート | Hiveへのロード | Sparkへのロード | Sparkからの書込み |
---|---|---|---|---|---|
Avro |
可(スキーマは必須) |
あり |
可(スキーマは必須) |
可 |
可 |
デリミタ付き |
不可 |
なし |
可 |
可 |
可 |
JSON |
可(スキーマは必須) |
あり |
可 |
可 |
可 |
Parquet |
可(スキーマは必須) |
あり |
可 |
可 |
可 |
ファイル形式ごとに個別のKMは必要ありません。ターゲットごとに1つまたは2つのKM (標準LKMと、該当する場合は直接ロードLKM)を作成できます。ファイルの形式は、デリミタ付きまたは固定のいずれかです。新しいLKM HDFS File to Hiveでは、HiveへのHDFSファイルのみのロードがサポートされ、ファイルの形式は複合データを伴うJSON、Avro、Parquet、デリミタ付きなどのいずれかです。
表9-2 複合型
Avro | Json | Hive | Parquet |
---|---|---|---|
Record |
Object |
Struct |
Record |
enum |
該当なし |
該当なし |
enum |
array |
array |
array |
array |
map |
該当なし |
map |
map |
union |
該当なし |
union |
union |
fixed |
該当なし |
該当なし |
fixed |