我试图通过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"
}
答案 0 :(得分:1)
数据库/模式在U-SQL中不可参数化。
如果要通过ADF传递其他参数,则应在脚本中使用DECLARE EXTERNAL语句,并在ADF中声明参数。 ADF通过写入脚本顶部的DECLARE语句来传递参数。如果将变量声明为DECLARE EXTERNAL,则脚本可以独立于ADF运行,但在ADF在早期DECLARE语句(docs)中写入时不会导致错误。