从本地文件加载数据
在将本地数据文件加载到 Databend 之前,无需先上传到 stage 或存储桶。您可以直接使用 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. 创建表
创建一个比 "books" 表多一个名为 "comments" 列的表:
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 │
└──────────────────────────────────────────────────────────────────────────────────────────┘