---
title: "使用 LOAD DATA 语句旁路导入数据 - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: 使用 LOAD DATA 语句旁路导入数据 LOAD DATA 语句通过 Hint 使用 direct 来表示是否走旁路导入。 使用限制 不能两个语句同时写一个表，因为导入的过程中会先加表锁。 不支持在触发器（Trigger）使用。 支持 lob 类型，但是性能比较差， lob 会走原来事务写入数据的路径。 不能在多…
---
切换语言

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

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

# 使用 LOAD DATA 语句旁路导入数据

更新时间：2024-09-10 11:46:15

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/500.data-migration/1100.bypass-import/200.use-load-data-statement-to-bypass-import-data.md)  

`LOAD DATA` 语句通过 Hint 使用 `direct` 来表示是否走旁路导入。

## 使用限制

- 不能两个语句同时写一个表，因为导入的过程中会先加表锁。
 - 不支持在触发器（Trigger）使用。
 - 支持 `lob` 类型，但是性能比较差，`lob` 会走原来事务写入数据的路径。
 - 不能在多行事务中运行。
 - OceanBase 数据库 V4.1.0 版本不建议开启 Online 统计信息收集，建议在 `LOAD DATA` 完成后，手动收集统计信息。有关收集统计信息的详细信息，请参见 [在线统计信息收集](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001702474) 和 [手动统计信息收集](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000023375)。

## 语法

```sql
LOAD DATA /*+ direct(need_sort,max_error) parallel(N) */ INFILE 'file_name' ...

```

更多 `LOAD DATA` 语法的信息，请参见 [LOAD DATA](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001701133)。

**参数解释：**

| 参数 | 描述 |
| --- | --- |
| direct | 表示走旁路导入。 |
| need_sort | 表示是否需要 OceanBase 数据库对数据进行排序。   值为 `bool` 类型：   - `true`：表示需要排序。 - `false`：表示不需要排序。 |
| max_error | 表示最大的容忍的错误的行数。值为 `INT` 类型，超过这个数值`LOAD DATA` 会报失败。 |
| parallel(N) | 加载数据的并行度，必填项，取值是大于 1 的整数。 |

## 示例

1. 登录到要连接 OBServer 节点所在的机器，在 `/home/admin` 目录下创建测试数据。

   #### 说明

   OceanBase 数据库中的 `LOAD DATA` 语句仅支持加载 OBServer 节点本地的输入文件。因此，需要在导入之前将文件拷贝到某台 OBServer 上。

   ```shell
   [xxx@xxx /home/admin]# ssh admin@10.10.10.1

   [admin@xxx /home/admin]# vi tbl1.csv
   1,11
   2,22
   3,33

   ```
 2. 设置导入的文件路径。

   使用管理员用户（MySQL 模式：`root`；Oracle 模式：`SYS`）登录到租户，设置系统变量 `secure_file_priv`，配置导入或导出文件时可以访问的路径。

   #### 注意

   由于安全原因，只能使用通过本地连接的 Client 执行修改 `secure_file_priv` 的 SQL 语句。详细信息请参见 [secure_file_priv](https://www.oceanbase.com/docs/common-oceanbase-database-cn-0000000002183508)。

      1. 登录到要连接 OBServer 节点所在的机器。

        ```
      2. 连接租户 `mysql001`。

        V4.1.0 BP3 之前版本执行以下命令，使用 OBClient 客户端通过直连的方式连接租户 `mysql001`。

        ```shell
        obclient -h10.10.10.1 -P2881 -uroot@mysql001 -p****** -A

        ```

        V4.1.0 BP3 及之后版本执行以下命令，通过本地 Unix Socket 连接方式连接租户 `mysql001`。

        ```shell
        obclient -S /home/admin/oceanbase/run/sql.sock -uroot@mysql001 -p******

        ```
      3. 设置导入路径为 `/home/admin`。

        ```shell
        obclient [(none)]> SET GLOBAL secure_file_priv = "/home/admin";
        Query OK, 0 rows affected

        ```
 3. 重新连接数据库后，使用 `LOAD /*+ direct */ DATA` 语句导入数据。

   ```shell
   obclient [test]> CREATE TABLE tbl1(col1 INT PRIMARY KEY,col2 INT);
   Query OK, 0 rows affected

   obclient [test]> SELECT * FROM tbl1;
   Empty set

   obclient [test]> LOAD DATA /*+ direct(true,1024) parallel(16) */INFILE '/home/admin/tbl1.csv' INTO TABLE tbl1 FIELDS TERMINATED BY ',';
   Query OK, 3 rows affected
   Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

   obclient [test]> SELECT * FROM tbl1;
   +------+------+
   | col1 | col2 |
   +------+------+
   |    1 |   11 |
   |    2 |   22 |
   |    3 |   33 |
   +------+------+
   3 rows in set

   ```

## 相关文档

[使用 LOAD DATA 语句导入数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001697234)

 上一篇 下一篇 ![有帮助](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) 咨询热线
