Compare commits

...

10 Commits

Author SHA1 Message Date
Ubuntu 4b86cd5551 add give_gift data 2022-06-01 17:30:33 +07:00
Ubuntu c5c4d4cfcc add sync b rands 2022-05-27 21:47:46 +07:00
Ubuntu 25bf52e4c0 update 2022-05-26 21:44:20 +07:00
Ubuntu a27c99cf15 update 2022-05-12 05:53:59 +07:00
Ubuntu f6af10b64d update 2022-05-11 16:47:34 +07:00
Ubuntu c92bdc7cb4 update 2022-05-11 11:54:13 +07:00
Ubuntu 9b3f73cec2 update 2022-05-11 11:23:31 +07:00
Ubuntu a2286f7773 update 2022-05-11 11:21:03 +07:00
Ubuntu eef556e75c update 2022-05-11 09:44:48 +07:00
Ubuntu e305bb2baa update 2022-05-10 21:30:53 +07:00
31 changed files with 667 additions and 7 deletions

View File

@ -6,5 +6,5 @@ push:
run:
dbt deps --profiles-dir=. --project-dir=.
#dbt run --profiles-dir=. --project-dir=. --full-refresh
dbt run --profiles-dir=. --project-dir=. --full-refresh --select tracking_product_shares
dbt run --profiles-dir=. --project-dir=. --full-refresh --select user_give_gift

View File

@ -53,6 +53,10 @@ vars:
admin_tags_ab2: unibag._airbyte_raw_admin_tags
admin_tags_ab3: unibag._airbyte_raw_admin_tags
admin_tags: unibag._airbyte_raw_admin_tags
brands_ab1: unibag._airbyte_raw_brands
brands_ab2: unibag._airbyte_raw_brands
brands_ab3: unibag._airbyte_raw_brands
brands: unibag._airbyte_raw_brands
cash_flows_ab1: unibag._airbyte_raw_cash_flows
cash_flows_ab2: unibag._airbyte_raw_cash_flows
cash_flows_ab3: unibag._airbyte_raw_cash_flows
@ -77,6 +81,10 @@ vars:
events_ab2: unibag._airbyte_raw_events
events_ab3: unibag._airbyte_raw_events
events: unibag._airbyte_raw_events
give_gifts_ab1: unibag._airbyte_raw_give_gifts
give_gifts_ab2: unibag._airbyte_raw_give_gifts
give_gifts_ab3: unibag._airbyte_raw_give_gifts
give_gifts: unibag._airbyte_raw_give_gifts
inventories_ab1: unibag._airbyte_raw_inventories
inventories_ab2: unibag._airbyte_raw_inventories
inventories_ab3: unibag._airbyte_raw_inventories
@ -141,6 +149,10 @@ vars:
referrals_ab2: unibag._airbyte_raw_referrals
referrals_ab3: unibag._airbyte_raw_referrals
referrals: unibag._airbyte_raw_referrals
session_deliveries_ab1: unibag._airbyte_raw_session_deliveries
session_deliveries_ab2: unibag._airbyte_raw_session_deliveries
session_deliveries_ab3: unibag._airbyte_raw_session_deliveries
session_deliveries: unibag._airbyte_raw_session_deliveries
social_post_views_ab1: unibag._airbyte_raw_social_post_views
social_post_views_ab2: unibag._airbyte_raw_social_post_views
social_post_views_ab3: unibag._airbyte_raw_social_post_views
@ -161,6 +173,10 @@ vars:
team_bonus_ab2: unibag._airbyte_raw_team_bonus
team_bonus_ab3: unibag._airbyte_raw_team_bonus
team_bonus: unibag._airbyte_raw_team_bonus
team_histories_ab1: unibag._airbyte_raw_team_histories
team_histories_ab2: unibag._airbyte_raw_team_histories
team_histories_ab3: unibag._airbyte_raw_team_histories
team_histories: unibag._airbyte_raw_team_histories
team_members_ab1: unibag._airbyte_raw_team_members
team_members_ab2: unibag._airbyte_raw_team_members
team_members_ab3: unibag._airbyte_raw_team_members
@ -169,6 +185,14 @@ vars:
teams_ab2: unibag._airbyte_raw_teams
teams_ab3: unibag._airbyte_raw_teams
teams: unibag._airbyte_raw_teams
user_courses_ab1: unibag._airbyte_raw_user_courses
user_courses_ab2: unibag._airbyte_raw_user_courses
user_courses_ab3: unibag._airbyte_raw_user_courses
user_courses: unibag._airbyte_raw_user_courses
user_give_gift_ab1: unibag._airbyte_raw_user_give_gift
user_give_gift_ab2: unibag._airbyte_raw_user_give_gift
user_give_gift_ab3: unibag._airbyte_raw_user_give_gift
user_give_gift: unibag._airbyte_raw_user_give_gift
user_identifications_ab1: unibag._airbyte_raw_user_identifications
user_identifications_ab2: unibag._airbyte_raw_user_identifications
user_identifications_ab3: unibag._airbyte_raw_user_identifications

