【问题标题】:Polybase : Querying the external table giving error but offending value shows nothingPolybase:查询外部表给出错误但有问题的值没有显示
【发布时间】:2020-05-13 23:57:38
【问题描述】:

我已使用 powershell 将文本文件压缩为 gzip 格式并上传到 Azure blob。当我查询外部表时,我收到以下错误,但有问题的值没什么。谁能告诉我是什么问题以及如何找出错误行。

注意:发出后我解压缩文件并检查它,但我没有看到任何行问题。

Please click here to look at the error

【问题讨论】:

  • 请您提供比上述问题更多的信息。至少显示创建外部表、外部数据源和外部文件格式的代码。只是一个想法:您在创建文件格式时是否定义了压缩?

标签: azure tsql azure-blob-storage external-tables polybase


【解决方案1】:

我对该错误的理解是,(我认为)第一列的一行有一个空白值。由于您将其声明为SMALLINT NOT NULL,因此它失败了。您可以尝试将该列更改为NULL 吗?

经过进一步的故障排除,我相信我们确定问题出在特殊字符上。我相信修复文件编码和删除特殊字符解决了这个问题。

【讨论】:

  • 我尝试了 null 和 varchar(250) null 但我又遇到了同样的错误。
  • 当我将列数据类型更改为 varchar(250) null 时,它显示以下错误。而不是小的 int 它显示 varchar(250) 。无法针对链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI11”执行查询“远程查询”。查询中止——从外部源读取时达到了最大拒绝阈值(0 行):在处理的总共 23294 行中拒绝了 1 行。 (/DB000B/DB000B_09_1_2019.txt.gz)列序号:0,预期数据类型:VARCHAR(250)
  • @praveenpasumarthi 请包含外部表的定义和外部文件格式
  • 创建外部表 DB000B_Trim_Ext_prod ( Column1 smallint NOT NULL, Column2 char(10) NOT NULL, Column3 smallint NOT NULL, Column4 datetime NOT NULL, Column5 int NULL, Column6 int NULL, Column7 int NULL, Column8 datetime NULL, Column9 char(1) NULL, Column10 char(1) NULL, Column11 money NULL, Column12 varchar(30) NULL, Column13 char(1) NULL, Column14 char(1) NULL, Column15 varchar(35) NULL, Column16 bigint NULL ) WITH (DATA_SOURCE = AzureStorage,LOCATION = N'/DB000B/DB000B_09_1_2019.txt.gz',FILE_FORMAT = TextFile_GzipComp,REJECT_TYPE = VALUE,REJECT_VALUE = 0) GO
  • 感谢您的意见。我想通了这个问题。数据中出现了一些格式化字符,这些字符破坏了 polybase 。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多