我们目前使用Apache sqoop每天一次将包含CLOB列的oracle DB表导出到HDFS。作为该操作的一部分,我们首先将CLOB列映射到java字符串(使用——map-column-java),并将导入的数据保存为parquet格式。
计划从apache hive迁移到bigquery。我无法找到一种方法来得到这个表到bigquery,并希望帮助最好的方法来完成这项工作。
如果我们使用google数据流从oracle DB实时流到bigquery,你能告诉我clob列是否会正确流,因为它有一些格式错误的xml数据(接近xml结构,但可能在服从结构方面有一些差异)
我读到的另一个选项是将表提取为csv文件,并将其传输到GCS并让bigquery表在那里引用它。但是,由于CLOB列中的mydata非常大,并且中间有多个逗号和特殊字符,因此我认为解析或导出时会出现问题。有什么选择在镶木地板或ORC格式?
首选的方法是每天定时批量地从oracle上传到bigquery。感谢您对如何实现这一目标的任何建议。
我们可以通过Enterprise Flexter将CLOB数据从Oracle DB转换为所需的格式,如ORC, Parquet, TSV, Avro文件。此外,您可以参考如何使用混合数据管道本地连接器通过JDBC与Google Cloud Dataflow一起摄取本地Oracle数据。
从apache hive到bigquery的其他查询-
导入到BQ的最快方法是使用GCP资源。数据流是一种可扩展的读写解决方案。Dataproc也是另一个更灵活的选择,你可以使用更多的开源堆栈从Hive集群中读取数据。
你也可以使用这个Dataflow模板,这将需要在Dataflow工作者和Apache Hive节点之间直接建立连接。
还有一个插件用于将数据从Hive移动到BigQuery,它利用GCS作为临时存储,并使用BigQuery存储API将数据移动到BigQuery。
您也可以使用Cloud SQL将Hive数据迁移到BigQuery。