从 HBase 到 OceanBase 的迁移路径:Flink 驱动的实时数据写入

你正在为 HBase 运维成本高昂而发愁吗?

你是否在寻找实时数据流的最佳落地存储方案?

Flink + OceanBase OBKV-HBase,可能是你一直在等的答案!

为什么你需要关注这个方案?

场景一:HBase 迁移的"最后一公里"

如果你的团队正在考虑从 HBase 迁移到 OceanBase,但担心:

•❌ 现有的 Flink 实时数据流如何无缝迁移?

•❌ HBase API 兼容性如何保证?

•❌ 迁移后吞吐、延迟和稳定性能否满足线上要求?

这个方案正是为你准备的! OceanBase OBKV-HBase 完全兼容 HBase API,配合 Flink 连接器,可让你平滑的进行迁移。

场景二:实时数仓建设中的"数据入湖"

如果你正在构建实时数仓,需要:

•✅ 将 Kafka 中的实时数据流写入宽表存储

•✅ 支持高并发写入,并满足近实时查询与分析需求

•✅ 保证数据一致性和可靠性

Flink + OceanBase 组合能完美解决你的痛点! Flink 负责流式处理与流批统一计算,OceanBase 负责在线存储与查询,满足实时数仓的持续写入和近实时分析场景。

场景三:AI/LLM 应用中的数据存储

在 AI 时代,越来越多的应用需要:

•✅ 实时接入并更新特征数据,支撑高并发在线查询

•✅ 支持半结构化数据建模,快速适配业务字段演进

•✅ 构建稳定的数据处理链路,保障时效性与可用性

OceanBase 的 HBase 模式天然支持灵活的表结构,配合 Flink 的实时处理能力,可以轻松构建 AI 应用的数据底座。

核心优势:为什么选择 OceanBase OBKV-HBase?

🚀 兼容 HBase API

对于熟悉 HBase 的开发者,迁移成本几乎为零!现有的 HBase 应用只需修改连接配置,即可无缝切换到 OceanBase。

⚡ 高性能实时写入

支持缓冲批量写入,可根据业务场景灵活调整吞吐和延迟:

•批处理场景:高吞吐数据导入

•实时场景:延迟低至 毫秒级

🔄 流批一体

既支持 Flink 的流式写入(实时数据处理),也支持批处理写入(历史数据迁移),一套系统满足多种需求。

🛡️ 企业级可靠性

•完善的容错机制,支持自动重试

•OceanBase 原生高可用,支持多副本高可用与强一致能力

🔧 灵活的连接方式

•Config URL 模式:私有化部署,直连 OceanBase 集群

•ODP 模式:公有云服务,通过代理连接,配置更简单

现在开始!👇🏻

Apache Flink 是一个开源的流处理框架,专为处理实时数据流和批处理任务而设计,能够提供低延迟、高吞吐的数据处理能力。OBKV-HBase 是 OceanBase 提供的兼容 HBase 接口的宽表数据库,专注于海量半结构化/结构化数据的存储和极致的访问性能。

为了让 Flink 能够将数据写入 OBKV-HBase,OceanBase 提供了专门的 Flink OBKV HBase 连接器(flink-connector-obkv-hbase)。该连接器基于 obkv-hbase-client-java 实现,支持通过 Flink SQL 将流式或批量数据实时写入 OceanBase 的 HBase 模式表中。

本文将详细介绍如何使用 Flink SQL 客户端和 OBKV HBase 连接器完成数据写入任务,包括环境准备、配置说明、使用示例和最佳实践。

什么是 OBKV HBase

OBKV HBase 是 OceanBase 提供的一种兼容 HBase API 的数据访问方式。它允许您:

•使用 HBase 的表模型和数据结构(rowkey、column family、qualifier)

•通过 HBase 客户端 API 访问存储在 OceanBase 中的数据

•将现有的 HBase 应用平滑迁移到 OceanBase

