首页 > 解决方案 > 为 azure 突触分析创建外部表的问题

问题描述

我在 SMSS 中创建外部表时遇到困难。我将数据集存储在 BLOB 存储中,并尝试将其从那里加载到外部表中。我不断收到此错误:

HdfsBridge::recordReaderFillBuffer - 填充记录读取器缓冲区时遇到意外错误:HadoopSqlException:将数据类型 NVARCHAR 转换为 INT 时出错

我使用了以下查询

CREATE EXTERNAL TABLE [ext].[klant](
[number] [int] NOT NULL,
    [customer_id] [int] NOT NULL,
    [status] [nvarchar](50) NOT NULL,
    [shipping.postcode] [nvarchar](50) NOT NULL,
    [date_created] [datetime2](0) NOT NULL,
    [date_completed] [datetime2](0) NOT NULL,
    [shipping.address_1] [nvarchar](50) NOT NULL,
    [shipping.city] [nvarchar](50) NOT NULL
    )






WITH (
LOCATION='/customer/',
    DATA_SOURCE = storage,  
    FILE_FORMAT = fileformat,
    REJECT_TYPE = VALUE,
    REJECT_VALUE = 0


    );

我还尝试通过将数据从源复制到表来解决 ADF 中的这个问题,但没有成功。我希望有人可以帮助我解决这个问题。提前致谢

标签: sqldatabaseazureazure-sql-data-warehouse

解决方案


感谢您验证 CREATE EXTERNAL DATA SOURCE 语句。您的具体问题是 CREATE EXTERNAL TABLE 语句中定义的内容与数据文件中实际存在的内容之间的列定义之一。

Error converting data type NVARCHAR to INT

源数据文件中的数据,无论是number列还是customer_id列都是 nvarchar 并试图存储为 int。您的数据文件中有多余的字符吗?该错误表示数据类型或列不匹配。


推荐阅读