代码之家  ›  专栏  ›  技术社区  ›  Chris B. Behrens

数据湖中的表有什么意义?[已关闭]

  •  5
  • Chris B. Behrens  · 技术社区  · 7 年前

    3 回复  |  直到 7 年前
        1
  •  6
  •   wBob    7 年前

    IMHO数据湖的目的是存储所有类型的数据:非结构化、半结构化和结构化。Azure版本是Azure Data Lake Store(ADLS),其主要功能是可扩展的大容量存储。

    一个例子可能是,您的湖中有一些非结构化数据,您运行批处理输出,并希望存储结构化的中间输出。您可以在这里将输出存储在ADLA数据库表中。我倾向于在我可以证明我可以从它们中获得性能改进和/或希望利用不同索引选项的地方使用它们。

    我不倾向于将这些视为仓库表,因为它们还没有与其他产品很好地交互,即它们还没有端点/不可见,例如Azure Data Factory还不能从那里移动表。

    最后,我倾向于认为ADL类似于HDFS,而U-SQL/ADLA类似于Spark。

    HTH公司

        2
  •  2
  •   Kobi Lehrer    7 年前

    根据定义,数据湖是一个巨大的存储库,在需要之前以本机格式存储原始数据。湖泊采用平面结构,而不是嵌套式结构( http://searchaws.techtarget.com/definition/data-lake ). 湖中的数据具有唯一的ID和元数据标记,用于查询。

    因此,数据湖可以存储结构化、半结构化和非结构化数据。结构化数据将包括包含行和列的表中的SQL数据库类型数据。半结构化将是CSV文件等。非结构化数据是任何事物——电子邮件、PDF、视频、二进制。正是ID和元数据标签帮助用户查找湖中的数据。

    为了保持数据湖的可管理性,成功的实施者定期对数据湖中的数据进行轮换、归档或清除。否则它就会变成一些人所说的“数据沼泽”,基本上就是数据的墓地。

    传统的ELT过程更适合于数据仓库,因为它们更结构化,并且仓库中的数据是有目的的。数据湖的结构较少,更适合其他方法,如ELT(提取、加载、转换),因为它们存储的原始数据仅按每个查询分类。(参见此 article 由Panopoly讨论ELT与ETL。)例如,您希望查看2010年的客户数据。当你查询一个数据湖时,你会得到从会计数据、CRM记录到2010年的电子邮件的所有信息。在将数据转换为可用格式之前,您无法分析这些数据,其中公共分母是customers+2010。

        3
  •  0
  •   jatal    7 年前


    (可能与使用Excel使用数据有关:))

    我经历了几次从RDBMS到Hadoop/Azure平台的迁移,最终涉及到成本/预算和用例:

    1) 将传统报告系统移植到新体系结构

    2) 将使用数据来推动业务价值的最终用户技能集

    3) 最终用户正在处理的数据类型

    4) 支持最终用户的技术支持人员

    5) 迁移的目的是降低基础设施支持成本还是启用新功能。

    以上几个方面的更多细节:

    遗留报告系统通常基于一些分析软件或国产系统,随着时间的推移,这些系统对干净、受管理、结构化、强类型的数据有着根深蒂固的期望。关闭后端系统通常需要发布完全相同的结构,以避免替换整个分析解决方案和代码库。

    技能集也是一个主要关注点,因为你经常谈论成百上千习惯使用Excel的人,其中一些人了解SQL。根据我的经验,很少有最终用户,也很少有与我共事过的分析师知道如何编程。统计学家和数据工程师倾向于R/Python。具有Java/C经验的开发人员倾向于使用Scala/Python。

    数据类型是决定什么工具适合这项工作的关键。。。但是这里有一个很大的冲突,因为有些人知道如何使用“数据矩形”(例如数据帧/表格数据),有些人知道如何使用其他格式。然而,我仍然发现,人们在需要操作结果时,会不断地将半结构化/二进制/非结构化数据转换为表。。。因为Spark很难找到支持。