config {
type: "operations",
tags: ["soma_deal_meta_audience_reporting_pipeline"]
}
${operations.createSessionizerTable("sessionizer_hourly_audience_deal_reporting_metaaudiences")}
< /code>
и мой код JavaScript для создания таблицы: < /p>
createSessionizerTable: (name, datetime) => {
if (!name) {
throw new Error("createSessionizerTable requires a table name.");
}
const report_datetime_logic = datetime
? `TIMESTAMP("${datetime}")`
: `TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)`;
const prefix = getEnvPrefix();
const schema = `${prefix}${dataform.projectConfig.vars.external_source_schema}`;
return `
BEGIN
DECLARE report_datetime TIMESTAMP DEFAULT ${report_datetime_logic};
DECLARE year STRING DEFAULT FORMAT_TIMESTAMP('%Y', report_datetime);
DECLARE month STRING DEFAULT FORMAT_TIMESTAMP('%m', report_datetime);
DECLARE day STRING DEFAULT FORMAT_TIMESTAMP('%d', report_datetime);
DECLARE hour STRING DEFAULT FORMAT_TIMESTAMP('%H', report_datetime);
EXECUTE IMMEDIATE (FORMAT("""
DROP TABLE IF EXISTS \`${dataform.projectConfig.vars.projectName}.${schema}.${name}\`
"""));
EXECUTE IMMEDIATE (FORMAT("""
CREATE OR REPLACE EXTERNAL TABLE \`${dataform.projectConfig.vars.projectName}.${schema}.${name}\`
OPTIONS (
format = 'PARQUET',
uris = ['${dataform.projectConfig.vars.sessionizer_gcs_bucket}/category=logs/year=%s/month=%s/day=%s/hour=%s/*.parquet']
);
""", year, month, day, hour));
END;
`;
},
< /code>
Как вы можете видеть в коде JS, я также бросил внешнюю таблицу, прежде чем создать ее, но даже при этом я получаю < /p>
Already Exists: Table vas-us-east4:external_source.sessionizer_hourly_audience_deal_reporting_metaaudiences at [2:11]
Иногда он просто работает нормально , но продолжает проваливаться много времени. Я подтвердил, что это даже не удается, когда нет внешней таблицы - путем вручную запустив код. < /P>
Не уверен, что здесь может пойти не так. Цените любую помощь.
${operations.createSessionizerTable("sessionizer_hourly_audience_deal_reporting_metaaudiences")} < /code> и мой код JavaScript для создания таблицы: < /p> createSessionizerTable: (name, datetime) => { if (!name) { throw new Error("createSessionizerTable requires a table name."); }
< /code> Как вы можете видеть в коде JS, я также бросил внешнюю таблицу, прежде чем создать ее, но даже при этом я получаю < /p> Already Exists: Table vas-us-east4:external_source.sessionizer_hourly_audience_deal_reporting_metaaudiences at [2:11] [/code] Иногда он просто работает нормально , но продолжает проваливаться много времени. Я подтвердил, что это даже не удается, когда нет внешней таблицы - путем вручную запустив код. < /P> Не уверен, что здесь может пойти не так. Цените любую помощь.