File diff suppressed because one or more lines are too long

View File

@ -33,7 +33,7 @@
{%- endmacro -%}
{%- macro sqlserver__type_json() -%}
VARCHAR(max)
NVARCHAR(max)
{%- endmacro -%}
{% macro clickhouse__type_json() %}
@ -52,7 +52,7 @@
{%- endmacro -%}
{% macro sqlserver__type_string() %}
VARCHAR(max)
NVARCHAR(max)
{%- endmacro -%}
{%- macro clickhouse__type_string() -%}
@ -154,7 +154,7 @@
{%- macro sqlserver__type_timestamp_with_timezone() -%}
{#-- in TSQL timestamp is really datetime or datetime2 --#}
{#-- https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-ver15#DateandTimeDataTypes --#}
datetime
datetime2
{%- endmacro -%}
{% macro clickhouse__type_timestamp_with_timezone() %}

View File

@ -0,0 +1,28 @@
{{ 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_brands') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['desc'], ['desc']) }} as {{ adapter.quote('desc') }},
{{ json_extract_scalar('_airbyte_data', ['logo'], ['logo']) }} as logo,
{{ json_extract_scalar('_airbyte_data', ['name'], ['name']) }} as {{ adapter.quote('name') }},
{{ json_extract_scalar('_airbyte_data', ['slug'], ['slug']) }} as slug,
{{ json_extract_scalar('_airbyte_data', ['active'], ['active']) }} as active,
{{ json_extract_array('_airbyte_data', ['photos'], ['photos']) }} as photos,
{{ json_extract_scalar('_airbyte_data', ['country'], ['country']) }} as country,
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract_scalar('_airbyte_data', ['updatedAt'], ['updatedAt']) }} as updatedat,
{{ json_extract_scalar('_airbyte_data', ['searchString'], ['searchString']) }} as searchstring,
{{ json_extract_scalar('_airbyte_data', ['totalProduct'], ['totalProduct']) }} as totalproduct,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_brands') }} as table_alias
-- brands
where 1 = 1

View File

@ -0,0 +1,28 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('brands_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast({{ adapter.quote('desc') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('desc') }},
cast(logo as {{ dbt_utils.type_string() }}) as logo,
cast({{ adapter.quote('name') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('name') }},
cast(slug as {{ dbt_utils.type_string() }}) as slug,
{{ cast_to_boolean('active') }} as active,
photos,
cast(country as {{ dbt_utils.type_string() }}) as country,
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(updatedat as {{ dbt_utils.type_string() }}) as updatedat,
cast(searchstring as {{ dbt_utils.type_string() }}) as searchstring,
cast(totalproduct as {{ dbt_utils.type_float() }}) as totalproduct,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('brands_ab1') }}
-- brands
where 1 = 1

View File

@ -0,0 +1,28 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('brands_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
adapter.quote('desc'),
'logo',
adapter.quote('name'),
'slug',
boolean_to_string('active'),
array_to_string('photos'),
'country',
'createdat',
'updatedat',
'searchstring',
'totalproduct',
]) }} as _airbyte_brands_hashid,
tmp.*
from {{ ref('brands_ab2') }} tmp
-- brands
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ 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_give_gifts') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['title'], ['title']) }} as title,
{{ json_extract_scalar('_airbyte_data', ['status'], ['status']) }} as status,
{{ json_extract_scalar('_airbyte_data', ['content'], ['content']) }} as {{ adapter.quote('content') }},
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract_scalar('_airbyte_data', ['createdBy'], ['createdBy']) }} as createdby,
{{ json_extract_scalar('_airbyte_data', ['updatedAt'], ['updatedAt']) }} as updatedat,
{{ json_extract_scalar('_airbyte_data', ['searchString'], ['searchString']) }} as searchstring,
{{ json_extract_scalar('_airbyte_data', ['lastChangeUsersAt'], ['lastChangeUsersAt']) }} as lastchangeusersat,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_give_gifts') }} as table_alias
-- give_gifts
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('give_gifts_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast(title as {{ dbt_utils.type_string() }}) as title,
cast(status as {{ dbt_utils.type_string() }}) as status,
cast({{ adapter.quote('content') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('content') }},
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(createdby as {{ dbt_utils.type_string() }}) as createdby,
cast(updatedat as {{ dbt_utils.type_string() }}) as updatedat,
cast(searchstring as {{ dbt_utils.type_string() }}) as searchstring,
cast(lastchangeusersat as {{ dbt_utils.type_string() }}) as lastchangeusersat,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('give_gifts_ab1') }}
-- give_gifts
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('give_gifts_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
'title',
'status',
adapter.quote('content'),
'createdat',
'createdby',
'updatedat',
'searchstring',
'lastchangeusersat',
]) }} as _airbyte_give_gifts_hashid,
tmp.*
from {{ ref('give_gifts_ab2') }} tmp
-- give_gifts
where 1 = 1

