Как я могу установить query_band для сжатия на уровне блоков, используя функцию load_to_teradata Астры, - PullRequest
0 голосов
/ 27 февраля 2019

Когда вы загружаете таблицу teradata в bteq, вы можете установить диапазон запросов для сжатия на уровне блоков.Это работает даже при использовании таблицы запросов и вставке с чужого сервера.

SET QUERY_BAND = 'BlockCompression=Yes;' UPDATE FOR SESSION;

Моя проблема в том, что я создаю таблицу в системе Aster, а затем использую функцию загрузки в teradata.Я подозреваю, что есть синтаксический вызов, где я могу установить диапазон запроса как часть вызова load_to_teradata, но после поиска в Интернете и через документацию по teradata я еще ничего не нашел.

-- Load Agg data for the YYYYMM to Teradta
SELECT SUM(loaded_row_count),SUM(error_row_count)
       FROM load_to_teradata (
       ON ( select 
              Cust_id
            , cast(lst_cnf_actvy_dt_tm as date) as lst_cnf_actvy_dt
            , cast(sum(str_cnt     ) as INTEGER) as acct_open_brnch_use_cnt
            , cast(sum(phone_cnt   ) as INTEGER) as acct_open_phn_use_cnt
            , cast(sum(mail_cnt    ) as INTEGER) as acct_open_mail_use_cnt
            , cast(sum(onlnchnl_cnt) as INTEGER) as acct_open_onln_use_cnt
            , cast(sum(mblbnk_cnt  ) as INTEGER) as acct_open_mbl_dvc_use_cnt
            , cast(sum(acctopen_cnt) as INTEGER) as acct_open_trck_chnl_cnt
            from <someDB>.<someTBL>
            where acctopen_cnt > 0
              and lower(lst_cnf_actvy_typ_cd) = 'acctopen'
              and cast(lst_cnf_actvy_dt_tm as date) between
                  cast(substring('${YYYYMM}' from 1 for 4) || '-' || substring('${YYYYMM}' from 5 for 2) || '-01' as date) and
                  cast((cast(substring('${YYYYMM}' from 1 for 4) || '-' || substring('${YYYYMM}' from 5 for 2) || '-01' as date) + interval '1 month') - interval '1 day' as date)
              and (str_cnt > 0 or phone_cnt > 0 or mail_cnt > 0 or onlnchnl_cnt > 0 or mblbnk_cnt > 0)
            group by 1,2 )
       TDPID('TD_RDBMS_C2T') USERNAME('${c2tUID}') PASSWORD('${c2tPWD}') ${LDAP_IND_AST_C2T}
       TARGET_TABLE ( 'C2T.t_yyyymm_agg' ) LOG_TABLE ('C2T.t_yyyymm_aggLOG')
       MAX_SESSIONS(120));

1 Ответ

0 голосов
/ 27 февраля 2019

Смог получить синтаксис для параметров load_to_teradata.Вы можете увидеть аргумент query_band_sess_info после max_sessions и перед query_timeout ...

load_to_teradata(
ON (source query)
TDPID('tdpid')
TARGET_TABLE('fully-qualified table name')
[ERROR_TABLES('error table'[, 'unique constraint violation table'])]
[LOG_TABLE('table name')]
Teradata QueryGrid: Aster-Teradata Connector
Loading Data From Aster Database to Teradata
Aster Database User Guide for Aster Appliances 301
[USERNAME('username')]
[PASSWORD('password')]
[LOGON_MECHANISM('TD2' | 'LDAP' | 'KRB5')]
[LOGON_DATA('mechanism-specific logon data')]
[ACCOUNT_ID('account-id')]
[TRACE_LEVEL('trace-level')]
[NUM_INSTANCES('instance-count')]
[START_INSTANCE('start-instance')]
[MAX_SESSIONS('max-sessions-number')]
[QUERY_BAND_SESS_INFO('key1=value1;key2=value2;...')]
[QUERY_TIMEOUT('timeout-in-seconds')]
[AUTO_TUNE_INSTANCES('yes'|'no')]
[WORKINGDATABASE(‘dbname’)]
[DIAGNOSTIC_MODE('All'|['GetCOPEntries','CheckConnectivity',
'CheckAuthentication','GetTPTSessions',
'TargetTableOrQuerySchema'])])
);
...