70 lines
5.5 KiB
SQL
70 lines
5.5 KiB
SQL
{{ config(
|
|
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
|
|
unique_key = '_airbyte_ab_id',
|
|
schema = "_airbyte_unibag",
|
|
tags = [ "top-level-intermediate" ]
|
|
) }}
|
|
-- SQL model to parse JSON blob stored in a single column and extract into separated field columns as described by the JSON Schema
|
|
-- depends_on: {{ source('unibag', '_airbyte_raw_orders') }}
|
|
select
|
|
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
|
|
{{ json_extract_scalar('_airbyte_data', ['code'], ['code']) }} as code,
|
|
{{ json_extract_scalar('_airbyte_data', ['date'], ['date']) }} as {{ adapter.quote('date') }},
|
|
{{ json_extract_scalar('_airbyte_data', ['hour'], ['hour']) }} as {{ adapter.quote('hour') }},
|
|
{{ json_extract_scalar('_airbyte_data', ['note'], ['note']) }} as note,
|
|
{{ json_extract_array('_airbyte_data', ['skus'], ['skus']) }} as skus,
|
|
{{ json_extract_array('_airbyte_data', ['tags'], ['tags']) }} as tags,
|
|
{{ json_extract_scalar('_airbyte_data', ['user'], ['user']) }} as {{ adapter.quote('user') }},
|
|
{{ json_extract('table_alias', '_airbyte_data', ['price'], ['price']) }} as price,
|
|
{{ json_extract_scalar('_airbyte_data', ['banned'], ['banned']) }} as banned,
|
|
{{ json_extract_scalar('_airbyte_data', ['reason'], ['reason']) }} as reason,
|
|
{{ json_extract_scalar('_airbyte_data', ['source'], ['source']) }} as {{ adapter.quote('source') }},
|
|
{{ json_extract_scalar('_airbyte_data', ['status'], ['status']) }} as status,
|
|
{{ json_extract_scalar('_airbyte_data', ['update'], ['update']) }} as {{ adapter.quote('update') }},
|
|
{{ json_extract('table_alias', '_airbyte_data', ['payment'], ['payment']) }} as payment,
|
|
{{ json_extract_scalar('_airbyte_data', ['remarks'], ['remarks']) }} as remarks,
|
|
{{ json_extract_scalar('_airbyte_data', ['customer'], ['customer']) }} as customer,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['delivery'], ['delivery']) }} as delivery,
|
|
{{ json_extract_scalar('_airbyte_data', ['pickupAt'], ['pickupAt']) }} as pickupat,
|
|
{{ json_extract_array('_airbyte_data', ['products'], ['products']) }} as products,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['supplier'], ['supplier']) }} as supplier,
|
|
{{ json_extract_scalar('_airbyte_data', ['approveAt'], ['approveAt']) }} as approveat,
|
|
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['inventory'], ['inventory']) }} as inventory,
|
|
{{ json_extract_scalar('_airbyte_data', ['isDeleted'], ['isDeleted']) }} as isdeleted,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['promotion'], ['promotion']) }} as promotion,
|
|
{{ json_extract_scalar('_airbyte_data', ['requestId'], ['requestId']) }} as requestid,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['sendEmail'], ['sendEmail']) }} as sendemail,
|
|
{{ json_extract_scalar('_airbyte_data', ['totalItem'], ['totalItem']) }} as totalitem,
|
|
{{ json_extract_scalar('_airbyte_data', ['updatedAt'], ['updatedAt']) }} as updatedat,
|
|
{{ json_extract('table_alias', '_airbyte_data', ['userAgent'], ['userAgent']) }} as useragent,
|
|
{{ json_extract_scalar('_airbyte_data', ['wholesale'], ['wholesale']) }} as wholesale,
|
|
{{ json_extract_scalar('_airbyte_data', ['approvedAt'], ['approvedAt']) }} as approvedat,
|
|
{{ json_extract_scalar('_airbyte_data', ['cashbackAt'], ['cashbackAt']) }} as cashbackat,
|
|
{{ json_extract_scalar('_airbyte_data', ['codeOsiris'], ['codeOsiris']) }} as codeosiris,
|
|
{{ json_extract_scalar('_airbyte_data', ['isPreorder'], ['isPreorder']) }} as ispreorder,
|
|
{{ json_extract_scalar('_airbyte_data', ['membership'], ['membership']) }} as membership,
|
|
{{ json_extract_scalar('_airbyte_data', ['rejectedAt'], ['rejectedAt']) }} as rejectedat,
|
|
{{ json_extract_scalar('_airbyte_data', ['deliveredAt'], ['deliveredAt']) }} as deliveredat,
|
|
{{ json_extract_scalar('_airbyte_data', ['deliveringAt'], ['deliveringAt']) }} as deliveringat,
|
|
{{ json_extract_scalar('_airbyte_data', ['deliveryCode'], ['deliveryCode']) }} as deliverycode,
|
|
{{ json_extract_scalar('_airbyte_data', ['searchString'], ['searchString']) }} as searchstring,
|
|
{{ json_extract_scalar('_airbyte_data', ['staffApprove'], ['staffApprove']) }} as staffapprove,
|
|
{{ json_extract_scalar('_airbyte_data', ['trackingCode'], ['trackingCode']) }} as trackingcode,
|
|
{{ json_extract_scalar('_airbyte_data', ['processStatus'], ['processStatus']) }} as processstatus,
|
|
{{ json_extract_scalar('_airbyte_data', ['hookTimeLastAt'], ['hookTimeLastAt']) }} as hooktimelastat,
|
|
{{ json_extract_scalar('_airbyte_data', ['trackingCodeURL'], ['trackingCodeURL']) }} as trackingcodeurl,
|
|
{{ json_extract_scalar('_airbyte_data', ['approvePaymentAt'], ['approvePaymentAt']) }} as approvepaymentat,
|
|
{{ json_extract_scalar('_airbyte_data', ['isChangeDelivery'], ['isChangeDelivery']) }} as ischangedelivery,
|
|
{{ json_extract_scalar('_airbyte_data', ['trackingOrderCode'], ['trackingOrderCode']) }} as trackingordercode,
|
|
{{ json_extract_scalar('_airbyte_data', ['estimateCashbackAt'], ['estimateCashbackAt']) }} as estimatecashbackat,
|
|
{{ json_extract_scalar('_airbyte_data', ['isWaitingCancelled'], ['isWaitingCancelled']) }} as iswaitingcancelled,
|
|
{{ json_extract_scalar('_airbyte_data', ['fromNewActiveSeller'], ['fromNewActiveSeller']) }} as fromnewactiveseller,
|
|
_airbyte_ab_id,
|
|
_airbyte_emitted_at,
|
|
{{ current_timestamp() }} as _airbyte_normalized_at
|
|
from {{ source('unibag', '_airbyte_raw_orders') }} as table_alias
|
|
-- orders
|
|
where 1 = 1
|
|
|