处理azure数据湖中的多个读写器

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

我是azure数据湖的新手,目前正在使用数据工厂v2将数据从我的事务数据库移动到azure数据湖存储。

Consider a scenario

Company has multiple datasources

  • A队负责来源A.
  • B队负责来源B.
  • C队负责Source C

Multiple Writers

每个团队负责将数据移动到数据湖中。

  • A队移动数据 /TeamA/entity01.csv /TeamA/entity02.csv ..
  • B队移动数据 /TeamB/entity03.csv ..

Multiple Readers

  • Team Analytics可以读取数据并在数据库环境中执行计算
  • Team Power BI可以获取数据转换它并将其复制到单个租户文件夹中 Tenant1 / entity01.csv Tenant2 / entity02.csv

Question

  • 读者如何阅读而不与作者发生冲突。因此,当读者正在读取数据时,Team X更新数据工厂活动不会写入该文件?

What I was thinking / What have I tried :

我正在考虑拥有一个共享的元数据源(可能是所有读者都可以访问的表存储)。

"teamA/entity1" : [ 
                   "TeamA/Entity1/01-02-2018/0000/data.csv",
                   "TeamA/Entity1/01-01-2018/0000/data.csv",
                   ]
"teamA/entity2" : [
                   "TeamA/Entity2/01-01-2018/1200/data.csv"
                   "TeamA/Entity2/01-01-2018/0600/data.csv"
                   "TeamA/Entity2/01-01-2018/0000/data.csv"
                 ]
"teamB/entity3" : [
                   "TeamA/Entity3/01-01-2018/0600/data.csv"
                   "TeamA/Entity3/01-01-2018/0000/data.csv"
                 ]
  • 编写者将负责维护一组版本以避免删除/覆盖数据。
  • 读者将负责在此处执行查找,然后读取数据。
azure-data-lake data-lake
1个回答
0
投票

Data Lake在写入实际文件之前写入temporary files in the background。这可能会缓解这个问题,但我不确定这是否会100%避免冲突。

如果您愿意在一个工厂中安装管道,则可以使用内置的活动链接来允许数据工厂管理依赖关系。

我们通常写入“服务存储”,例如SQL服务器,而不是让powerbi直接访问数据湖商店,这可能有助于分离事物(也有利于DirectQuery等)。但是我还没有看到数据块支持,我敢打赌它类似于HDInsight的使用方式。

值得注意的是,当你发现Data Lake Store不是OLTP数据源时,这种事情并不是数据湖存储的意思,这个stackoverflow文章更详细地讨论了这个问题:Concurrent read/write to ADLA

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