0

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

考虑一个场景

公司拥有多个数据源

  • A 组负责源 A
  • B组负责Source B
  • C 组负责源 C

多个作家

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

  • A 组将数据移至
    • /TeamA/entity01.csv
    • /TeamA/entity02.csv
    • ..
  • B 组将数据移至
    • /TeamB/entity03.csv
    • ..

多个阅读器

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

问题

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

我在想什么/我尝试了什么:

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

"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"
                 ]
  • 作者将负责维护一组版本以避免删除/覆盖数据。
  • 读者将增加在这里执行查找然后读取数据的责任。
4

1 回答 1

0

Data Lake 在后台写入临时文件,然后再写入实际文件。这可能会缓解这个问题,但是我不确定这是否会 100% 避免冲突。

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

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

值得注意的是,当您发现 Data Lake Store 不是 OLTP 数据源时,这种事情并不是数据湖存储的用途,这篇 stackoverflow 帖子更详细地讨论了这一点:并发读/写到 ADLA

于 2018-03-05T21:26:55.003 回答