View File

@ -0,0 +1,31 @@
{{ 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_session_deliveries') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['cart'], ['cart']) }} as cart,
{{ json_extract_scalar('_airbyte_data', ['note'], ['note']) }} as note,
{{ json_extract_scalar('_airbyte_data', ['title'], ['title']) }} as title,
{{ json_extract('table_alias', '_airbyte_data', ['request'], ['request']) }} as request,
{{ json_extract_scalar('_airbyte_data', ['service'], ['service']) }} as service,
{{ json_extract_scalar('_airbyte_data', ['currency'], ['currency']) }} as currency,
{{ json_extract('table_alias', '_airbyte_data', ['customer'], ['customer']) }} as customer,
{{ json_extract('table_alias', '_airbyte_data', ['delivery'], ['delivery']) }} as delivery,
{{ json_extract('table_alias', '_airbyte_data', ['location'], ['location']) }} as {{ adapter.quote('location') }},
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract('table_alias', '_airbyte_data', ['promotion'], ['promotion']) }} as promotion,
{{ json_extract_scalar('_airbyte_data', ['sessionOrder'], ['sessionOrder']) }} as sessionorder,
{{ json_extract_scalar('_airbyte_data', ['paymentMethod'], ['paymentMethod']) }} as paymentmethod,
{{ json_extract_scalar('_airbyte_data', ['estimateTimeDelivery'], ['estimateTimeDelivery']) }} as estimatetimedelivery,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_session_deliveries') }} as table_alias
-- session_deliveries
where 1 = 1

View File

@ -0,0 +1,31 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('session_deliveries_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast(cart as {{ dbt_utils.type_string() }}) as cart,
cast(note as {{ dbt_utils.type_string() }}) as note,
cast(title as {{ dbt_utils.type_string() }}) as title,
cast(request as {{ type_json() }}) as request,
cast(service as {{ dbt_utils.type_string() }}) as service,
cast(currency as {{ dbt_utils.type_string() }}) as currency,
cast(customer as {{ type_json() }}) as customer,
cast(delivery as {{ type_json() }}) as delivery,
cast({{ adapter.quote('location') }} as {{ type_json() }}) as {{ adapter.quote('location') }},
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(promotion as {{ type_json() }}) as promotion,
cast(sessionorder as {{ dbt_utils.type_string() }}) as sessionorder,
cast(paymentmethod as {{ dbt_utils.type_string() }}) as paymentmethod,
cast(estimatetimedelivery as {{ dbt_utils.type_string() }}) as estimatetimedelivery,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('session_deliveries_ab1') }}
-- session_deliveries
where 1 = 1

View File

@ -0,0 +1,31 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('session_deliveries_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
'cart',
'note',
'title',
object_to_string('request'),
'service',
'currency',
object_to_string('customer'),
object_to_string('delivery'),
object_to_string(adapter.quote('location')),
'createdat',
object_to_string('promotion'),
'sessionorder',
'paymentmethod',
'estimatetimedelivery',
]) }} as _airbyte_session_deliveries_hashid,
tmp.*
from {{ ref('session_deliveries_ab2') }} tmp
-- session_deliveries
where 1 = 1

