我已经通过poly-base将Azure blob存储中的文件数据加载到Azure SQL DW外部表.现在,Blob容器中的文件已更新.现在我想加载新数据.任何人都可以建议如何通过poly base将新数据加载到外部表.我正在尝试删除外部表(如果存在)并再次创建它以加载新数据.
无需删除外部表来查看新数据.但是,DROP EXTERNAL TABLE
如果需要,您可以使用语法删除Polybase /外部表,例如更改定义或REJECT_TYPE
.您也可以sys.external_tables
在放弃之前检查DMV 的存在,例如
IF EXISTS ( SELECT * FROM sys.external_tables WHERE object_id = OBJECT_ID('yourSchema.yourTable') ) DROP EXTERNAL TABLE yourSchema.yourTable GO
Azure SQL数据仓库还不支持DROP IF EXISTS (DIE
SQL Server 2016中的语法.但是如上所述,不需要删除外部表只是为了查看新数据.如果blob文件已更新,则下次查询时,新数据将仅显示在外部表中.
另一种方法是在外部表定义中提供目录名称.然后,只需在文件夹中删除新文件,下次查询表时就会显示数据,例如
CREATE EXTERNAL TABLE dbo.DimDate2External ( DateId INT NOT NULL, CalendarQuarter TINYINT NOT NULL, FiscalQuarter TINYINT NOT NULL ) WITH ( LOCATION='/textfiles/dimDate/', DATA_SOURCE=AzureStorage, FILE_FORMAT=TextFile );
因此,如果您在该文件夹中有一个初始文件DimDate1.txt
,然后添加了一个名为DimDate2.txt
它的新文件,它将作为一个文件出现在表中.