教程 - 从本地文件加载
在本教程中,您将使用 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 |
+------------------------------+----------------------+----------+--------+