【问题标题】:SQL Server 2016 polybase error using hadoop使用 hadoop 的 SQL Server 2016 polybase 错误
【发布时间】:2017-09-23 07:08:05
【问题描述】:

我的 hdfs 上有一个简单的管道分隔文件 (newfile.txt),并且我已经正确配置了我的 polybase。我很难使用 Polybase 将此文件导入我的 SQL Server。以下是查询:

首先创建一个外部文件格式:

CREATE EXTERNAL FILE FORMAT TextFile 
WITH (  
    FORMAT_TYPE = DELIMITEDTEXT  
    , FORMAT_OPTIONS ( Field_Terminator = '|',
      USE_TYPE_DEFAULT = TRUE));

其次,创建Hadoopcluster的数据源:

CREATE EXTERNAL DATA SOURCE HadoopCluster
    WITH (   
        TYPE = HADOOP,
        LOCATION = 'hdfs://10.153.14.11:8020'  
    )

最后,创建从 hdfs 导入数据的外部表:

create external table tmpExternal
(
    patientEncounter varchar(8000),
    PtAcctNo varchar(200)) 
    with (location = '/user/newfolder/',
          data_source = HadoopCluster,
          file_format = TextFile,
          reject_type = value,
          reject_value = 0);

运行上述查询后,这是我最终得到的错误:

消息 596,第 21 级,状态 1,第 26 行
无法继续执行,因为会话处于终止状态。

消息 0,级别 20,状态 0,第 26 行
当前命令发生严重错误。结果(如果有)应丢弃。

我确信磁盘空间没有问题。请协助。

更新: 正在使用 HDP 2.5 版本。我已成功安装 Polybase,这是我尝试从 hdfs 导入的第一个外部表。

txt文件的格式有2行2列:

1234|abcd

5676|efgh

【问题讨论】:

  • 你能发布一些示例数据吗?另外,你有installed and enabled Polybase 吗?您是否让其他外部表成功运行,或者这是第一个?在安全方面,你是如何连接的? Hadoop 安装是什么版本(Hortonworks HDP x.x 或 Cloudera CDH)?
  • 您的外部数据源定义中没有CREDENTIAL
  • 更新:正在使用 HDP 2.5 版本。我已成功安装 Polybase,这是我尝试从 hdfs 导入的第一个外部表。 txt文件的格式有2行2列:1234|abcd 5676|efgh

标签: sql-server hadoop hdfs polybase


【解决方案1】:

你解决了吗?我刚刚在 SQL 产品组花了 3 周时间来追踪这个问题。

在我的例子中,我们设置了 EVENT NOTIFICATIONS 来通知 DDL 更改。这是他们代码中的一个错误,将成为未来的 CU。如果您有事件通知,请将其删除并重试。

希望这会有所帮助。

【讨论】:

  • 这个问题好运吗?我们正在尝试使用 polybase 将大约 500 万条记录从 mdf 文件支持的 SQL 表移动到外部表。它失败并出现相同的错误。在此异常之前,我们可以看到 mpdwsvc.exe 在数据库服务器中崩溃。
【解决方案2】:

这可能是由于各种原因造成的,对我们来说,这个错误是在将数据加载到外部表时发生的。数据包含日期列,其中的数据包含早于 1970-01-01 和晚于 2038-01-18 的日期,这导致了此错误

【讨论】:

    猜你喜欢
    • 2020-03-31
    • 2017-05-08
    • 2016-11-03
    • 2021-12-30
    • 2017-07-15
    • 2022-01-02
    • 2019-12-17
    • 2017-11-03
    • 2017-04-29
    相关资源
    最近更新 更多