JSON Ingest Remapping機能により、お客様は深くネストされたJSONフィールドを抽出し、Real-Timeパイプラインへの取り込み時にトップレベルに昇格させることができます。
これにより、これらのフィールドは、上流でのフラット化、Lambda関数、またはカスタムETLを必要とせずに、トリガー、パーソナライゼーション、Reactor、Plazmaを含むリアルタイムワークフローで直接アクセス可能になります。
次の場合にJSON Ingest Remappingを使用します。
Real-Time取り込みパイプラインにネストされたJSONイベントが送られてくる場合
セグメンテーション、トリガー、またはパーソナライゼーションルールで内部フィールド(例: user.id、order.details.totalなど)を使用したい場合
データを上流でフラット化したり、ソースシステムを変更したりするコストと複雑さを回避したい場合
以下を指定するマッピングルールを定義します。
ソースフィールドパス(ネストされたJSON内)
抽出された値を保持する新しいトップレベルフィールドの名前
これらのルールは、Real-Time APIを介して設定され、database.table単位で適用されます。
適用されると、テーブルに一致し、ネストされたパスを含む受信イベントには、取り込み時にトップレベルプロパティとしてリマップされたフィールドが注入されます。
- アカウントの有効化(1回のみ)
この機能はフラグの背後でゲートされています。カスタマーサクセスマネージャーまたはTreasure Dataサポートに連絡して、アカウントで有効にしてもらってください。
- APIを介してマッピングを設定
PUT /event_property_remappingsエンドポイントを使用します:
- リクエストの例:
curl -X PUT 'https://realtime-api.treasuredata.com/event_property_remappings' \
--header 'Authorization: TD1 <your_apikey>' \
--header 'Content-Type: application/json' \
--data '
{
"event_property_remappings": [
{
"database": "demo",
"table": "customers",
"source_property_path": "order.details.total",
"target_property": "order_total"
}
]
}'DigdagまたはWorkflowを介してこれを自動化することもできます。
- イベントの取り込み
[Ingest API]または[Personalization API]を介して通常どおりイベントを取り込みます。リマップされたフィールドは、トップレベルに自動的に注入されます。
- 入力の例:
{
"order": {
"details": {
"total": 149.99
}
}
}- リマッピング後の結果:
{
"order": {
"details": {
"total": 149.99
}
},
"order_total": 149.99
}