ORC マッピング
取り込みソース ファイルが ORC 形式の場合は、ORC マッピングを使用して、受信データをテーブル内の列にマップします。
マッピング リスト内の各要素は、特定の列のマッピングを定義します。 これらの要素は、 column
、 datatype
、 properties
の 3 つのプロパティから構成されます。 詳細については、 データ マッピングの概要を参照してください。
各 ORC マッピング要素には、次のいずれかの省略可能なプロパティが含まれている必要があります。
プロパティ | タイプ | 説明 |
---|---|---|
フィールド | string |
ORC レコード内のフィールドの名前。 |
Path | string |
値が $ で始まる場合は、テーブル内の列の内容となる ORC ドキュメント内のフィールドへのパスとして解釈されます。 ORC レコード全体を示すパスが $ 。 値が $ で始まらない場合は、定数値として解釈されます。 特殊文字を含むパスは、['Property Name'] としてエスケープする必要があります。 詳しくは、「JSONPath 構文」を参照してください。 |
ConstValue | string |
ORC ファイル内の値ではなく、列に使用する定数値。 |
変換 | string |
マッピング変換を使用してコンテンツに適用する必要がある変換。 |
Note
フィールドとパスは相互に排他的です。
次の代替手段は同等です。
[
{"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
{"Column": "event_name", "Properties": {"Field": "EventName"}}
]
重要
キューに入ったインジェストの場合:
- マッピングで参照されているテーブルがデータベースに存在しない場合は、すべての列に有効なデータ型が指定されているため、自動的に作成されます。
- マッピングで参照されている列がテーブルに存在しない場合、列に対して有効なデータ型が指定されている場合、その列に対して最初にデータが取り込まれると、その列が最後の列としてテーブルに自動的に追加されます。 マッピングに新しい列を追加するには、 .alter インジェスト マッピング コマンドを使用します。
- データは、インジェスト プロパティを使用してバッチ処理されます。 異なる ConstValue 値など、使用されるインジェスト マッピング プロパティが異なるほど、インジェストの断片化が増え、パフォーマンスが低下する可能性があります。
例
[
{"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
{"Column": "event_name", "Properties": {"Path": "$.Event.Name"}},
{"Column": "event_type", "Properties": {"Path": "$.Event.Type"}},
{"Column": "event_time", "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
{"Column": "ingestion_time", "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
{"Column": "full_record", "Properties": {"Path": "$"}}
]
上記のマッピングは、 .ingest
管理コマンドの一部として提供されるときに JSON 文字列としてシリアル化されます。
.ingest into Table123 (@"source1", @"source2")
with
(
format = "orc",
ingestionMapping =
```
[
{"Column": "column_a", "Properties": {"Path": "$.Field1"}},
{"Column": "column_b", "Properties": {"Path": "$.[\'Field name with space\']"}}
]
```
)
事前に作成されたマッピング
マッピングが作成されたら.ingest
管理コマンドで名前でマッピングを参照します。
.ingest into Table123 (@"source1", @"source2")
with
(
format="orc",
ingestionMappingReference = "ORC_Mapping"
)
ID のマッピング
マッピング スキーマを定義せずにインジェスト中に ORC マッピングを使用します ( 識別マッピングを参照)。
.ingest into Table123 (@"source1", @"source2")
with
(
format="orc"
)