Flink CDC 里non-cdb database和cdb database有什么区别?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC的上下文中,non-cdb database
和 cdb database
的区别主要与数据库的架构模式相关,尤其是在Oracle数据库中。以下是两者的详细区别和适用场景:
CDB 是 Oracle 12c 及更高版本引入的一种多租户架构。在这种架构中,一个 CDB 包含多个 PDB(Pluggable Database),每个 PDB 是一个独立的逻辑数据库实例。CDB 本身是一个容器,用于管理多个 PDB。
特点:
配置示例: 如果使用 Flink CDC 连接 Oracle CDB,通常需要在连接器配置中指定 PDB 名称。例如:
CREATE TABLE source_table (
id INT,
name STRING,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'oracle-cdc',
'hostname' = '<hostname>',
'port' = '<port>',
'username' = '<username>@<PDB_NAME>', -- 指定 PDB 名称
'password' = '<password>',
'database-name' = '<CDB_NAME>',
'schema-name' = '<schema_name>',
'table-name' = '<table_name>'
);
适用场景:
Non-CDB 是 Oracle 12c 之前的传统数据库架构。在这种架构中,每个数据库是一个独立的实体,没有多租户的概念。
特点:
配置示例: 如果使用 Flink CDC 连接 Non-CDB 数据库,配置会更加直接。例如:
CREATE TABLE source_table (
id INT,
name STRING,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'oracle-cdc',
'hostname' = '<hostname>',
'port' = '<port>',
'username' = '<username>',
'password' = '<password>',
'database-name' = '<database_name>',
'schema-name' = '<schema_name>',
'table-name' = '<table_name>'
);
适用场景:
特性 | CDB | Non-CDB |
---|---|---|
架构模式 | 多租户架构,支持多个 PDB | 单一数据库实例 |
资源管理 | 资源共享,提高利用率 | 独立资源,利用率较低 |
配置复杂度 | 需要指定 PDB 名称 | 直接连接数据库,无需额外配置 |
适用版本 | Oracle 12c 及以上 | Oracle 11g 及以下 |
隔离性 | 逻辑隔离,适合多租户场景 | 完全独立,适合单一业务场景 |
通过上述内容,您可以根据实际的数据库架构选择合适的配置方式,并确保 Flink CDC 能够正确捕获数据变更。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。