Streaming Load API
Streaming Load API 用于从本地文件读取数据并将其加载到 Databend 中。
创建 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
。