Azure Data Lake - 如何在AzureSQL DB中插入外部表?

时间:2018-06-13 20:30:58

标签: azure-data-lake u-sql

从Azure Data Lake中,将记录插入AzureSQL DB中的外部表会产生以下错误:

Error   E_CSC_USER_CANNOTMODIFYEXTERNALTABLE    Modifying external table 'credDB.dbo.BuildInfosClone' is not supported.
Modifying external table 'credDB.dbo.BuildInfosClone' is not supported.
External tables are read-only tables.

如何将记录插入外部数据库?我的凭证具有读写访问权限。我使用的是常规Azure SQL DB,而不是数据仓库。

完整的U-SQL代码

CREATE DATA SOURCE myDataSource
FROM AZURESQLDB
WITH
(
    PROVIDER_STRING = "Database=MedicusMT2",
    CREDENTIAL = credDB.rnddref_admin,
    REMOTABLE_TYPES = (bool, byte, sbyte, short, ushort, int, uint, long, ulong, decimal, float, double, string, DateTime)
);

CREATE EXTERNAL TABLE IF NOT EXISTS dbo.BuildInfosClone
(
    [Key] string,
    [Value] string
)
FROM myDataSource LOCATION "dbo.BuildInfosClone";

INSERT INTO dbo.BuildInfosClone
( [Key], [Value] )
VALUES
("SampleKey","SampleValue");

2 个答案:

答案 0 :(得分:1)

您目前无法使用U-SQL直接写入Azure SQL数据仓库表。您可以将数据写入平面文件,然后使用Polybase导入它或使用Data Factory编排副本。

或者,您可以使用Azure Databricks根据this tutorial直接写入SQL数据仓库。

答案 1 :(得分:0)

上面的错误消息是正确的 - “外部表是只读表。”