google-cloud-platform - BigQuery 到 Kafka 主题
问题描述
我有一个加载到 BigQuery 的数据,我需要将 BigQuery 连接到 Kafka 作为每天一次将数据发布到 Kafka 主题的源。由于没有 BigQuery 源连接器,那么将 BigQuery 数据发布到 Kafka 主题的最佳方式是什么。
解决方案
有多种选择。我将使用在Google Dataflow上运行的批处理Apache Beam管道来完成此任务。它有 Java 和 Python SDK。
例如,在 Java 中,您可以使用BigQueryIO读取数据,然后使用KafkaIO写入数据。
像这样的东西:
//read rows from BQ
PCollection<TableRow> weatherData = pipeline.apply(
BigQueryIO.readTableRows().from("clouddataflow-readonly:samples.weather_stations"));
// some data processing steps
// write pairs to Kafka topic
PCollection<KV<Long, String>> kvColl = ...;
kvColl.apply(KafkaIO.<Long, String>write()
.withBootstrapServers("broker_1:9092,broker_2:9092")
.withTopic("results")
.withKeySerializer(LongSerializer.class)
.withValueSerializer(StringSerializer.class)
);
推荐阅读
- python - 如何在 tkinter 中设置 scrollText 边框?
- spring - 如何防止每个测试类启动spring boot应用程序
- javascript - ReactJS Object.keys().length 返回值的数量而不是键数组的长度
- python - 如果字符串匹配,Pandas Dataframe 删除行
- reactjs - 使用基本模型在 ag-grid 中禁用字母排序
- html - 如何更改滚动时的导航栏更改?
- typescript - “同态映射类型”是什么意思?
- javascript - 将高度设置为 100% 时,React Apexchart 未采用其父高度
- laravel - Laravel - 仅检索存在并匹配条件的关系
- angular - Ionic Angular 中的传单地图渲染问题