[英]PubSub Publisher Ingestion
我正在嘗試將 avro 文件從 gcs 提取到 pubsub。 有一些外行的問題。
在 PubSub 中將文件作為消息發送有哪些選項? 比如我們可以將整個文件作為消息發送,還是只能迭代並發送文件的內容? 如果我們發送整個文件,如何在消費者端重建文件? 如果可以提供任何示例代碼,這將很有幫助。
我們什么時候必須序列化和反序列化消息? 這個序列化的目的是什么?
我確實做了我的研究,但提出了這個問題。 如果有人可以幫助更好地理解這一點。 我看到的例子是在迭代中發送文件內容而不是整個文件 blob。
Byte Array or String
(大多數語言都有編碼 ADT)。 這對於大文件可能效率不高,在這種情況下,您可以將文件分成塊(例如,512 KB 大小),然后將它們作為字節 Stream 消息發送。來自 GCP Publisher 示例的直接示例。
# The `topic_path` method creates a fully qualified identifier # in the form `projects/{project_id}/topics/{topic_id}` topic_path = publisher.topic_path(project_id, topic_id) for n in range(1, 10): data_str = f"Message number {n}" # Data must be a bytestring data = data_str.encode("utf-8") # When you publish a message, the client returns a future. future = publisher.publish(topic_path, data) print(future.result()) print(f"Published messages to {topic_path}.") ```
如何在消費者端重建文件?
像將其編碼到生產者中一樣進行解碼。 這里不是真正的痛點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.