View File

@ -0,0 +1,24 @@
{{ 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_team_histories') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['date'], ['date']) }} as {{ adapter.quote('date') }},
{{ json_extract_scalar('_airbyte_data', ['team'], ['team']) }} as team,
{{ json_extract_scalar('_airbyte_data', ['level'], ['level']) }} as {{ adapter.quote('level') }},
{{ json_extract_scalar('_airbyte_data', ['leader'], ['leader']) }} as leader,
{{ json_extract_scalar('_airbyte_data', ['status'], ['status']) }} as status,
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract_scalar('_airbyte_data', ['statistic'], ['statistic']) }} as statistic,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_team_histories') }} as table_alias
-- team_histories
where 1 = 1

View File

@ -0,0 +1,24 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('team_histories_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast({{ adapter.quote('date') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('date') }},
cast(team as {{ dbt_utils.type_string() }}) as team,
cast({{ adapter.quote('level') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('level') }},
cast(leader as {{ dbt_utils.type_string() }}) as leader,
cast(status as {{ dbt_utils.type_string() }}) as status,
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(statistic as {{ dbt_utils.type_string() }}) as statistic,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('team_histories_ab1') }}
-- team_histories
where 1 = 1

View File

@ -0,0 +1,24 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('team_histories_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
adapter.quote('date'),
'team',
adapter.quote('level'),
'leader',
'status',
'createdat',
'statistic',
]) }} as _airbyte_team_histories_hashid,
tmp.*
from {{ ref('team_histories_ab2') }} tmp
-- team_histories
where 1 = 1

View File

@ -0,0 +1,23 @@
{{ 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_user_courses') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['user'], ['user']) }} as {{ adapter.quote('user') }},
{{ json_extract_scalar('_airbyte_data', ['course'], ['course']) }} as course,
{{ json_extract_scalar('_airbyte_data', ['hoolaId'], ['hoolaId']) }} as hoolaid,
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract_scalar('_airbyte_data', ['updatedAt'], ['updatedAt']) }} as updatedat,
{{ json_extract_scalar('_airbyte_data', ['academyAccount'], ['academyAccount']) }} as academyaccount,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_user_courses') }} as table_alias
-- user_courses
where 1 = 1

View File

@ -0,0 +1,23 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('user_courses_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast({{ adapter.quote('user') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('user') }},
cast(course as {{ dbt_utils.type_string() }}) as course,
cast(hoolaid as {{ dbt_utils.type_string() }}) as hoolaid,
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(updatedat as {{ dbt_utils.type_string() }}) as updatedat,
cast(academyaccount as {{ dbt_utils.type_string() }}) as academyaccount,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('user_courses_ab1') }}
-- user_courses
where 1 = 1

View File