在 OceanBase 中,HBase 表通过特殊的命名规范进行映射:每个 column family 对应一张物理表,表名格式为 hbase_table_name$family_name。

前提条件

在使用 OBKV HBase 连接器前,确认以下信息:

软件版本要求

软件 版本要求 说明
Apache Flink 1.15 或更高版本 推荐使用 Flink 1.15+
JDK 8 或更高版本 建议使用 JDK 8 或 JDK 11
OceanBase 4.2.1及以上版本

环境准备

1.下载连接器 JAR 包您需要下载包含所有依赖的 SQL JAR 文件 flink-sql-connector-obkv-hbase-${version}.jar:

◦Maven Central(正式版本):https://repo1.maven.org/maven2/com/oceanbase/flink-sql-connector-obkv-hbase/

◦Sonatype Snapshots(快照版本):https://s01.oss.sonatype.org/content/repositories/snapshots/com/oceanbase/flink-sql-connector-obkv-hbase/

2.部署 JAR 包到 Flink将下载的 JAR 文件放置到 Flink 的 lib 目录下:

复制代码
cp flink-sql-connector-obkv-hbase-${version}.jar $FLINK_HOME/lib/
  1. 准备连接信息

根据您的连接方式,准备以下信息:

Config URL 模式(直连):

▪OceanBase 集群的 Config URL(可通过 SHOW PARAMETERS LIKE 'obconfig_url' 查询)

