跳转到主要内容

教程 - 从本地文件加载

在本教程中,您将使用 Streaming Load API 将数据从本地示例文件加载到 Databend。

教程 1 - 从 CSV 文件加载

本教程以 CSV 文件作为示例,讲解如何从本地文件将数据加载到 Databend。

开始前

下载示例 CSV 文件 books.csv。 样本中包含下列记录:

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

第1步: 创建数据库和表

mysql -h127.0.0.1 -uroot -P3307
CREATE DATABASE book_db;
USE book_db;

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

第2步: 加载数据

用以下脚本创建并发送 API 请求:

curl -XPUT 'http://root:@127.0.0.1:8000/v1/streaming_load' -H "insert_sql: insert into book_db.books file_format = (type = 'CSV' skip_header = 0 field_delimiter = ',' record_delimiter = '\n')" -F "upload=@./books.csv"

响应示例:

{
"id": "f4c557d3-f798-4cea-960a-0ba021dd4646",
"state": "SUCCESS",
"stats": {
"rows": 2,
"bytes": 157
},
"error": null,
"files": ["books.csv"]
}

第3步: 验证加载的数据

SELECT * FROM books;

+------------------------------+----------------------+-------+
| title | author | date |
+------------------------------+----------------------+-------+
| Transaction Processing | Jim Gray | 1992 |
| Readings in Database Systems | Michael Stonebraker | 2004 |
+------------------------------+----------------------+-------+

教程 2 - 加载数据到指定列

教程 1中,您创建了一个包含三列的表格,它们与样本文件中的数据完全匹配。 Streaming Load API 还允许您将数据加载到 Databend 中的表的指定列中,因此该表不需要与要加载的数据相同的列,只要指定的列可以匹配即可。 本教程展示了如何做到这一点。

开始前

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

第1步: 创建表:

创建一个新的表格,该表格比表格 books 多一个名为 comments 的列:

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

第2步: 加载数据

用以下脚本创建并发送 API 请求:

curl -XPUT 'http://root:@127.0.0.1:8000/v1/streaming_load' -H "insert_sql: insert into book_db.bookcomments(title,author,date) file_format = (type = 'CSV' skip_header = 0 field_delimiter = ',' record_delimiter = '\n')" -F "upload=@./books.csv"

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

第3步: 验证加载的数据

SELECT * FROM bookcomments;

+------------------------------+----------------------+----------+--------+
| title | author | comments | date |
+------------------------------+----------------------+----------+--------+
| Transaction Processing | Jim Gray | | 1992 |
| Readings in Database Systems | Michael Stonebraker | | 2004 |
+------------------------------+----------------------+----------+--------+