在u-sql上创建一个标识符作为变量的视图

时间:2017-08-21 10:29:47

标签: u-sql

我想使用U-SQL创建一个视图。视图名称只能在编译时使用DECLARE函数定义。

当我尝试在create view语句中使用该变量时,Visual Studio会抛出语法错误。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

此时U-SQL不支持动态U-SQL,但如果您认为这是一个重要的缺失功能,您可以在此处发布功能请求:

https://feedback.azure.com/forums/327234-data-lake

看起来已经有类似的请求可以投票给here

作为一种变通方法,您可以动态生成U-SQL,然后手动或使用其中一个SDK单独运行脚本,例如使用Powershell,.net。一个简单的例子:

//Dynamic U-SQL
DECLARE @viewName string = "dbo.vw_yourViewName";

// Create dynamic U-SQL
@usql = 
        SELECT * 
        FROM ( VALUES
            ( "USE DATABASE yourDatabase;"),
            ( String.Format("DROP VIEW IF EXISTS {0};", @viewName)),
            ( String.Format("CREATE VIEW IF NOT EXISTS {0} AS EXTRACT col1 int, col2 string, col3 string, col4 string, col5 string FROM \"/input/input44.txt\" USING Extractors.Csv();", @viewName))
             ) AS  x (usql);


// Output the statements in the correct sort order
OUTPUT @usql
TO "/output/dynamic.usql" 
USING Outputters.Text(delimiter:' ', quoting:false);

动态U-SQL的其他示例(或更确切地说,动态生成的U-SQL)是herehere