2017-01-02 129 views
0

我试图从外部Azure Sql Db读取CREATE EXTERNAL TABLE xyz ....FROM LOCATION "dbo.xyz"SELECT * FROM ExternalDataSource EXECUTE @"SELECT a,b,c FROM dbo.xyz WHERE DATALENGTH(a)<128000"方法,并且得到的行大小太大(来自远程数据源的行大于4194304字节。 )错误。当我尝试查找大于此值的行时,由Jaime的答案here启发的查询不会产生任何结果。Azure数据湖外部数据源:行大小太大

我试图通过执行一个远程查询来获取rowize小于4MB的行以及大字符串具有小于128KB的数据长度的列来限制行集,但我仍然得到相同的错误。

我的印象是,如果我在Sql Db端执行远程查询以将行集限制为Azure Data Lake可以容纳的内容,那我就没问题,但似乎并不如此。我可以申请一个合理的解决方法吗?

干杯!

回答

0

首先,即使使用远程EXECUTE示例,您是否还会观察到错误?

其次,您在ExternalDataSource上设置的REMOTABLE_TYPES是什么?

第三,最好给我们一个链接到工作进一步调查。请随时通过usql(at)Microsoft与我们联系。

+0

谢谢Michael!远程执行示例产生了相同的结果。 REMOTABLE_TYPES是(bool,byte,sbyte,short,ushort,int,uint,long,ulong,decimal,float,double,string,DateTime)在作业url上,有没有办法在搜索到特定的错误之前,你的信息。有这么多,我可能需要相当长的一段时间才能找到它。 – chi

+0

我想你可以通过一个简单的查询界面浏览Visual Studio中的作业列表(不知道它是否提供了一个简单的方法来检查特定的错误)或者使用Powershell SDK编写更多的程序化枚举。 这确实看起来像我想调查的问题。如果否则可以提供repro脚本(一个用于在SQLDB中生成一些测试数据的T-SQL脚本,然后是一个repro U-SQL脚本,我也可以尝试重新制作它)。 –