Flink 实践教程:入门(11):MongoDB Sink 的使用

作者:腾讯云流计算 Oceanus 团队

流计算 Oceanus 简介  

流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。

实践教程:Flink 实践教程:入门(11):MongoDB Sink 的使用 - 云+社区 - 腾讯云icon-default.png?t=M4ADhttps://cloud.tencent.com/developer/video/31225?sharedUid=1077144

本文将您详细介绍如何将数据写入 MongoDB。

前置准备

创建流计算 Oceanus 集群

进入 Oceanus 控制台 [1],点击左侧【集群管理】,点击左上方【创建集群】,具体可参考 Oceanus 官方文档 创建独享集群 [2]。

创建 MongoDB 实例

进入 MongoDB 控制台 [3],点击左上角【新建实例】创建实例,具体参考 创建 MongoDB 实例 [4]。作者这里使用 shell 的方式,下载 MongoDB 客户端的方式连接数据库,更多连接信息请参考 连接 MongoDB 实例[5]

## 安装 MongoDB 客户端
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-XX.XX.XX.tgz
## 解压
tar zxvf mongodb-linux-x86_64-rhel70-XX.XX.XX.tgz
## 进入目录
cd mongodb-linux-x86_64-rhel70-XX.XX.XX
## 连接客户端
./bin/mongo -umongouser -p***** 172.xx.xx.xx:27017/admin

请注意选择与云数据库 MongoDB 服务并与 CVM 操作系统相匹配的版本

流计算 Oceanus 作业

1. 创建 Source

CREATE TABLE datagen_source_table (
  id INT,
  name STRING
) WITH (
   'connector' = 'datagen',
   'rows-per-second'='1'  -- 每秒产生的数据条数
);

2. 创建 Sink

CREATE TABLE mongodb (
  id INT,
  name STRING
) WITH (
 'connector' = 'mongodb',   -- 固定值 'mongodb'
 'database' = 'testdb',     --数据库名
 'collection' = 'test1',    --数据集合
 'uri' = 'mongodb://mongouser:******@xx.xx.xx.xx:27017/admin', -- MongoDB连接串
 'batchSize' = '5'          -- 每次批量写入的条数
);

3. 编写业务 SQL

INSERT INTO mongodb
SELECT * from datagen_source_table;

总结

本实例演示如何使用 Datagen 生成随机数据,然后使用 MongoDB Sink 连接器将数据写入 MongoDB。

目前仅 Flink 1.13 支持 Sink 端写入,其他版本暂不支持。  MongoDB Sink 暂不支持 Upsert。  MongoDB 的 User 必须拥有 database 的写权限。 

参考链接

[1] Oceanus 控制台:https://console.cloud.tencent.com/oceanus/overview  

[2] 创建独享集群:https://cloud.tencent.com/document/product/849/48298

[3] MongoDB 控制台:https://console.cloud.tencent.com/mongodb#/  

[4] 创建 MongoDB 实例:https://cloud.tencent.com/document/product/240/3551  

[5] 连接 MongoDB 实例:https://cloud.tencent.com/document/product/240/7092  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值