Flink的cdas什么时候计划支持写数据到odps 2.0事务表呀?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
目前,Flink的CDAS(CREATE DATABASE AS)语句并不支持将数据写入到MaxCompute的ODPS 2.0事务表(Transaction Table 2.0)。根据现有资料,CDAS主要支持特定的上下游存储连接器,而MaxCompute的ODPS 2.0事务表并未明确列为其支持的目标端之一。
不过,您可以通过使用新版Flink Connector来实现将Flink数据写入MaxCompute的ODPS 2.0事务表。新版Flink Connector已经支持将数据写入MaxCompute的普通表和Delta Table类型表,并且支持Upsert模式,能够按主键和分区字段进行分组写入,这与ODPS 2.0事务表的功能需求高度契合。
如果您需要将Flink数据写入ODPS 2.0事务表,可以参考以下步骤:
在MaxCompute中创建目标事务表,确保表属性中启用了事务功能。例如:
SET odps.sql.type.system.odps2=true;
DROP TABLE IF EXISTS mf_flink_upsert;
CREATE TABLE mf_flink_upsert (
c1 INT NOT NULL,
c2 STRING,
gt TIMESTAMP,
PRIMARY KEY (c1)
)
PARTITIONED BY (ds STRING)
TBLPROPERTIES (
"transactional" = "true",
"write.bucket.num" = "64",
"acid.data.retain.hours" = "12"
);
此表启用了事务功能,并支持主键约束和分区字段。
在Flink SQL中创建临时表,并指定目标为MaxCompute的ODPS 2.0事务表。例如:
CREATE TEMPORARY TABLE test_c_d_g (
c1 INT,
c2 VARCHAR,
gt TIMESTAMP,
ds VARCHAR,
PRIMARY KEY(c1) NOT ENFORCED
) PARTITIONED BY (ds)
WITH (
'connector' = 'maxcompute',
'table.name' = 'mf_flink_upsert',
'sink.operation' = 'upsert',
'odps.access.id' = 'your_access_id',
'odps.access.key' = 'your_access_key',
'odps.end.point' = 'http://service.cn-beijing.maxcompute.aliyun.com/api',
'odps.project.name' = 'your_project_name',
'upsert.write.bucket.num' = '64'
);
通过Flink SQL插入数据,并在MaxCompute中验证写入结果。例如:
INSERT INTO test_c_d_g
SELECT c1, c2, gt, date_format(gt, 'yyyyMMddHH') AS ds
FROM fake_src_table;
随后,在MaxCompute中查询数据以确认写入成功:
SELECT * FROM mf_flink_upsert WHERE ds = '2023061517';
截至目前,官方文档中尚未提及CDAS对ODPS 2.0事务表的支持计划。如果您希望了解具体的开发进度或提出需求,建议通过以下方式获取更多信息: 1. 联系阿里云技术支持:提交工单或咨询技术支持团队,询问CDAS对ODPS 2.0事务表的支持计划。 2. 关注产品更新公告:定期查看MaxCompute和Flink相关产品的更新日志,了解新功能的发布动态。
虽然CDAS目前不支持写入ODPS 2.0事务表,但通过新版Flink Connector,您可以高效地实现这一需求。如果未来CDAS增加对ODPS 2.0事务表的支持,预计会在官方文档或产品公告中公布。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。