add sync b rands
This commit is contained in:
		
							parent
							
								
									25bf52e4c0
								
							
						
					
					
						commit
						c5c4d4cfcc
					
				
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -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 product_sku
 | 
			
		||||
	dbt run --profiles-dir=. --project-dir=. --full-refresh --select brands
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -7,6 +7,7 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue