Azure 数据工厂中的 Polybase 和批量插入、复制方法有什么区别以及何时使用它们?

问题描述 投票:0回答:2

有人可以详细说明一下何时在 azure datafactory 中使用 Polybase 与批量插入,这两种复制方法有什么区别?

azure-data-factory sqlbulkcopy
2个回答
9
投票

标有“Polybase”和“COPY 命令”的两个选项仅适用于 Azure Synapse Analytics(以前称为 Azure SQL 数据仓库)。它们都是快速加载方法,涉及将数据暂存在 Azure 存储中(如果尚未在 Azure 存储中),并使用快速、高度并行的方法从存储加载到每个计算节点。特别是在大型表上,这些选项由于其可扩展性而成为首选,但它们确实存在一些限制,如上面的链接所述。

相比之下,在 Azure Synapse Analytics 上,批量插入是一种较慢的加载方法,它通过控制节点加载数据,并且并行度或性能不高。对于大文件来说,速度要慢一个数量级。但它在数据类型和文件格式方面可以更加宽容。

在其他 Azure SQL 数据库上,批量插入是首选且快速的方法。


0
投票

SQL Server PolyBase 及其从存储在 Azure 数据存储中的文本文件中获取数据的方法。 PolyBase 充当 Azure 数据存储和 SQL Server 之间通信的中间体。

复制命令:-

创建表 [dbo].[行程] (

[DateID] int NOT NULL,

[MedallionID] int NOT NULL,

[HackneyLicenseID] int NOT NULL,

[PickupTimeID] int NOT NULL,

[DropoffTimeID] int NOT NULL,

[PickupGeographyID] int NULL,

[DropoffGeographyID] int NULL,

[PickupLatitude] float NULL,

[PickupLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[DropoffLatitude] float NULL,

[DropoffLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[PassengerCount] int NULL,

[TripDurationSeconds] int NULL,

[TripDistanceMiles] float NULL,
[PaymentType] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[FareAmount] money NULL,
[SurchargeAmount] money NULL,
[TaxAmount] money NULL,

[TipAmount] money NULL,

[TollsAmount] money NULL,

[TotalAmount] money NULL

) 和 ( 分配 = ROUND_ROBIN,

CLUSTERED COLUMNSTORE INDEX

);

复制到行程中 从 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013/QID6392_20171107_05910_0.txt.gz' 和 ( 文件类型='CSV',

FIELDTERMINATOR = '|',

FIELDQUOTE = '',

ROWTERMINATOR='0X0A',

COMPRESSION = 'GZIP'

) 选项(标签='复制:加载');

© www.soinside.com 2019 - 2024. All rights reserved.