跳到主要内容

从本地文件加载

在将本地数据文件加载到 Databend 之前,上传到 Stage 或 Bucket 可能是不必要的。相反,您可以使用 Databend 原生 CLI 工具 BendSQL 直接导入数据。这简化了工作流程,并可以节省存储费用。

请注意,文件必须采用 Databend 支持的格式,否则数据无法导入。有关 Databend 支持的文件格式的更多信息,请参阅 输入 & 输出文件格式

教程 1 - 从本地文件加载

本教程以 CSV 文件为例,演示如何使用 BendSQL 从本地源导入数据到 Databend。

开始之前

下载并保存示例文件 books.csv 到本地文件夹。该文件包含两条记录:

books.csv
Transaction Processing,Jim Gray,1992
Readings in Database Systems,Michael Stonebraker,2004

步骤 1. 创建数据库和表

❯ bendsql
root@localhost:8000/default> CREATE DATABASE book_db;

root@localhost:8000/default> USE book_db;

root@localhost:8000/book_db> CREATE TABLE books
(
title VARCHAR,
author VARCHAR,
date VARCHAR
);

CREATE TABLE books (
title VARCHAR,
author VARCHAR,
date VARCHAR
)

步骤 2. 将数据加载到表中

使用以下命令发送加载数据请求:

❯ bendsql --query='INSERT INTO book_db.books VALUES;' --format=csv --data=@books.csv
备注

确保您能够直接从本地 BendSQL 连接到 Databend 的后端对象存储。 如果不能,则需要指定 --set presigned_url_disabled=1 选项以禁用预签名 URL 功能。

步骤 3. 验证加载的数据

root@localhost:8000/book_db> SELECT * FROM books;

┌───────────────────────────────────────────────────────────────────────┐
│ title │ author │ date │
│ Nullable(String) │ Nullable(String) │ Nullable(String) │
├──────────────────────────────┼─────────────────────┼──────────────────┤
│ Transaction Processing │ Jim Gray │ 1992 │
│ Readings in Database Systems │ Michael Stonebraker │ 2004 │
└───────────────────────────────────────────────────────────────────────┘

教程 2 - 加载到指定列

教程 1 中,您创建了一个包含三列的表,这些列与示例文件中的数据完全匹配。您还可以将数据加载到表的指定列中,因此表不需要与要加载的数据具有相同的列,只要指定的列可以匹配即可。本教程展示了如何做到这一点。

开始之前

在开始本教程之前,请确保您已完成 教程 1

步骤 1. 创建表

创建一个包含额外列 "comments" 的表,与 "books" 表相比:

root@localhost:8000/book_db> CREATE TABLE bookcomments
(
title VARCHAR,
author VARCHAR,
comments VARCHAR,
date VARCHAR
);

CREATE TABLE bookcomments (
title VARCHAR,
author VARCHAR,
comments VARCHAR,
date VARCHAR
)

步骤 2. 将数据加载到表中

使用以下命令发送加载数据请求:

❯ bendsql --query='INSERT INTO book_db.bookcomments(title,author,date) VALUES;' --format=csv --data=@books.csv

请注意,上面的 query 部分指定了要匹配加载数据的列(title、author 和 date)。

步骤 3. 验证加载的数据

root@localhost:8000/book_db> SELECT * FROM bookcomments;

┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ title │ author │ comments │ date │
│ Nullable(String) │ Nullable(String) │ Nullable(String) │ Nullable(String) │
├──────────────────────────────┼─────────────────────┼──────────────────┼──────────────────┤
│ Transaction Processing │ Jim Gray │ NULL │ 1992 │
│ Readings in Database Systems │ Michael Stonebraker │ NULL │ 2004 │
└──────────────────────────────────────────────────────────────────────────────────────────┘