用于将一堆不同的数据集加载到“目标”模式中的选项

时间:2017-11-23 04:58:17

标签: sql-server azure ssis etl azure-data-lake

背景

  • 5-10个数据源
  • 各种格式(csv,psv,xml)
  • 不同的更新时间表(每周,每月,每季度)

要求

  • 仅对来自每个数据源的某些字段感兴趣
  • 想要从各种来源构建模型到一个数据库(SQL Server)

当前平台/技能组

  • 天青
  • SQL Server

考虑

  • 最小代码。希望我能通过UI /拖放界面完成所有这些工作。
  • 自动化。希望我可以在需要更新时将文件放到服务器上,然后启动“事物”(Azure Functions blob / FTP触发器?)

问题

我在ETL领域没有做太多,但我最初的想法指向像SQL Server Integration Services这样的东西,主要是因为这是我唯一可以体验过的东西,ETL明智。

现在我们有Azure Data Factory,SQL数据仓库等等,那会是更好的解决方案吗?显然答案是“它取决于”,所以我需要问自己什么问题才能澄清这一点?有人可以指点我一篇好文章来开始这个领域吗?

TIA

1 个答案:

答案 0 :(得分:1)

主要问题是您希望在何处暂存数据。

很多人都在谈论 Azure Data Lake 作为临时区域。这个解决方案有利有弊。

优点是Azure Active Directory服务可以与您的内部林联合。完成后,可以使用常规访问控制列表来限制访问。

缺点是您正在使用高级存储(SSD),这对于中小型公司来说可能会花费很多钱。

另一方面, Azure Blob存储已存在很长时间了。其中一个优点是这种存储的成本。共享访问签名(SAS)可用于让任何人访问该帐户。

缺点是SAS是整个王国的关键。与ADLS不同,您无法在文件中分配权限。

如果您喜欢SQL Server OpenRowSet或Bulk Insert,那么您可以享受一下。今年早些时候增加了对这些功能的支持。

在MS SQL TIPS上查看我的article以获取详细信息。

对于计划,您可以使用Azure自动化中非常简单的Power Shell脚本来创建一个手动过程。

Azure数据工厂可能能够执行其中一些任务;但是,您添加的复杂性比简单的T-SQL语句要多,以便将数据加载到表中。

最后但并非最不重要的是,学会爱PowerShell。您几乎可以使用该语言和正确的.NET组件进行任何类型的文件处理。

快乐的编码。

John Miner

Crafty DBA