表名作为参数在u-sql中传递

时间:2018-03-11 18:40:46

标签: azure u-sql

我试图通过azure数据工厂创建u-SQL表,我试图将表名和数据库名作为活动参数传递。怎么做?

create table脚本如下:

CREATE DATABASE IF NOT EXISTS @db_name;
USE DATABASE @db_name;

CREATE TABLE IF NOT EXISTS @db_name.@ref.@table_name
(
    [MS-DR] string,
    [Final_Post] string,
    [Final_Special] string,     
    [Weights] float?,
    [Geometric_Mean] float?,
    [Arithmetic_Mean] float?,
    [Year] string,
    [Version] string,
    [Inserted_Ts] DateTime,
        INDEX CWIDX
        CLUSTERED([MS-DR] ASC)
        DISTRIBUTED BY HASH([MS-DR])
);

我正在尝试使用数据工厂中的参数部分传递参数,如下所示:

"parameters": {
          "db_name": "db_ob_main",
          "table_name": "cost_wght_tbl"
      }

1 个答案:

答案 0 :(得分:1)

数据库/模式在U-SQL中不可参数化。

如果要通过ADF传递其他参数,则应在脚本中使用DECLARE EXTERNAL语句,并在ADF中声明参数。 ADF通过写入脚本顶部的DECLARE语句来传递参数。如果将变量声明为DECLARE EXTERNAL,则脚本可以独立于ADF运行,但在ADF在早期DECLARE语句(docs)中写入时不会导致错误。

相关问题