Flink CDC中这里的维度表是 CDC捕获变化一次它就重新查一次还是:只查开始的那一次?我是SQL。
CREATE TABLE ord_retail_order_bill (
bill_no STRING,
source_bill_no STRING,
complete_date TIMESTAMP,
create_date TIMESTAMP,
member_id INT,
sale_type INT,
remarks STRING,
member_phone STRING,
lastchanged TIMESTAMP,
is_web STRING,
channel_id INT,
shop_id INT,
type STRING,
status INT,
id BIGINT ,
PRIMARY KEY(id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = '192.168.173.136',
'port' = '3306',
'username' = '**',
'password' = '**',
'database-name' = 'e3plus_order',
'table-name' = 'ord_retail_order_bill',
'scan.startup.mode' = 'initial'
);
CREATE TABLE ord_retail_ord_goods_detail (
qty INT,
tax_inclusive_price decimal(12, 4),
total_tax_price decimal(12, 4),
price_standard decimal(12, 4),
remark STRING,
shop_staff_code STRING,
shop_staff_name STRING,
promotion_id STRING,
promotion_no STRING,
promotion_name STRING,
retail_order_bill_id BIGINT,
goods_id INT,
id BIGINT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.173.136:3306/e3plus_order?characterEncoding=UTF-8',
'table-name' = 'ord_retail_ord_goods_detail',
'username' = '**',
'password' = '**'
);
CREATE TABLE bas_channel (
CODE STRING,
NAME STRING,
ID INT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.173.136:3306/e3plus_support?characterEncoding=UTF-8',
'username' = '**',
'password' = '**',
'table-name' = 'bas_channel'
);
CREATE TABLE gds_btgoods (
code STRING,
name STRING,
brandid BIGINT,
id INT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.173.136:3306/e3plus_goods?characterEncoding=UTF-8',
'username' = '**',
'password' = '**',
'table-name' = 'gds_btgoods'
);
CREATE TABLE bas_brand (
code STRING,
id INT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.173.136:3306/e3plus_goods?characterEncoding=UTF-8',
'username' = '**',
'password' = '**',
'table-name' = 'bas_brand'
);
CREATE TABLE ord_retail_return_bill (
id BIGINT ,
bill_no STRING ,
relate_order_bill_no STRING ,
complete_date STRING ,
create_date STRING ,
member_id STRING ,
remark STRING ,
member_phone STRING ,
is_web STRING ,
channel_id INT ,
shop_id INT ,
type STRING ,
status INT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.173.136:3306/e3plus_order?characterEncoding=UTF-8',
'username' = '**',
'password' = '**',
'table-name' = 'ord_retail_return_bill'
);
CREATE TABLE ord_retail_return_gds_de (
id BIGINT ,
qty INT,
tax_inclusive_price DOUBLE,
total_tax_price DOUBLE,
market_price DOUBLE,
remark STRING,
shop_staff_code STRING,
shop_staff_name STRING,
return_bill_id BIGINT,
source_detail_id BIGINT,
goods_id INT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192
在 Flink CDC 中,维度表的更新方式取决于具体的实现和配置。通常情况下,维度表在 CDC 捕获到变化时会进行重新查询,以获取最新的数据。
当 CDC 捕获到维度表的变化时,Flink CDC 会根据配置的逻辑对维度表进行更新。这可能包括重新查询整个维度表或仅查询发生变化的部分数据(增量更新)。
一般来说,维度表在每次变化时都会重新查询,以确保获取最新的数据。这是为了保持维度表与源系统的同步,并提供准确的数据。
但是,具体的实现和配置可能因使用的 CDC 工具、数据库类型等而有所不同。某些情况下,可以通过配置选项来指定是否只查询开始的那一次。这通常用于处理历史数据加载或初始化的场景。
如果你正在使用特定的 CDC 工具或库,建议查看其文档或配置文件,以了解维度表更新的具体行为和选项。
在 Flink CDC 中,维度表的更新方式取决于您所使用的具体实现方式。一种常见的实现方式是使用全量表(Full Table)和增量表(Delta Table)来更新维度表。
在这种实现方式中,全量表包含了目标表的所有数据,而增量表则包含了源表中发生变化的数据。在 Flink CDC 中,可以通过配置 CDC Connector 的参数来指定使用全量表还是增量表来更新维度表。
如果使用全量表更新维度表,每次 CDC Connector 将全量表同步到目标表时,都会重新查询一次维度表的数据。因此,每次更新维度表都需要重新查询一次。
如果使用增量表更新维度表,CDC Connector 只会同步源表中发生变化的数据到增量表中,然后使用增量表来更新维度表。在这种情况下,CDC Connector 不需要重新查询维度表的数据,只需要使用增量表中的数据来更新维度表即可。
"你这个没有使用维表join,直接用的表join,那几个定义为维表的source 都已经finish了,正常应该是持续running。FOR SYSTEM_TIME AS OF xx AS 这样的语法。
此回答整理至钉群“Flink CDC 社区”。此回答整理至钉群“Flink CDC 社区”"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。