我知道这个问题每隔几个月就会再次提出,但是很难找到和比较GCP技术。
当前,我们执行数据提取并将数据加载到BQ,我们正在寻找一种在云中转换数据的方法(ELT
过程的最后一步)。
最明显的方法是在计划的作业中运行查询(无论如何执行INSERT INTO
查询),这应该是最快的方法,也是我认为最便宜的方法,但是主要缺点是它很难维护此类代码(查询组),它不是经过编译的代码,我们无法在代码中找到列/表的引用,无法使用断点进行调试,甚至无法定位错误。这就是寻找更好解决方案的原因。
Dataproc
和Dataflow
似乎是正确的解决方案,根据google文档,它们既可以处理批处理,又可以通过代码维护,但是我认为我们更喜欢Dataproc
,因为它会更具有成本效益(满足我们的需求)(与BEAM
相比,Spark
并没有任何优势,但是如果您认为我错了,请告诉我为什么!请记住,我们不需要流媒体选项)。
我发现此有用的文档:Migrating data warehouses to BigQuery: Reporting and analysis
在对Dataproc
进行了一些研究之后,我发现,为了从BQ读取和写入BQ,我们应该使用Apache Spark SQL connector for Google BigQuery,并且我们将有一个简单的API用于数据操作(例如过滤,分区等) )。
还有其他我想念的东西吗?您能建议其他可以做到的技术/谷歌产品吗?
DataFusion
尚未成熟,我们对其进行了一些处理,并且有很多错误。
我知道这个问题有点模糊,但是似乎互联网上几乎没有关于执行ELT的最佳实践的文章(它总是ETL和Airflow ..),我只是在寻找一种方法来转换表格/ BQ,而无需编写数百个查询。