成功的 ETL 自动化:库、评论论文、用例

数据挖掘 数据清理 正常化
2022-02-13 09:45:53

我很好奇是否有人可以指出一些成功的提取、转换、加载 (ETL)自动化库、论文或用于有些不均匀数据的用例?

我很想看到任何现有的处理可扩展 ETL 解决方案的库。理想情况下,它们能够在 4196 个内核(256 个 I2.8xlarge AWS 机器)上运行数十或数百小时,从 100 个不均匀的数据集中摄取 1-5 PB 的数据,其中包含 500 亿条记录。我的意思是理想的,因为我很想知道一个具有 10% 功能的系统来帮助减少我们团队的 ETL 负载。

否则,我将有兴趣查看有关该主题的任何书籍或评论文章或高质量的研究论文。我进行了文献综述,只发现质量较低的会议论文集有可疑的说法。

我看过一些广告宣传的商业产品,但同样,这些产品在没有太多证据证明其功效的情况下提出了可疑的说法。

数据集是矩形的,可以采用固定宽度文件、CSV、TSV 和 PSV 的形式。字段数量从 6 到 150 不等,主要包含有关实体的基于文本的信息。基数对于个人信息(地址)很大,但对于特定细节(如汽车类型(面包车、SUV、轿车))则较小。

通常需要从缩写数据到人类可读格式的映射,将记录转换为first-normal-form也是如此。

对于行家来说可能很明显,我正在寻找超越确定性方法的技术,使用某种半监督或监督学习模型。

我知道这是一项艰巨的任务,但我很想在开始一些 ETL 自动化任务之前评估最先进的技术,以帮助指导我们将目光投向多远。

谢谢你的帮助!

2个回答

我认为您不会找到任何可以检查您所有要求的东西,但这里有一些需要注意的事项:

  • 自动 ETL 映射:有一个名为Karma的工具由南加州大学信息科学研究所的一个团队启动。它从您的 ETL 映射中学习并帮助自动化未来的映射。它是我所知道的唯一有助于自动化 ETL 过程的开源工具,但如果还有其他工具,我会非常感兴趣。
  • 大规模 ETL:有很多工具可以用于您正在寻找的可扩展性。我个人可以推荐看一下StormSparkStorm 非常适合将处理步骤连接在一起,只要有足够的资源,就可以对流数据进行近乎实时的计算。不太相似的 Spark 有一个具有类似用例的流组件,但如果您需要进行 ETL 的数据是固定的要处理一次的数据集,那么标准 Spark 可能会更好地满足您的需求。
  • 数据存储:您可能还需要考虑所有这些数据在 ETL 生命周期中的存储位置。您可能需要像Kafka这样的东西来处理大量数据流。或者也许HDFS来存储文件的静态集合。

几乎任何 ETL 工具都可以管理固定宽度、CSV、TSV 或 PSV 输入,并且几乎任何工具都应该能够管理 100B 记录。问题的限制部分实际上与您的目标格式是什么以及您需要什么磁盘吞吐量有关。

i2.4xLarge 的预期吞吐量为 250mb/s。如果 8xLarge 是 32 台机器的两倍,那么您将看到在约 138 小时内写入 PB 的能力。更不用说首先引入源数据的时间和带宽。除非我的数学完全不正确,否则这意味着 30 PB 可以在大约 6 个月内写入磁盘。

您希望将这么多数据标准化或转换为人类可读格式(它只会变得更大),这似乎很奇怪,更奇怪的是您希望利用机器学习作为该大小的转换/负载的一部分.

您的解决方案需要在本地硬件上,以保持成本合理。

我不能推荐一个系统(商业或开源),它可以在几天内扩展到在 30 PB 上执行这种 ETL 所需的程度。在这种规模下,我会研究大量内存、内存支持/前端 SSD 以及 FPGA 上的定制开发以进行实际转换。当然,如果我对写入时间的数学计算是错误的,那么整个答案都是无效的。