40 lines
1.4 KiB
SQL
40 lines
1.4 KiB
SQL
{{
|
|
config(
|
|
materialized='incremental',
|
|
engine='ReplacingMergeTree',
|
|
order_by='(time_id, ts_code)',
|
|
unique_key=['time_id', 'ts_code'],
|
|
incremental_strategy='append',
|
|
partition_by=['toYYYYMM(toDateTime(time_id))'],
|
|
query_settings={
|
|
"join_algorithm": "'full_sorting_merge'",
|
|
}
|
|
)
|
|
}}
|
|
|
|
Select
|
|
OdsMinutes.ts_code As ts_code,
|
|
OdsMinutes.time_id As time_id,
|
|
OdsMinutes.close As close,
|
|
OdsMinutes.open As open,
|
|
OdsMinutes.high As high,
|
|
OdsMinutes.low As low,
|
|
OdsMinutes.vol As vol,
|
|
OdsMinutes.amount As amount,
|
|
OdsAdjFactor.adj_factor As adj_factor,
|
|
now() As dt
|
|
From {{ ref('ods.tushare_minutes') }} As OdsMinutes
|
|
Any Left Join {{ ref('dw.dim_time') }} As DimTime
|
|
On OdsMinutes.time_id = DimTime.time_id
|
|
Any Left Join {{ ref('ods.tushare_adj_factor') }} As OdsAdjFactor
|
|
On OdsMinutes.ts_code = OdsAdjFactor.ts_code
|
|
And OdsAdjFactor.date_id = DimTime.date_id
|
|
where 1 = 1
|
|
{% if is_incremental() %}
|
|
And OdsMinutes.time_id >= (Select toYYYYMMDDhhmmss(toStartOfDay(YYYYMMDDhhmmssToDateTime(max(`time_id`)))) From {{ this }})
|
|
{% endif %}
|
|
{% if 'dev' in target.name %}
|
|
And OdsMinutes.time_id >= toYYYYMMDDhhmmss(dateAdd(Month,-1,today()))
|
|
{% elif target.name == 'test' %}
|
|
And OdsMinutes.time_id >= toYYYYMMDDhhmmss(dateAdd(Year,-1,today()))
|
|
{% endif %} |