---
title: "obcdc 支持增量旁路导入 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: obcdc 支持增量旁路导入 背景信息 OceanBase 数据库在 V4.3.0 支持了全量旁路导入，但是这种方式在导入效率上不是最优的，所以 OceanBase 数据库在 V4.3.1 推出了增量旁路导入功能。简单来说，增量旁路导入是一种 Replace 的语义，即不检查主键冲突，对于包含重复主键的行直接替换，详…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.4

# obcdc 支持增量旁路导入

更新时间：2024-11-26 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/1500.Components-and-Tools/300.data-integrate/400.cdc/600.cdc-incremental-bypass-import.md)  

## 背景信息

OceanBase 数据库在 V4.3.0 支持了全量旁路导入，但是这种方式在导入效率上不是最优的，所以 OceanBase 数据库在 V4.3.1 推出了增量旁路导入功能。简单来说，增量旁路导入是一种 Replace 的语义，即不检查主键冲突，对于包含重复主键的行直接替换，详细介绍可参见 [旁路导入概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573613)。obcdc 需要适配增量旁路导入的语义，将导入的数据输出给下游。

#### 注意

obcdc 暂不支持同步全量旁路导入的数据，仅支持同步增量旁路导入的数据。

## 使用限制

obcdc 暂不支持同步行外存储的 lob 数据。

## 前提条件

- 已部署 V4.3.1 或之后版本的 obcdc。
 - 已部署 OceanBase 数据库，且 OceanBase 数据库为 V4.3.1 或之后版本。

## 操作步骤

假设 OceanBase 集群中存在表 `A` 和表 `B` 两张表，其中，表 `A` 中的数据如下，`col1` 列为主键：

```shell
+------+------+
| col1 | col2 |
+------+------+
|    1 |   11 |
|    2 |   22 |
+------+------+

```

表 `B` 中的数据如下，`col1` 列为主键：

```shell
+------+------+
| col1 | col2 |
+------+------+
|    1 |   21 |
|    3 |   33 |
+------+------+

```

此处以将表 `B` 的数据增量旁路导入到表 `A` 中为例，介绍 obcdc 侧的操作。

1. 修改配置文件

   在配置文件中配置 `enable_direct_load_inc` 为 `1`，表示开启同步增量旁路导入，配置文件中配置项的详细介绍可参见 [obcdc 配置项说明](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576795)。

   ```shell
   enable_direct_load_inc=1

   ```
 2. 使配置生效

   `enable_direct_load_inc` 为重启生效的配置项，根据使用 obcdc 的方法不同，使其生效方式有如下两种。

      - 将 obcdc 接入自己的数据消费链路进行使用时，可重新编译运行所写代码，相关操作可参见 [obcdc 开发说明](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574552)。
      - 通过 obcdc_tailf 使用 obcdc 功能时，可重新执行 obcdc_tailf 命令，示例如下：

       ```shell
       [admin@test oceanbase]$ ./bin/obcdc_tailf -f libobcdc.conf -D output.txt

       ```

       此处以配置文件相对路径为 `libobcdc.conf`，将输出数据保存到 `output.txt` 文件为例，需根据实际情况替换配置文件和输出数据文件。obcdc_tailf 命令的详细介绍可参见 [obcdc_tailf](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574551)。
 3. 登录 OceanBase 数据库，执行增量旁路导入

   ```shell
   obclient [test]> insert /*+ enable_parallel_dml parallel(2) direct(true, 0, 'inc_replace') */ into A select * from B;

   ```

   命令的详细介绍可参见 [使用 INSERT INTO SELECT 语句旁路导入数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573612)。
 4. 查看执行结果

   ```shell
   obclient [test]> SELECT * FROM A;

   ```

   输出如下，表 `B` 的数据已经被导入到表 `A`

   ```shell
   +------+------+
   | col1 | col2 |
   +------+------+
   |    1 |   21 |
   |    2 |   22 |
   |    3 |   33 |
   +------+------+

   ```
 5. 查看 obcdc 的输出

   OceanBase 数据库中执行增量旁路导入后，obcdc 会输出的对应信息给下游，简略示例如下：

   ```shell
   [EBGIN];
   [EPUT] column_name:col1, old_value:1, new_value:1, column_name: col2, new_value: 21;
   [EPUT] column_name:col1, old_value:3, new_value:3, column_name: col2, new_value: 33;
   [ECOMMIT];

   ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