@ -0,0 +1,23 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('user_courses_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
adapter.quote('user'),
'course',
'hoolaid',
'createdat',
'updatedat',
'academyaccount',
]) }} as _airbyte_user_courses_hashid,
tmp.*
from {{ ref('user_courses_ab2') }} tmp
-- user_courses
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ 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_user_give_gift') }}
select
{{ json_extract_scalar('_airbyte_data', ['_id'], ['_id']) }} as _id,
{{ json_extract_scalar('_airbyte_data', ['gift'], ['gift']) }} as gift,
{{ json_extract_scalar('_airbyte_data', ['user'], ['user']) }} as {{ adapter.quote('user') }},
{{ json_extract_scalar('_airbyte_data', ['title'], ['title']) }} as title,
{{ json_extract_scalar('_airbyte_data', ['giveGift'], ['giveGift']) }} as givegift,
{{ json_extract_scalar('_airbyte_data', ['createdAt'], ['createdAt']) }} as createdat,
{{ json_extract_scalar('_airbyte_data', ['updatedAt'], ['updatedAt']) }} as updatedat,
{{ json_extract_scalar('_airbyte_data', ['isCompleted'], ['isCompleted']) }} as iscompleted,
{{ json_extract_scalar('_airbyte_data', ['notificationContent'], ['notificationContent']) }} as notificationcontent,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ source('unibag', '_airbyte_raw_user_give_gift') }} as table_alias
-- user_give_gift
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to cast each column to its adequate SQL type converted from the JSON schema type
-- depends_on: {{ ref('user_give_gift_ab1') }}
select
cast(_id as {{ dbt_utils.type_string() }}) as _id,
cast(gift as {{ dbt_utils.type_string() }}) as gift,
cast({{ adapter.quote('user') }} as {{ dbt_utils.type_string() }}) as {{ adapter.quote('user') }},
cast(title as {{ dbt_utils.type_string() }}) as title,
cast(givegift as {{ dbt_utils.type_string() }}) as givegift,
cast(createdat as {{ dbt_utils.type_string() }}) as createdat,
cast(updatedat as {{ dbt_utils.type_string() }}) as updatedat,
{{ cast_to_boolean('iscompleted') }} as iscompleted,
cast(notificationcontent as {{ dbt_utils.type_string() }}) as notificationcontent,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at
from {{ ref('user_give_gift_ab1') }}
-- user_give_gift
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "_airbyte_unibag",
tags = [ "top-level-intermediate" ]
) }}
-- SQL model to build a hash column based on the values of this record
-- depends_on: {{ ref('user_give_gift_ab2') }}
select
{{ dbt_utils.surrogate_key([
'_id',
'gift',
adapter.quote('user'),
'title',
'givegift',
'createdat',
'updatedat',
boolean_to_string('iscompleted'),
'notificationcontent',
]) }} as _airbyte_user_give_gift_hashid,
tmp.*
from {{ ref('user_give_gift_ab2') }} tmp
-- user_give_gift
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('brands_ab3') }}
select
_id,
{{ adapter.quote('name') }},
active,
{{ adapter.quote('country') }}::json->>'name' AS country_name,
{{ adapter.quote('country') }}::json->>'code' AS country_code,
createdat::timestamp AS created_at,
updatedat::timestamp AS updated_at,
COALESCE(cast(totalproduct AS integer), 0) AS total_product,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_brands_hashid
from {{ ref('brands_ab3') }}
-- brands from {{ source('unibag', '_airbyte_raw_brands') }}
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('give_gifts_ab3') }}
select
_id,
title,
status,
{{ adapter.quote('content') }},
createdby AS created_by,
lastchangeusersat::timestamp AS last_change_users_at,
createdat::timestamp AS created_at,
updatedat::timestamp AS updated_at,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_give_gifts_hashid
from {{ ref('give_gifts_ab3') }}
-- give_gifts from {{ source('unibag', '_airbyte_raw_give_gifts') }}
where 1 = 1

View File

@ -11,6 +11,7 @@ select
sku,
{{ adapter.quote('name') }},
active,
brand AS brand_id,
-- quantity,
picture AS photo,
cast({{ adapter.quote('price') }}::json->>'base' AS numeric) AS price_base,
@ -23,7 +24,8 @@ select
{{ adapter.quote('info') }}::json->'supplier'->>'_id' AS supplier_id,
{{ adapter.quote('info') }}::json->'supplier'->>'name' AS supplier_name,
{{ adapter.quote('info') }}::json->>'dimension' AS info_dimension,
unitCode AS info_unit_code,
unitcode AS info_unit_code,
suppliersku AS supplier_sku,
cast({{ adapter.quote('info') }}::json->>'weight' AS numeric) AS info_weight,
cast({{ adapter.quote('statistic') }}::json->>'saleTotal' AS numeric) AS stats_sale_total,
cast({{ adapter.quote('statistic') }}::json->>'salePending' AS numeric) AS stats_sale_pending,

View File

@ -0,0 +1,34 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('session_deliveries_ab3') }}
select
_id,
sessionorder AS session_order_id,
title,
service,
currency,
{{ adapter.quote('customer') }}::json->>'_id' AS customer_id,
{{ adapter.quote('customer') }}::json->>'name' AS customer_name,
{{ adapter.quote('customer') }}::json->>'phone' AS customer_phone,
{{ adapter.quote('delivery') }}::jsonb,
{{ adapter.quote('location') }}::jsonb,
{{ adapter.quote('promotion') }}::json->>'type' AS promotion_type,
{{ adapter.quote('promotion') }}::json->>'isApplied' AS promotion_is_applied,
{{ adapter.quote('promotion') }}::json->>'discount' AS promotion_discount,
{{ adapter.quote('promotion') }}::json->>'minOrderValue' AS promotion_min_order_value,
paymentmethod AS payment_method,
estimatetimedelivery AS estimate_time_delivery,
createdat::timestamp AS created_at,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_session_deliveries_hashid
from {{ ref('session_deliveries_ab3') }}
-- session_deliveries from {{ source('unibag', '_airbyte_raw_session_deliveries') }}
where 1 = 1

