跳转到主要内容

Streaming Load API

Streaming Load API 用于从本地文件读取数据并将其加载到 Databend 中。

image

创建 API 请求

创建 Streaming Load API 请求需遵循以下格式:

curl -H "insert_sql:<value>" -F "upload=@<file_location>" [-F "upload=@<file_location>"] -XPUT http://<user_name>:[password]@<http_handler_host>:<http_handler_port>/v1/streaming_load

参数 insert_sql 是必需的,其包含一个 INSERT 语句和用来指定文件格式的 FILE_FORMAT 参数。 关于 FILE_FORMAT 的详细信息,见 输入 & 输出文件格式

参数数值支持的格式示例
insert_sql[INSERT_statement] + [FILE_FORMAT]全部-H "insert_sql: insert into ontime file_format = (type = 'CSV' skip_header = 1 compression = 'bz2')"

替代 Streaming Load API

COPY INTO 命令使您能够使用不安全的协议(例如 HTTP)从文件加载数据。 这简化了某些特定场景中的数据加载,例如 Databend 和 MinIO 都被安装在本地的同一台机器上。 在这种情况下,您可以使用 COPY INTO 命令从本地文件加载数据。

示例:

COPY INTO ontime200 FROM 'fs://<file_path>/ontime_200.csv' FILE_FORMAT = (type = 'CSV' field_delimiter = ','  record_delimiter = '\n' skip_header = 1);

要这样做,您必须把 allow_security 添加到配置文件 databend-query.toml 中,并设置为 true

...
[storage]
# fs | s3 | azblob | obs
type = "fs"
allow_insecure = true
...
警告

出于安全原因,Databend 不推荐使用不安全的协议进行数据加载。 此方法仅可用于测试。 生产环境中,不能把 allow_insecure 设置为 true