在使用 Polybase 在 Azure SQL 数据仓库中创建外部表时,它们可以指向单个文件或一组文件,只要它们位于同一文件夹中且格式相同。
个人档案
WTIH (
DATA_SOURCE = yourDataSource,
LOCATION = N'/input/file1.txt',
FILE_FORMAT = yourFileFormat,
...
etc
文件夹
WTIH (
DATA_SOURCE = yourDataSource,
LOCATION = N'/input/',
FILE_FORMAT = yourFileFormat,
...
etc
所以你可以做的是为每个文件创建一个外部表。外部表只是元数据结构,数据实际上并不存在于数据库中。这些表必须包括每个表的所有列。然后在五个表上创建一个UNION
语句,只选择五个列并使用 aCTAS
将数据导入数据库:
CREATE TABLE dbo.yourTable
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED COLUMNSTORE INDEX
)
AS
SELECT col1, col2, col3, col4, col5
FROM externalTable1
UNION ALL
SELECT col1, col2, col3, col4, col5
FROM externalTable2
UNION ALL
SELECT col1, col2, col3, col4, col5
FROM externalTable3
etc
....
我可能不会使用数据工厂,因为 Polybase 可以为您完成大部分工作。