【问题标题】:Azure Data Factory Data Flow source query support for FOR JSON AUTO对 FOR JSON AUTO 的 Azure 数据工厂数据流源查询支持
【发布时间】:2020-09-23 09:11:45
【问题描述】:

我正在尝试使用以下查询作为我的数据流的来源,但我不断收到错误。数据流不支持该功能吗?

SELECT  customer.customerid  AS 'customerid',
        customer.customer_fname AS 'fname',    
        customer.customer_lname AS 'lname',
        customer.customer_phone AS 'Phone',
        address.customer_addressid as 'addressid',
        address.Address_type as 'addresstype',  
        address.street1  as 'street1'
FROM customer customer  
   INNER JOIN customer_address address
     ON customer.customerid = address.customerid  
order by customer.customerid
FOR JSON AUTO, ROOT('customer')

我收到以下错误:

Notifications
Column name needs to be specified in the query, set an alias if using a SQL function

ADF V2,数据流,来源

【问题讨论】:

  • 什么是源,SQL数据库?你是在查询选项里设置的吗?
  • @LeonYue,感谢您的回复。源是 SQL 数据库。我在“源选项”>“输入”(查询)>查询(文本框)中设置查询。
  • 该错误是由数据流查询不支持order by 语句引起的,而不是'FOR JOSN AUTO'。请看我的回答。如果我的回答对您有帮助,请接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
  • 您还有其他顾虑吗?

标签: azure-data-factory-2 azure-data-flow


【解决方案1】:

该错误是由数据流查询不支持order by 语句引起的,而不是“FOR JOSN AUTO”。

请参阅下面的错误:

请参考资料Flow Source transformation:

查询:如果您在输入字段中选择查询,请为您的源输入 SQL 查询。此设置会覆盖您在数据集中选择的任何表。 此处不支持 Order By 子句,但您可以设置完整的 SELECT FROM 语句。您还可以使用用户定义的表函数。 select * from udfGetData() 是 SQL 中返回表的 UDF。此查询将生成您可以在数据流中使用的源表。使用查询也是减少测试或查找行数的好方法。

SQL Example: Select * from MyTable where customerId > 1000 and customerId < 2000

查询在复制活动中运行良好,但在数据流中为假。您需要更改查询。

【讨论】:

  • 那么这个错误呢?需要在查询中指定列名,如果使用 SQL 函数,请设置别名。删除了我的 ORDER BY,但我仍然在查询中使用 Max(CreatedDate) AS NewDate
猜你喜欢
  • 1970-01-01
  • 2020-11-26
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多