是否可以使用带有 SSIS 的 ETL 将数据上传到 Azure 数据仓库?
Is it possible to upload data to Azure Data Warehouse using an ETL with SSIS?
我有一个本地 SAP 数据库,我想每天将其中的一些数据(一些 table 来自 SAP 数据库)推送到 Azure。数据将使用合并策略上传(如果检测到更改则更新,如果记录丢失则删除,否则插入)。我正在考虑使用以下设置来执行此操作:
- Install on premise integration Services (SSIS). The client already has license for this.
- Install SAP connector on premise.
- Pull data from SAP into text files (on premise, into multiple CSV files) (create ETL's for this).
- Push those files into a Blob Storage (via AzCopy), so I create a job or process somehow locally that will handle newly created files.
- Load data into Data Warehouse using PolyBase (https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-get-started-load-with-polybase) using an UP-SERT strategy.
这肯定有效,但我想知道是否可以使用 ETL(使用 SSIS 包)直接上传该数据,基本上跳过以下步骤:
- 将普通文件保存到本地磁盘。
- 将它们推送到 Azure Blob 存储。
- 在上传的文件上使用虚拟 table 从文件加载数据。
我担心的是:
- 表现
- 费用
你认为最好的方法是什么?
谢谢!
您可以使用SQL 服务器集成服务 (SSIS) 通过 Azure SQL DW Upload Task which is part of the Azure Feature Pack for Integration Services 将数据加载到 Azure SQL 数据仓库。此任务从本地文件共享中获取文件,并在后台使用 Polybase 将它们加载到仓库 tables。使用此方法,您不必将文件显式推送到 Blob 存储或使用 AzCopy。这个设计看起来像:
SAP > 平面文件 > SQL DW 上传任务
您还可以使用 Dataflow 任务将数据直接加载到仓库 table,但历史上性能非常慢。我认为这种设计的优点是您不必将文件提取为平面文件。我最近没有尝试过,因为推荐的方法是 Polybase。这个设计看起来像:
SAP > Azure SQL 数据仓库(使用数据流任务)
要考虑的另一种方法是 Azure 数据工厂,它现在具有 SAP 连接(对于某些产品)。您需要一个网关来促进从本地到 Azure 的复制。 ADF 可能具有更高的可扩展性,但如果您以前没有使用过它,则学习起来会有些困难。
我有一个本地 SAP 数据库,我想每天将其中的一些数据(一些 table 来自 SAP 数据库)推送到 Azure。数据将使用合并策略上传(如果检测到更改则更新,如果记录丢失则删除,否则插入)。我正在考虑使用以下设置来执行此操作:
- Install on premise integration Services (SSIS). The client already has license for this.
- Install SAP connector on premise.
- Pull data from SAP into text files (on premise, into multiple CSV files) (create ETL's for this).
- Push those files into a Blob Storage (via AzCopy), so I create a job or process somehow locally that will handle newly created files.
- Load data into Data Warehouse using PolyBase (https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-get-started-load-with-polybase) using an UP-SERT strategy.
这肯定有效,但我想知道是否可以使用 ETL(使用 SSIS 包)直接上传该数据,基本上跳过以下步骤:
- 将普通文件保存到本地磁盘。
- 将它们推送到 Azure Blob 存储。
- 在上传的文件上使用虚拟 table 从文件加载数据。
我担心的是: - 表现 - 费用
你认为最好的方法是什么?
谢谢!
您可以使用SQL 服务器集成服务 (SSIS) 通过 Azure SQL DW Upload Task which is part of the Azure Feature Pack for Integration Services 将数据加载到 Azure SQL 数据仓库。此任务从本地文件共享中获取文件,并在后台使用 Polybase 将它们加载到仓库 tables。使用此方法,您不必将文件显式推送到 Blob 存储或使用 AzCopy。这个设计看起来像:
SAP > 平面文件 > SQL DW 上传任务
您还可以使用 Dataflow 任务将数据直接加载到仓库 table,但历史上性能非常慢。我认为这种设计的优点是您不必将文件提取为平面文件。我最近没有尝试过,因为推荐的方法是 Polybase。这个设计看起来像:
SAP > Azure SQL 数据仓库(使用数据流任务)
要考虑的另一种方法是 Azure 数据工厂,它现在具有 SAP 连接(对于某些产品)。您需要一个网关来促进从本地到 Azure 的复制。 ADF 可能具有更高的可扩展性,但如果您以前没有使用过它,则学习起来会有些困难。