Tôi muốn chèn dữ liệu thư PubSub đến từ một chủ đề vào bảng BigQuery bằng Google Cloud Dataflow. Mọi thứ hoạt động tốt nhưng trong bảng BigQuery tôi có thể thấy các chuỗi không đọc được như "߈ ". Đây là đường ống dẫn của tôi:Chèn thư PubSub vào BigQuery thông qua Google Cloud Dataflow
p.apply(PubsubIO.Read.named("ReadFromPubsub").topic("projects/project-name/topics/topic-name"))
.apply(ParDo.named("Transformation").of(new StringToRowConverter()))
.apply(BigQueryIO.Write.named("Write into BigQuery").to("project-name:dataset-name.table")
.withSchema(schema)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED))
và chức năng StringToRowConverter đơn giản của tôi là:
class StringToRowConverter extends DoFn<String, TableRow> {
private static final long serialVersionUID = 0;
@Override
public void processElement(ProcessContext c) {
for (String word : c.element().split(",")) {
if (!word.isEmpty()) {
System.out.println(word);
c.output(new TableRow().set("data", word));
}
}
}
}
Và đây là thông điệp mà tôi gửi thông qua một yêu cầu POST:
POST https://pubsub.googleapis.com/v1/projects/project-name/topics/topic-name:publish
{
"messages": [
{
"attributes":{
"key": "tablet, smartphone, desktop",
"value": "eng"
},
"data": "34gf5ert"
}
]
}
tôi đang thiếu gì ? Cảm ơn bạn!
[This] (https://github.com/bomboradata/pubsub-to-bigquery) là một mã nguồn mở bạn có thể sử dụng để chuyển hướng pub/sub tới BQ – PUG