当构建ETL/ELT进程将数据加载到Snowflake数据仓库(在Azure上运行)时,我正在寻找关于在哪里最好地存储ETL元数据的建议。ETL元数据指的是编排复杂ETL工作流所需的表格数据--例如,进程之间的依赖关系,每个进程的当前状态信息,我们可以在ETL中用来迭代要加载的各个数据源的“控制表”,等等。
在构建于SQL Server之上的遗留EDW中,我们不仅可以使用SQL Server存储实际的EDW数据,还可以存储上述元数据,并且我们可以使用T-SQL来访问/操作这些元数据。
在新的实现中,Snowflake似乎不是存储ETL元数据的合适位置。然而,仅仅为了这个目的而旋转另一个云数据库(例如Azure SQL数据库)将需要大量的额外费用。我们正计划使用Talend Cloud来构建我们的新ETL,但我想无论选择哪种集成工具,存储ETL元数据的问题都会出现。
任何反馈都是非常感谢的!
发布于 2021-01-08 14:34:17
我还将Snowflake用于所有EDW元数据。在我看来,这里没有理由不使用Snowflake。
关于这个主题,我非常喜欢的另一件事是使用Snowsight可视化关于我的元数据的一些统计数据,并创建类似于“控制仪表板”的东西。
发布于 2021-01-12 07:01:02
我觉得这个问题更多的是关于解决方案架构,而不是任何技术问题,可能不适合堆栈溢出。
我遇到过这个问题,一般来说,这是一个与无服务器数据库相关的有趣问题。传统上,在规划数据库时,至少在我的经验中,这些ETL需求中的大多数都是由您加载到的数据库吸收的,这通常是一个成本和访问的问题。
使用无服务器计算,您可以尽可能地对您的工作负载进行批量处理,以便在不为浪费的计算时间买单的情况下,允许服务尽可能多地停机。
这就是你提出的ETL DB的用武之地,我不想遇到雪花,除非我不得不这样做,因为它会让我花费更多,所以我如何才能在不使用雪花的情况下廉价地创建一个DB来解决这个需求。
我的建议是考虑您将存储什么类型的数据,以及它是什么格式。
如果键值对有效,请查看https://aws.amazon.com/dynamodb/ (在性价比方面非常难以超越,这是我解决问题的方法)
此外,如果您的数据本质上并不复杂,那么可以考虑在ETL服务器上使用平面文件或SQLite之类的东西。
https://stackoverflow.com/questions/65623501
复制相似问题