腾讯云云函数实战教程 - SCF + PostgreSQL 导入 Ckafka 数据
文档简介:
背景说明:
云函数是腾讯云为企业和开发者们提供的无服务器执行环境,具体可参见 云函数 SCF,下文简称 SCF。
云数据仓库 PostgreSQL 常见使用场景是将消息中间件的信息同步到云数据仓库 PostgreSQL 后再进行分析。本文提供了一种便捷的方法,即使用 SCF 实时的将 Kafka 中的数据导入到云数据仓库 PostgreSQL,无需用户维护任何服务。
背景说明
云函数是腾讯云为企业和开发者们提供的无服务器执行环境,具体可参见 云函数 SCF,下文简称 SCF。
云数据仓库 PostgreSQL 常见使用场景是将消息中间件的信息同步到云数据仓库 PostgreSQL 后再进行分析。本文提供了一种便捷的方法,即使用 SCF 实时的将 Kafka 中的数据导入到云数据仓库 PostgreSQL,无需用户维护任何服务。
注意事项
该云函数目前只能将腾讯云 CKafka 作为数据源,暂不支持自建 Kafka。
该云函数目前只能将云数据仓库 PostgreSQL 中的某一张表作为目标数据写入,如果有多张表的需求,请按照以下流程每张表创建对应的云函数。
使用步骤
步骤一:创建函数
1. 登录 云函数控制台,选择左侧导航中的函数服务。
2. 在函数服务页面,单击新建。
3. 在新建页面模糊搜索中搜索关键词“ckafka数据加载到CDW”,设置完成后单击下一步。


4. 进入函数配置页面后,配置参数请参见 创建函数,其中环境配置和网络配置,配置参数如下:
环境配置
内存:根据实际运行情况来设置,默认为128MB。当导入过程中出现内存不足的问题时,需调大内存。
环境变量:
参数
|
必填
|
说明
|
DB_DATABASE
|
是
|
数据库名
|
DB_HOST
|
是
|
如果函数是私有网络,并且和云数据仓库 PostgreSQL 是在同一子网,则可以填写云数据仓库 PostgreSQL 的内网 IP,否则需要填写外网 IP,并配置白名单
|
DB_USER
|
是
|
用户名
|
DB_PASSWORD
|
是
|
用户密码
|
DB_SCHEMA
|
是
|
模式名,如果创建表的时候未指定,通常是 public
|
DB_TABLE
|
是
|
表名
|
DB_PORT
|
否
|
云数据仓库 PostgreSQL 端口,默认为5436
|
MSG_SEPARATOR_ASCII
|
否
|
CKafka 中数据分隔符的 ASCII 码,默认为39(逗号),由于逗号经常会出现在业务数据中,这里建议使用11(Vertical tab)
|
MSG_NULL
|
否
|
CKafka 中消费的 NULL 值,默认是 \N
|
REPLACE_0X00
|
否
|
是否替换字符串中的0x00,默认是0(1表示替换)
|
ENABLE_DEBUG
|
否
|
是否打印错误的记录,默认是0(1表示打印)
|
ENABLE_COS
|
否
|
是否把未写入记录转储到 COS 上,默认是0(1表示转储)
|
COS_SECRET_ID
|
否
|
访问 COS 的 secret_id,ENABLE_COS 如果为1,该字段必填
|
COS_SECRET_KEY
|
否
|
访问 COS 的 secret_key,ENABLE_COS 如果为1,该字段必填
|
COS_BUCKET
|
否
|
COS 存储桶名称,ENABLE_COS 如果为1,该字段必填
|
STATMENT_TIMEOUT
|
否
|
查询超时时间,默认是50秒
|
网络配置
私有网络:建议启用私有网络,并将 VPC 和子网的值配置的与云数据仓库 PostgreSQL 相同。

下图为云数据仓库 PostgreSQL 对应的值。

公网访问:建议同时启用公网访问。
5. 单击完成。
步骤二:配置触发器
1. 登录 云函数控制台,选择左侧导航中的函数服务。
2. 在函数服务页面,选择函数名,进入函数详情页面。
3. 选择左侧导航中的触发管理,单击创建触发器。
4. 在创建触发器页面,将触发方式设置为“Ckafka 触发”,如下图所示:

关于触发器参数配置可以参考 CKafka 触发器。
5.单击提交。