在ETL作业中使用什么作为中介数据源?
What to use to serve as an intermediary data source in ETL job?
我正在创建一个使用各种来源并将数据发送到 Big Query 的 ETL 管道。对于我的用例,Talend 无法在一项工作中同时处理关系和非关系数据库组件,所以我目前是这样做的:
作业 1 -- 从源(SQL 服务器、API 等)获取数据,对其进行转换并将转换后的数据存储在分隔文件(文本或 csv)中
JOB 1 -- 将JOB 1中定界文件存储的转换后的数据作为源,根据big query转换后发送。
我正在使用分隔文本 file/csv 作为中间数据存储来实现 this.Since 数据的机密性很重要,解决方案也需要可扩展以处理数百万行,我应该使用什么作为这个中介来源。关系数据库会有帮助吗?或带分隔符的文件就足够了吗?或者我可以使用的其他任何东西?
PS- 我会在作业完成后立即删除这些文件,但担心安全问题直到作业 运行 秒,尽管 运行 在安全的云架构上。
请分享您对此的看法。
在数据仓库体系结构中,让暂存层持久化通常是一种很好的做法。这为您提供了除其他外,将数据沿袭追溯到源头的能力,能够在业务规则发生变化时从暂存点重新加载最终模型,以及全面了解数据从所有从着陆到报告的方式。
我还会考虑更改您的设计,让暂存层在 BigQuery 中保留在它自己的数据集下,而不是在处理后删除文件。
由于这只是 ETL/ELT 的操作层,而不是最终用户报告,因此您只需为大部分存储付费。
现在,回到您的问题并考虑您当前的设计,您可以在 Google 云存储中创建一个存储桶并将您的转换文件保存在那里。它提供您需要的所有安全和加密,并且您可以完全控制权限。 Big Query 似乎与 Cloud Storage 一起工作,您甚至可以直接从 Cloud Console 从存储文件加载 table。
考虑到所有因素,无论您选择哪个方向,我都建议您存储用于加载 table 的文件,而不是删除它们。迟早会在你的最终报告中出现 questions/failures,你可能需要追根溯源进行调查。
简而言之。该过程将是。
|---Extract and Transform---|----Load----|
Source ---> Cloud Storage --> BigQuery
我会使用 ELT 而不是 ETL:按原样加载源数据并使用 SQL 函数在 Bigquery 中进行转换。
这允许潜在地重塑数据(转换为数组),过滤掉 columns/rows 并在一个 SQL 中执行转换。
我正在创建一个使用各种来源并将数据发送到 Big Query 的 ETL 管道。对于我的用例,Talend 无法在一项工作中同时处理关系和非关系数据库组件,所以我目前是这样做的:
作业 1 -- 从源(SQL 服务器、API 等)获取数据,对其进行转换并将转换后的数据存储在分隔文件(文本或 csv)中 JOB 1 -- 将JOB 1中定界文件存储的转换后的数据作为源,根据big query转换后发送。
我正在使用分隔文本 file/csv 作为中间数据存储来实现 this.Since 数据的机密性很重要,解决方案也需要可扩展以处理数百万行,我应该使用什么作为这个中介来源。关系数据库会有帮助吗?或带分隔符的文件就足够了吗?或者我可以使用的其他任何东西?
PS- 我会在作业完成后立即删除这些文件,但担心安全问题直到作业 运行 秒,尽管 运行 在安全的云架构上。 请分享您对此的看法。
在数据仓库体系结构中,让暂存层持久化通常是一种很好的做法。这为您提供了除其他外,将数据沿袭追溯到源头的能力,能够在业务规则发生变化时从暂存点重新加载最终模型,以及全面了解数据从所有从着陆到报告的方式。
我还会考虑更改您的设计,让暂存层在 BigQuery 中保留在它自己的数据集下,而不是在处理后删除文件。
由于这只是 ETL/ELT 的操作层,而不是最终用户报告,因此您只需为大部分存储付费。
现在,回到您的问题并考虑您当前的设计,您可以在 Google 云存储中创建一个存储桶并将您的转换文件保存在那里。它提供您需要的所有安全和加密,并且您可以完全控制权限。 Big Query 似乎与 Cloud Storage 一起工作,您甚至可以直接从 Cloud Console 从存储文件加载 table。
考虑到所有因素,无论您选择哪个方向,我都建议您存储用于加载 table 的文件,而不是删除它们。迟早会在你的最终报告中出现 questions/failures,你可能需要追根溯源进行调查。
简而言之。该过程将是。
|---Extract and Transform---|----Load----|
Source ---> Cloud Storage --> BigQuery
我会使用 ELT 而不是 ETL:按原样加载源数据并使用 SQL 函数在 Bigquery 中进行转换。
这允许潜在地重塑数据(转换为数组),过滤掉 columns/rows 并在一个 SQL 中执行转换。