add give_gift data

This commit is contained in:
Ubuntu 2022-06-01 17:30:33 +07:00
parent c5c4d4cfcc
commit 4b86cd5551
21 changed files with 415 additions and 3 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 brands
dbt run --profiles-dir=. --project-dir=. --full-refresh --select user_give_gift

View File

@ -81,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
@ -169,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
@ -177,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

@ -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,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('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

@ -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

@ -14,6 +14,7 @@ sources:
- 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
@ -36,8 +37,11 @@ sources:
- 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