---
title: "命令行应用示例 - 导数工具 V4.3.3.1 | OceanBase 文档中心"
description: 命令行应用示例 本文为您介绍一些常用或应用于复杂场景的命令行使用示例。 --auto-column-mapping 默认情况下，OBLOADER 要求源文件的列和目标表完全一致，OBLOADER 根据列顺序导入数据，并不识别列名。 如果源文件与目标表的列数量存在差异，您可以使用参数 --auto-column-map…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*eAudSaxX8P0AAAAAAAAAAAAADiGDAQ/original) 导数工具V 4.3.3.1

# 命令行应用示例

更新时间：2026-04-07 17:00:52

[编辑](https://github.com/oceanbase/obdumper-loader-doc/edit/V4.3.3.1/zh-CN/500.OBLOADER/310.scene-example.md)  

本文为您介绍一些常用或应用于复杂场景的命令行使用示例。

## --auto-column-mapping

默认情况下，OBLOADER 要求源文件的列和目标表完全一致，OBLOADER 根据列顺序导入数据，并不识别列名。

如果源文件与目标表的列数量存在差异，您可以使用参数 `--auto-column-mapping`，OBLOADER 将根据列名称进行匹配导入，并忽略无法匹配的列。

### 场景描述

将 `/home/admin/obloader` 目录下的表 `my_table` 的 CSV 文件（列名分别为 `col1`、`col2` 和 `col3`）导入至数据库 `obloader` 中，目标表的列名分别为 `col2`、`col3` 和 `col4`。

- 源端表数据

  ```shell
  $cat my_table.csv
  'col1','col2','col3'
  'data1',1,'desc1'
  'data2',2,'desc2'
  'data3',3,'desc3'

  ```
 - 目标端表结构

  ```shell
  obclient [obloader]> DESC my_table;
  +-------+--------------+------+------+---------+-------+
  | Field | Type         | Null | Key  | Default | Extra |
  +-------+--------------+------+------+---------+-------+
  | col2  | int(11) | YES  |      | NULL    |       |
  | col3  | varchar(255)     | YES  |      | NULL    |       |
  | col4  | varchar(255) | YES  |      | NULL    |       |
  +-------+--------------+------+------+---------+-------+
  3 rows in set (0.035 sec)

  ```

### 不使用 --auto-column-mapping

1. 执行导入命令。

   ```shell
   ./bin/obloader -h xxx.xxx.xxx.xxx -P xxxx -u test@mysql -D obloader --csv --table 'my_table' -f /home/admin/obloader

   ```
 2. 等待命令执行结果，预期会报错。

   #### 注意

   对于列名不一致但列类型一致的情况，可能会忽略列名进行导入，导致出现数据不一致的问题。
 3. 在数据库查询目标表数据，未成功导入。

   ```sql
   SELECT * FROM my_table;

   ```

   查询结果如下：

   ```sql
   obclient [obloader]> SELECT * FROM my_table;
   Empty set (0.035 sec)

   ```

### 使用 `--auto-column-mapping`

1. 执行导入命令。

   ```shell
   ./bin/obloader -h xxx.xxx.xxx.xxx -P xxxx -u test@mysql -D obloader --csv --table 'my_table' --auto-column-mapping -f /home/admin/obloader

   ```
 2. 等待命令执行结果，预期会导入源端 `col2` 和 `col3` 列的数据，`col4` 列会填充默认值。
 3. 在数据库查询目标表数据，符合预期。

   ```

   查询结果如下：

   ```sql
   obclient [obloader]> SELECT * FROM my_table;
   +------+---------+------+
   | col2 | col3    | col4 |
   +------+---------+------+
   |    1 | desc1   | NULL |
   |    2 | desc2   | NULL |
   |    3 | desc3   | NULL |
   +------+---------+------+
   3 rows in set (0.033 sec)

   ```

## --source-type hive

默认情况下，OBLOADER 根据源文件结构，按照列的位置和目标表映射并导入数据。在 Hive 场景下，如果源文件与目标表的列数量存在差异，您可以使用参数 `--source-type hive` 将源路径的目录名解析为列值，并搭配参数 `--auto-column-mapping` 解决列位置不对齐的问题。

### 场景描述

将 Hive 存储的 Parquet 格式的文件 `part-00439-07417647-caab-4f87-823d-7c6dfac92211.c000`（列名分别为 id、name、age 和 city）导入至数据库 `obloader` 的目标表 `tbl1`（列名分别为 id、name、age、city 和 dt）中。

- 源端 Hive 数据存放结构

  ```shell
  hive/
  └── tbl1
      └── dt=2025
          └── part-00439-07417647-caab-4f87-823d-7c6dfac92211.c000

  ```sql
  CREATE TABLE tbl1 (
      id INT NOT NULL,          -- 用户 ID
      name VARCHAR(50) NOT NULL, -- 用户姓名
      age INT NOT NULL,         -- 用户年龄
      city VARCHAR(50) NOT NULL, -- 用户所在城市
      dt YEAR NOT NULL          -- 年份
  ) PARTITION BY RANGE (dt) (  
  PARTITION P0 VALUES LESS THAN (2024),
  PARTITION P1 VALUES LESS THAN (MAXVALUE)
  );

  ```

### 实现方式

在导入命令中使用参数 `--source-type hive` 识别源端目录 `dt=2025` 为一列，并搭配参数 `--auto-column-mapping` 用于根据列名进行映射。

   ```shell
   ./bin/obloader --user root@sun2 -h xxx.xxx.xxx.xxx -P xxxx -D obloader --table 'tbl1'  --truncate-table --par -f ${hdfs_path} -pxxxx --log-path /tmp/ --source-type hive --auto-column-mapping --file-regular-expression '.*'

   ```
 2. 等待命令执行结果，预期源端的目录名 `dt=2025` 会导入至目标端表的 `dt` 列中。
 3. 在数据库查询目标表数据，符合预期。

   ```sql
   obclient [obloader]> SELECT * FROM tbl1;
   +------+---------+------+-------------+------+
   | id   | name    | age  | city        | dt   |
   +------+---------+------+-------------+------+
   |    1 | Alice   |   25 | New York    | 2025 |
   |    2 | Bob     |   30 | Los Angeles | 2025 |
   |    3 | Charlie |   35 | Chicago     | 2025 |
   |    4 | David   |   40 | Houston     | 2025 |
   |    5 | Eve     |   45 | Phoenix     | 2025 |
   +------+---------+------+-------------+------+

   ```

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