▪非 sys 租户的用户名和密码(格式:user@tenant#cluster)

▪sys 租户的用户名和密码

ODP 模式(代理连接):

▪ODP 的 IP 地址

▪ODP 的 RPC 端口(默认 2885)

▪非 sys 租户的用户名和密码(格式:user@tenant#cluster)

  1. 在 OceanBase 中创建表在使用连接器前,需要先在 OceanBase 中创建对应的 HBase 表结构。

快速开始

本节将指导您快速上手使用 OBKV HBase 连接器,完成第一次数据写入。

步骤 1:创建 HBase 表

在 OceanBase 中,HBase 表的每个 column family 对应一张物理表。表名格式为 hbase_table_name$family_name。

例如,要创建一个名为 user_info 的 HBase 表,包含 basic 和 contact 两个 column family:

复制代码
-- 连接到 OceanBase 数据库
USE your_database;
-- 创建 basic family 对应的表
CREATE TABLE `user_info$basic` (
  `K` varbinary(1024) NOT NULL,    -- rowkey
  `Q` varbinary(256)  NOT NULL,    -- qualifier(列名)
  `T` bigint(20)      NOT NULL,    -- timestamp
  `V` varbinary(1024) DEFAULT NULL, -- value(列值)
  PRIMARY KEY (`K`, `Q`, `T`)
);
-- 创建 contact family 对应的表
CREATE TABLE `user_info$contact` (
  `K` varbinary(1024) NOT NULL,
  `Q` varbinary(256)  NOT NULL,
  `T` bigint(20)      NOT NULL,
  `V` varbinary(1024) DEFAULT NULL,
  PRIMARY KEY (`K`, `Q`, `T`)
);

表结构说明:

•K:rowkey,即 HBase 中的行键

•Q:qualifier,即 column family 中的列名

•T:timestamp,时间戳

•V:value,列的值

部署完 JAR 包后,需要启动 Flink 集群:

复制代码
# 进入 Flink 安装目录
cd $FLINK_HOME
# 启动 Flink 集群(包括 JobManager 和 TaskManager)
./bin/start-cluster.sh

启动成功后,您可以访问 Flink Web UI 验证集群状态:

•默认地址:http://localhost:8081

•您应该能看到 JobManager 和至少一个 TaskManager 正在运行。

常见问题排查:

如果启动失败,可以检查日志:

复制代码
# 查看 JobManager 日志
tail -f $FLINK_HOME/log/flink-*-standalonesession-*.log
# 查看 TaskManager 日志
tail -f $FLINK_HOME/log/flink-*-taskexecutor-*.log

使用 SQL Client 来执行 SQL 语句并写入数据:

复制代码
# 进入 Flink 安装目录(如果还未在该目录)
cd $FLINK_HOME
# 启动 SQL Client
./bin/sql-client.sh

成功启动后,您将看到 Flink SQL Client 的交互式命令行界面:

复制代码
▒▓██▓██▒
                               ▓████▒▒█▓▒▓███▓▒
                            ▓███▓░░        ▒▒▒▓██▒  ▒
                          ░██▒   ▒▒▓▓█▓▓▒░      ▒████
                          ██▒         ░▒▓███▒    ▒█▒█▒
                            ░▓█            ███   ▓░▒██
                              ▓█       ▒▒▒▒▒▓██▓░▒░▓▓█
                            █░ █   ▒▒░       ███▓▓█ ▒█▒▒▒
                            ████░   ▒▓█▓      ██▒▒▒ ▓███▒
                         ░▒█▓▓██       ▓█▒    ▓█▒▓██▓ ░█░
                   ▓░▒▓████▒ ██         ▒█    █▓░▒█▒░▒█▒
                  ███▓░██▓  ▓█           █   █▓ ▒▓█▓▓█▒
                ░██▓  ░█░            █  █▒ ▒█████▓▒ ██▓░▒
               ███░ ░ █░          ▓ ░█ █████▒░░    ░█░▓  ▓░
              ██▓█ ▒▒▓▒          ▓███████▓░       ▒█▒ ▒▓ ▓██▓
           ▒██▓ ▓█ █▓█       ░▒█████▓▓▒░         ██▒▒  █ ▒  ▓█▒
           ▓█▓  ▓█ ██▓ ░▓▓▓▓▓▓▓▒              ▒██▓           ░█▒
           ▓█    █ ▓███▓▒░              ░▓▓▓███▓          ░▒░ ▓█
           ██▓    ██▒    ░▒▓▓███▓▓▓▓▓██████▓▒            ▓███  █
          ▓███▒ ███   ░▓▓▒░░   ░▓████▓░                  ░▒▓▒  █▓
          █▓▒▒▓▓██  ░▒▒░░░▒▒▒▒▓██▓░                            █▓
          ██ ▓░▒█   ▓▓▓▓▒░░  ▒█▓       ▒▓▓██▓    ▓▒          ▒▒▓
          ▓█▓ ▓▒█  █▓░  ░▒▓▓██▒            ░▓█▒   ▒▒▒░▒▒▓█████▒
           ██░ ▓█▒█▒  ▒▓▓▒  ▓█                █░      ░░░░   ░█▒
           ▓█   ▒█▓   ░     █░                ▒█              █▓
            █▓   ██         █░                 ▓▓        ▒█▓▓▓▒█░
             █▓ ░▓██░       ▓▒                  ▓█▓▒░░░▒▓█░    ▒█
              ██   ▓█▓░      ▒                    ░▒█▒██▒      ▓▓
               ▓█▒   ▒█▓▒░                         ▒▒ █▒█▓▒▒░░▒██
                ░██▒    ▒▓▓▒                     ▓██▓▒█▒ ░▓▓▓▓▒█▓
                  ░▓██▒                          ▓░  ▒█▓█  ░░▒▒▒
                      ▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▓▓  ▓░▒█░
    ______ _ _       _       _____  ____  _         _____ _ _            _  BETA
   |  ____| (_)     | |     / ____|/ __ \| |       / ____| (_)          | |
   | |__  | |_ _ __ | | __ | (___ | |  | | |      | |    | |_  ___ _ __ | |_
   |  __| | | | '_ \| |/ /  \___ \| |  | | |      | |    | | |/ _ \ '_ \| __|
   | |    | | | | | |   <   ____) | |__| | |____  | |____| | |  __/ | | | |_
   |_|    |_|_|_| |_|_|\_\ |_____/ \___\_\______|  \_____|_|_|\___|_| |_|\__|
        Welcome! Enter 'HELP;' to list all available commands. 'QUIT;' to exit.
Flink SQL>

现在您可以在 SQL Client 中执行 SQL 语句了。

在 Flink SQL Client 中创建目标表,映射到 OceanBase 的 HBase 表:

复制代码
CREATE TABLE user_info_sink (
  rowkey STRING,
  basic ROW<name STRING, age INT>,
  contact ROW<email STRING, phone STRING>,
  PRIMARY KEY (rowkey) NOT ENFORCED
) WITH (
  'connector' = 'obkv-hbase',
  'odp-mode' = 'true',
  'odp-ip' = '127.0.0.1',
  'odp-port' = '2885',
  'schema-name' = 'your_database',
  'table-name' = 'user_info',
  'username' = 'user@tenant#cluster',
  'password' = 'your_password'
);

表定义说明:

•rowkey:对应 HBase 的 rowkey

•basic、contact:使用 Flink 的 ROW 类型表示 column family

•ROW 类型中的字段对应 HBase 的 qualifier

配置说明:

•connector:固定值 obkv-hbase

•odp-mode:设置为 true 启用 ODP 模式

•odp-ip 和 odp-port:ODP 的地址和端口

•schema-name:OceanBase 数据库名

•table-name:HBase 表名(不包含列族后缀)

•username 和 password:OceanBase 用户凭证

步骤 5:写入测试数据

复制代码
INSERT INTO user_info_sink VALUES 
  ('user001', ROW('Alice', 25), ROW('alice@example.com', '13800138000')),
  ('user002', ROW('Bob', 30), ROW('bob@example.com', '13900139000')),
  ('user003', ROW('Charlie', 28), ROW('charlie@example.com', '13700137000'));

执行成功后,您将看到类似如下的输出:

复制代码
[INFO] Submitting SQL update statement to the cluster...
[INFO] SQL update statement has been successfully submitted to the cluster:
Job ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

步骤 6:验证数据写入

在 OceanBase 客户端中查询验证数据是否成功写入:

复制代码
-- 连接到 OceanBase 数据库
USE your_database;
-- 查询 basic family 的数据
SELECT K, Q, V FROM `user_info$basic` ORDER BY K, Q;
-- 查询 contact family 的数据
SELECT K, Q, V FROM `user_info$contact` ORDER BY K, Q;

预期结果:

您应该能看到写入的数据,其中:

•K 列存储 rowkey

•Q 列存储 qualifier(如 name、age、email、phone)

•V 列存储对应的值

步骤 7:关闭和清理(可选)

完成测试后,您可以停止 Flink 集群:

复制代码
# 停止 Flink 集群
cd $FLINK_HOME
./bin/stop-cluster.sh

在 SQL Client 中退出:

复制代码
-- 在 SQL Client 中执行
QUIT;

或者直接按 Ctrl+D 退出 SQL Client。

配置参数

本节详细介绍 OBKV HBase 连接器支持的所有配置参数。

必需参数

参数名 类型 说明
connector String 连接器标识,固定值:obkv-hbase
username String 非 sys 租户的用户名,格式:user@tenant#cluster 例如:root@test#obcluster
password String 用户密码
schema-name String OceanBase 的数据库名(schema)
table-name String HBase 表名(不包含 family 后缀) 例如:表名为 user_info,实际物理表为 user_info、contact

连接模式参数

OBKV HBase 连接器支持两种连接模式,您需要根据实际情况选择其一。

Config URL 模式(直连)

适用于直接连接 OceanBase 集群的场景,需要提供 sys 租户的权限。

参数名 必需 类型 说明
url String OceanBase 集群的 Config URL 可通过 SHOW PARAMETERS LIKE 'obconfig_url' 查询 格式示例:http://127.0.0.1:8080/services?Action=ObRootServiceInfo\&ObCluster=obcluster
sys.username String sys 租户的用户名,通常为 root
sys.password String sys 租户的密码

ODP 模式(代理连接)

适用于通过 ODP(OceanBase Database Proxy)连接的场景,配置更简单,无需 sys 租户权限。

参数名 必需 默认值 类型 说明
odp-mode false Boolean 设置为 true 启用 ODP 模式
odp-ip String ODP 的 IP 地址
odp-port 2885 Integer ODP 的 RPC 端口

性能调优参数

参数名 必需 默认值 类型 说明
sync-write false Boolean 是否启用同步写入模式 - true:每条数据立即写入,不使用缓冲区 - false:使用缓冲区批量写入(推荐)
buffer-flush.interval 1s Duration 缓冲区刷新间隔 支持格式:1s、500ms、2m 设置为 0 关闭定时刷新
buffer-flush.buffer-size 1000 Integer 缓冲区大小(行数) 达到该行数后触发刷新
max-retries 3 Integer 写入失败时的最大重试次数
hbase.properties String 传递给 obkv-hbase-client-java 的额外配置 多个配置项用分号分隔 格式:key1=value1;key2=value2

使用示例

示例 1:使用 Config URL 模式连接

此示例展示如何通过 Config URL 直接连接 OceanBase 集群。

创建 OceanBase 表

复制代码
USE test;
CREATE TABLE `product$info` (
  `K` varbinary(1024) NOT NULL,
  `Q` varbinary(256)  NOT NULL,
  `T` bigint(20)      NOT NULL,
  `V` varbinary(1024) DEFAULT NULL,
  PRIMARY KEY (`K`, `Q`, `T`)
);
CREATE TABLE `product$price` (
  `K` varbinary(1024) NOT NULL,
  `Q` varbinary(256)  NOT NULL,
  `T` bigint(20)      NOT NULL,
  `V` varbinary(1024) DEFAULT NULL,
  PRIMARY KEY (`K`, `Q`, `T`)
);
复制代码
-- 创建目标表
CREATE TABLE product_sink (
  product_id STRING,
  info ROW<name STRING, category STRING>,
  price ROW<current DOUBLE, discount DOUBLE>,
  PRIMARY KEY (product_id) NOT ENFORCED
) WITH (
  'connector' = 'obkv-hbase',
  'url' = 'http://127.0.0.1:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster',
  'schema-name' = 'test',
  'table-name' = 'product',
  'username' = 'root@test#obcluster',
  'password' = '123456',
  'sys.username' = 'root',
  'sys.password' = 'admin123'
);
-- 插入数据
INSERT INTO product_sink VALUES 
  ('P001', ROW('Laptop', 'Electronics'), ROW(5999.00, 5499.00)),
  ('P002', ROW('Mouse', 'Electronics'), ROW(99.00, 79.00)),
  ('P003', ROW('Keyboard', 'Electronics'), ROW(299.00, 249.00));

示例 2:使用 ODP 模式连接

此示例展示如何通过 ODP 代理连接 OceanBase,配置更简洁。

复制代码
-- 创建目标表
CREATE TABLE order_sink (
  order_id STRING,
  customer ROW<name STRING, vip_level INT>,
  details ROW<amount DECIMAL(10,2), status STRING>,
  PRIMARY KEY (order_id) NOT ENFORCED
) WITH (
  'connector' = 'obkv-hbase',
  'odp-mode' = 'true',
  'odp-ip' = '192.168.1.100',
  'odp-port' = '2885',
  'schema-name' = 'ecommerce',
  'table-name' = 'orders',
  'username' = 'app_user@prod#cluster',
  'password' = 'app_password',
  'buffer-flush.buffer-size' = '2000',
  'buffer-flush.interval' = '2s'
);
-- 插入数据
INSERT INTO order_sink VALUES 
  ('O20250109001', ROW('Alice', 3), ROW(1580.50, 'PAID')),
  ('O20250109002', ROW('Bob', 1), ROW(299.00, 'PENDING')),
  ('O20250109003', ROW('Charlie', 2), ROW(899.99, 'PAID'));

示例 3:从 Kafka 实时写入

此示例展示如何从 Kafka 读取数据并实时写入 OceanBase OBKV HBase。

复制代码
-- 创建 Kafka 源表
CREATE TABLE kafka_source (
  user_id STRING,
  user_name STRING,
  age INT,
  email STRING,
  phone STRING,
  event_time TIMESTAMP(3),
  WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND
) WITH (
  'connector' = 'kafka',
  'topic' = 'user-events',
  'properties.bootstrap.servers' = 'localhost:9092',
  'properties.group.id' = 'flink-obkv-group',
  'scan.startup.mode' = 'latest-offset',
  'format' = 'json'
);
-- 创建 OBKV HBase 目标表
CREATE TABLE user_hbase_sink (
  user_id STRING,
  profile ROW<name STRING, age INT>,
  contact ROW<email STRING, phone STRING>,
  PRIMARY KEY (user_id) NOT ENFORCED
) WITH (
  'connector' = 'obkv-hbase',
  'odp-mode' = 'true',
  'odp-ip' = '127.0.0.1',
  'schema-name' = 'realtime_db',
  'table-name' = 'users',
  'username' = 'stream_user@tenant#cluster',
  'password' = 'password',
  'buffer-flush.interval' = '500ms',
  'buffer-flush.buffer-size' = '5000'
);
-- 实时写入数据
INSERT INTO user_hbase_sink
SELECT 
  user_id,
  ROW(user_name, age) AS profile,
  ROW(email, phone) AS contact
FROM kafka_source;

最佳实践

表结构设计建议

HBase 表命名规范

在 OceanBase 中,HBase 表通过特定的命名规范映射到物理表:

•格式:hbase_table_name$family_name

•示例:HBase 表 user_info 有两个 column family basic 和 contact,则在 OceanBase 中创建:

◦user_info$basic

◦user_info$contact

表结构固定格式

每个 family 对应的物理表结构是固定的:

复制代码
CREATE TABLE `table_name$family_name` (
  `K` varbinary(1024) NOT NULL,    -- rowkey
  `Q` varbinary(256)  NOT NULL,    -- qualifier
  `T` bigint(20)      NOT NULL,    -- timestamp
  `V` varbinary(1024) DEFAULT NULL, -- value
  PRIMARY KEY (`K`, `Q`, `T`)
);

在 Flink SQL 中,使用 ROW 类型表示 column family:

复制代码
CREATE TABLE flink_table (
  rowkey STRING,                           -- 主键
  family1 ROW<col1 INT, col2 STRING>,     -- column family 1
  family2 ROW<col3 DOUBLE, col4 BIGINT>,  -- column family 2
  PRIMARY KEY (rowkey) NOT ENFORCED
) WITH (...);

性能优化建议

1. 批量写入优化

根据不同场景调整缓冲区参数:

高吞吐批处理场景:

复制代码
'buffer-flush.buffer-size' = '5000',    -- 增大缓冲区
'buffer-flush.interval' = '5s'           -- 延长刷新间隔

低延迟实时场景:

复制代码
'buffer-flush.buffer-size' = '500',     -- 减小缓冲区
'buffer-flush.interval' = '500ms'        -- 缩短刷新间隔

超低延迟场景:

复制代码
'sync-write' = 'true'                   -- 启用同步写入,不使用缓冲

2. 并行度设置

根据数据量和集群资源设置合适的并行度:

复制代码
-- 在 Flink SQL Client 中设置
SET 'parallelism.default' = '4';

连接方式选择

连接器支持两种连接模式。具体的连接配置方式取决于您的部署类型:

•私有化部署:请使用下述的 Config URL 模式(直连)

•公有云 OBKV 服务:请使用下述的 ODP 模式(代理连接)

更多配置详情:关于 OBKV-HBase 客户端的详细连接参数配置,请参考 OceanBase 官方文档 - OBKV-HBase 客户端连接配置。

Config URL 模式(直连)

通过 Config URL 直接连接 OceanBase 集群,适用于私有化部署场景。需要提供:

•Config URL(通过 SHOW PARAMETERS LIKE 'obconfig_url' 查询)

•sys 租户的用户名和密码

•非 sys 租户的用户名和密码

ODP 模式(代理连接)

通过 ODP(OceanBase Database Proxy)连接,需要提供:

•ODP 的 IP 地址和 RPC 端口

•非 sys 租户的用户名和密码(无需 sys 租户信息)

错误处理和监控

1. 连接错误

问题:无法连接到 OceanBase

排查步骤:

•检查网络连通性

•验证用户名和密码

•确认 ODP IP 和端口是否正确

•检查 Config URL 格式是否正确

2. 写入失败

问题:数据写入失败

排查步骤:

•检查 Flink 任务日志

•确认表结构是否正确创建

•验证 schema-name 和 table-name 配置

•检查用户权限是否足够

3. 性能问题

问题:写入速度慢

优化建议:

•增大 buffer-flush.buffer-size

•延长 buffer-flush.interval

•提高 Flink 并行度

•检查网络带宽和 OceanBase 集群负载

参考信息

•OceanBase 官方文档:https://www.oceanbase.com/docs

•Flink 官方文档:https://nightlies.apache.org/flink/flink-docs-stable/

•项目 GitHub 仓库:https://github.com/oceanbase/flink-connector-oceanbase

•obkv-hbase-client-java:https://github.com/oceanbase/obkv-hbase-client-java

•Apache Flink Connector HBase:https://github.com/apache/flink-connector-hbase

如需更多帮助,请访问 OceanBase 问答社区。

鸣谢

本文在整理与编写过程中,特别感谢生态团队孙朝阳老师、赵明远老师的大力支持与专业指导。

两位老师在 Flink 与 OceanBase 生态集成、Connector 能力梳理以及场景化实践总结方面提供了大量专业建议和宝贵经验。

在此谨致诚挚谢意。


立即试用 OceanBase 企业版,体验国产数据库能力

180 天免费试用,零门槛开通

相关推荐
羽翼安全1 小时前
多摄像头接入检测 + 文件加密:监控室防拍照系统的两道设备与数据防线
运维·网络·人工智能
战族狼魂1 小时前
AI 量化交易完整学习路线(从零到实战)
人工智能·算法·chatgpt·大语言模型·ai提示词·ai工程化
AI客栈1 小时前
AI 驱动的云原生智能运维与自愈体系
人工智能
Python私教1 小时前
数字分身真的能帮你运营多平台账号吗?
人工智能
zhangfeng11331 小时前
大语言模型思维链技术研究报告 CoT | 推理模型 | 思维树 | 强化学习 | o1 / R1
人工智能·语言模型·自然语言处理
钓了猫的鱼儿1 小时前
基于深度学习+AI的棉叶蝉目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
人工智能·深度学习·目标检测
Resistance丶未来2 小时前
管控用量,降本增效,MAI Gateway:助力企业搭建 Tokens 统一管理体系
人工智能·大模型·api·claude·ai安全·魔芋ai·maigateway
GIS数据转换器2 小时前
无人机车载巡检系统
大数据·数据库·人工智能·数据挖掘·数据分析·无人机
逸模10 小时前
告别熬夜手工整理台账,逸模智能归集实现项目数据自动化存档
大数据·运维·人工智能·笔记·其他·信息可视化·自动化