View File

@ -0,0 +1,25 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('team_histories_ab3') }}
select
_id,
team AS team_id,
leader AS leader_id,
status,
{{ adapter.quote('date') }}::timestamp,
{{ adapter.quote('level') }}::jsonb,
statistic::jsonb,
createdat::timestamp AS created_at,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_team_histories_hashid
from {{ ref('team_histories_ab3') }}
-- team_histories from {{ source('unibag', '_airbyte_raw_team_histories') }}
where 1 = 1

View File

@ -12,7 +12,7 @@ select
team AS team_id,
{{ adapter.quote('user') }} AS seller_id,
isleft AS is_left,
leftat AS left_at,
leftat::timestamp AS left_at,
joinedat::timestamp AS joined_at,
createdat::timestamp AS created_at,
updatedat::timestamp AS updated_at,

View File

@ -0,0 +1,24 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('user_courses_ab3') }}
select
_id,
{{ adapter.quote('user') }} AS seller_id,
course::jsonb,
hoolaid AS hoola_id,
academyaccount AS academy_account_id,
createdat::timestamp AS created_at,
updatedat::timestamp AS updated_at,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_user_courses_hashid
from {{ ref('user_courses_ab3') }}
-- user_courses from {{ source('unibag', '_airbyte_raw_user_courses') }}
where 1 = 1

View File

@ -0,0 +1,27 @@
{{ config(
indexes = [{'columns':['_airbyte_emitted_at'],'type':'btree'}],
unique_key = '_airbyte_ab_id',
schema = "unibag",
tags = [ "top-level" ]
) }}
-- Final base SQL model
-- depends_on: {{ ref('user_give_gift_ab3') }}
select
_id,
{{ adapter.quote('user') }} AS seller_id,
title,
givegift AS give_gift_id,
iscompleted AS is_completed,
gift::json->>'type' AS gift_type,
cast(gift::json->>'value' AS numeric) AS gift_value,
gift::json->>'label' AS gift_label,
createdat::timestamp AS created_at,
updatedat::timestamp AS updated_at,
_airbyte_ab_id,
_airbyte_emitted_at,
{{ current_timestamp() }} as _airbyte_normalized_at,
_airbyte_user_give_gift_hashid
from {{ ref('user_give_gift_ab3') }}
-- user_give_gift from {{ source('unibag', '_airbyte_raw_user_give_gift') }}
where 1 = 1

View File

@ -7,12 +7,14 @@ sources:
identifier: false
tables:
- name: _airbyte_raw_admin_tags
- name: _airbyte_raw_brands
- name: _airbyte_raw_cash_flows
- name: _airbyte_raw_cities
- name: _airbyte_raw_customers
- name: _airbyte_raw_districts
- name: _airbyte_raw_event_rewards
- name: _airbyte_raw_events
- name: _airbyte_raw_give_gifts
- name: _airbyte_raw_inventories
- name: _airbyte_raw_membership
- name: _airbyte_raw_membership_histories
@ -29,13 +31,17 @@ sources:
- name: _airbyte_raw_promotion_orders
- name: _airbyte_raw_promotions
- name: _airbyte_raw_referrals
- name: _airbyte_raw_session_deliveries
- name: _airbyte_raw_social_post_views
- name: _airbyte_raw_social_posts
- name: _airbyte_raw_suppliers
- name: _airbyte_raw_team_activities
- name: _airbyte_raw_team_bonus
- name: _airbyte_raw_team_histories
- name: _airbyte_raw_team_members
- name: _airbyte_raw_teams
- name: _airbyte_raw_user_courses
- name: _airbyte_raw_user_give_gift
- name: _airbyte_raw_user_identifications
- name: _airbyte_raw_users
- name: _airbyte_raw_voucher_bonus