从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");
答案 0 :(得分:1)
您目前无法使用U-SQL直接写入Azure SQL数据仓库表。您可以将数据写入平面文件,然后使用Polybase导入它或使用Data Factory编排副本。
或者,您可以使用Azure Databricks根据this tutorial直接写入SQL数据仓库。
答案 1 :(得分:0)
上面的错误消息是正确的 - “外部表是只读表。”