Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过将PubSub消息插入BigQuery

通过将PubSub消息插入BigQuery
EN

Stack Overflow用户
提问于 2015-09-17 06:15:52
回答 2查看 3.1K关注 0票数 8

我想使用将来自主题的PubSub消息数据插入到BigQuery表中。一切都很好,但是在BigQuery表中,我可以看到诸如“߈���”这样的不可读字符串。这是我的管道:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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))

我的简单StringToRowConverter函数是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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));
      }
    }
}
}

这是我通过邮件请求发送的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST https://pubsub.googleapis.com/v1/projects/project-name/topics/topic-name:publish
{
 "messages": [
  {
   "attributes":{
"key": "tablet, smartphone, desktop",
"value": "eng"
   },
   "data": "34gf5ert"
  }
 ]
}

我遗漏了什么?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-17 08:04:52

根据https://cloud.google.com/pubsub/reference/rest/v1/PubsubMessage,发布消息的JSON有效负载是base64编码的。默认情况下,数据流中的PubsubIO使用字符串UTF8编码器。您提供的示例字符串"34gf5ert",当base64 64解码,然后解释为一个UTF-8字符串时,准确地给出了"߈���“。

票数 9
EN

Stack Overflow用户

发布于 2016-02-08 04:14:35

这就是我如何解压我的公共信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public void processElement(ProcessContext c) {

    String json = c.element();

    HashMap<String,String> items = new Gson().fromJson(json, new TypeToken<HashMap<String, String>>(){}.getType());
    String unpacked = items.get("JsonKey");

希望它对你有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32632602

复制
相关文章
React消息订阅与发布pubsub
PubSub模式(也称为观察者模式或事件订阅模式)是一种软件设计模式,它通过解耦发送者和接收者之间的关系,实现了一对多的通信方式。在React中,PubSub模式可以帮助组件之间进行松耦合的通信,避免直接引用和依赖其他组件。
堕落飞鸟
2023/05/20
1.1K0
不使用 MQ 如何实现 pub/sub 消息消费场景?
在配置中心中,有一个经典的 pub/sub 场景:某个配置项发生变更之后,需要实时的同步到各个服务端节点,同时推送给客户端集群。
Coder小黑
2020/12/15
1.2K0
弃用 Lambda,Twitter 启用 Kafka 和数据流新架构
在 Twitter 上,我们每天都要实时处理大约 4000 亿个事件,生成 PB 级的数据。我们使用的数据的事件源多种多样,来自不同的平台和存储系统,例如 Hadoop、Vertica、Manhattan 分布式数据库、Kafka、Twitter Eventbus、GCS、BigQuery 和 PubSub。
深度学习与Python
2022/03/22
1.7K0
弃用 Lambda,Twitter 启用 Kafka 和数据流新架构
Redis pub/sub
Redis 中的pub/sub是指消息的发布订阅,是用来解耦系统的,以消息生产者和消息消费者的角色来定义两个系统.
一个架构师
2022/06/20
3780
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列
使用 Redis 实现消息队列 普通的订阅 基于模式(pattern)的发布/订阅 看下源码实现 分析下源码实现 stream 的结构 streamCG 消费者组 streamConsumer 消费者结构 分析下源码实现 基于List的消息队列 基于 Streams 的消息队列 发布订阅 总结 参考 ◆使用 Redis 实现消息队列 Redis 中也是可以实现消息队列 不过谈到消息队列,我们会经常遇到下面的几个问题 1、消息如何防止丢失; 2、消息的重复发送如何处理; 3、消息的顺序性问题; 关于 mq
IT大咖说
2022/03/21
1.2K0
谷歌BigQuery ML VS StreamingPro MLSQL
今天看到了一篇 AI前线的文章谷歌BigQuery ML正式上岗,只会用SQL也能玩转机器学习!。正好自己也在力推 StreamingPro的MLSQL。 今天就来对比下这两款产品。
用户2936994
2018/08/27
1.4K0
Wikipedia pageview数据获取(bigquery)
维基百科pageview数据是Wikimedia技术团队所维护的访问量数据集。该数据集自2015年五月启用,其具体的pageview定义为对某个网页内容的请求,会对爬虫和人类的访问量进行区分,粒度为小时级别,如下图:
千灵域
2022/06/17
2.7K0
Wikipedia pageview数据获取(bigquery)
通过post向mysql插入数据
        前面简单介绍了php操作mysql的方法,接下来通过post的方式获取的数据插入mysql!
十月梦想
2018/08/29
1.5K0
聊聊claudb的pubsub command
claudb-1.7.1/src/main/java/com/github/tonivade/claudb/command/pubsub/PublishCommand.java
code4it
2020/09/04
3290
BigQuery:云中的数据仓库
原文地址:https://dzone.com/articles/bigquery-data-warehouse-clouds
Steve Wang
2018/06/04
5.1K0
BigQuery:云中的数据仓库
谷歌又傻X之BigQuery ML
最近工作忙,又努力在写干活,没怎么关注互联网行业的发展。周末好不容易补补课,就发现了谷歌在其非常成功的云产品BigQuery上发布了BigQuery ML。说白了就是利用SQL语句去做机器学习。
用户1564362
2018/08/17
1K0
谷歌又傻X之BigQuery ML
Redis命令详解:Pub/Sub
列出当前活跃的频道(至少有一个订阅者)。不过不指定pattern,则列出全部频道。
Jackeyzhe
2020/03/11
7990
RabbitMQ Pub/Sub(发布订阅)模式
这个模式和之前的相比还是有一点的变化,我们还是去官网去看这个模型图。首先是必要的生产者和消费者,中间的X代表交换机,这里我们会用到交换机,然后这里有两个队列,然后在分发给两个消费者。
兰舟千帆
2022/08/03
5790
RabbitMQ Pub/Sub(发布订阅)模式
Redis | Redis Pub/Sub相关命令
Redis 不但支持多种数据类型,能满足很多的业务场景,而且 Redis 还支持类似 Pub/Sub (发布与订阅) 这样的高级功能。如下图。
码农UP2U
2020/09/29
1.2K0
Redis | Redis Pub/Sub相关命令
前端PubSub模式简单实现
PubSub是一种设计模式,中文叫发布订阅模式,简单来说就是消息发布者不直接向订阅者发布消息,而是发布到中介,而中介根据不同主题对消息进行过滤,并通知对该主题感兴趣的订阅者。该模式在前端现在很火的组件
IMWeb前端团队
2017/12/29
7380
聊聊claudb的pubsub command
claudb-1.7.1/src/main/java/com/github/tonivade/claudb/command/pubsub/PublishCommand.java
code4it
2020/08/29
4430
聊聊claudb的pubsub command
Redis-发布订阅(Pub/Sub)
Redis发布订阅(Pub/Sub)是一种消息通信模式,发布者(Pub)发布消息,订阅者(Sub)接收消息。订阅者可以订阅任意数量的频道。 应用
唔仄lo咚锵
2020/09/15
8340
Diagrams 系统架构图绘制工具: 使用 Python 绘制漂亮的系统架构图
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc... It also supports On-Premise nodes, SaaS and major Programming frameworks and languages.
一个会写诗的程序员
2022/09/16
2.3K0
Diagrams 系统架构图绘制工具: 使用 Python 绘制漂亮的系统架构图
前端PubSub模式简单实现
PubSub是一种设计模式,中文叫发布订阅模式,简单来说就是消息发布者不直接向订阅者发布消息,而是发布到中介,而中介根据不同主题对消息进行过滤,并通知对该主题感兴趣的订阅者。该模式在前端现在很火的组件化开发十分常用,因为该模式松耦合,易于扩展的优点正式组件化开发所需要的。
IMWeb前端团队
2019/12/04
6990
WPF 通过 RawInput 获取触摸消息
触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息。而触摸则没有直接的 Hook 的方法。如果期望自己的应用,可以在没有作为前台获取焦点的应用时,可以抓取到全局的触摸消息,抓取到其他应用程序的触摸输入,那么可以尝试使用 RawInput 的方式。通过 RawInput 的方式,可以让一个没有任何激活的、触摸直接命中的窗口的应用程序接收到全局的所有触摸消息
林德熙
2023/04/07
9021

相似问题

将数据从pubsub插入到bigquery时PartialFailureError

10

GCP -从PubSub到BigQuery的消息

13

Pubsub to Bigquery

23

使用数据流推送pubsub消息的Bigquery

12

通过PubSub后端到BigQuery“无法确定积压”

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文