pip3 install pydoris先下载pydoris 依赖- 引入 DorisClient
from pydoris.doris_client import DorisClient
Demo 1
Json format,使用自动生成的 uuid label,设置 max_filter_ratio = 0 (此参数可以不设置)
from pydoris.doris_client import DorisClient
import requests
client = DorisClient("ip", "port", "user", "passwd")
client.options \
.set_json_format() \
.set_auto_uuid_label() \
.set_option("max_filter_ratio", "0")
b = open('./json_file', 'rb')
client.write("doris_test", "test_load1", b)
Demo2
Csv format
client.options \
.set_csv_format(',') \
.set_auto_uuid_label() \
.set_option("max_filter_ratio", "0")
类 DorisClient
DorisClient 类提供了与 Doris 数据库进行交互的方法。它允许用户将数据写入 Doris 数据表
| 方法 | 描述 |
|---|---|
__init__(fe_host, fe_http_port, username, password) | 构造函数。创建 DorisClient 类的新实例。接收 Doris 前端主机、端口、用户名和密码作为输入。 |
write(database, table, data) | 向 Doris 数据表写入数据。接收目标数据库、数据表和要写入的数据作为输入。返回写入是否成功的布尔值。 |
类 options
options 类提供了设置 HTTP 请求头部选项的方法。它被设计为与 DorisClient 类一起使用。
| 方法 | 描述 |
|---|---|
__init__() | 构造函数。创建 options 类的新实例。 |
set_csv_format(column_separator) | 设置数据格式为 CSV,并使用提供的列分隔符。接收列分隔符作为输入。返回 options 类的当前实例。 |
set_json_format() | 设置数据格式为 JSON,并配置按行读取 JSON 数据。返回 options 类的当前实例。 |
set_auto_uuid_label() | 设置一个由 UUID 生成的唯一标签,包含在头部中。返回 options 类的当前实例。 |
set_label(label) | 设置自定义标签,包含在头部中。接收自定义标签作为输入。返回 options 类的当前实例。 |
set_format(data_format) | 设置请求的数据格式。可选值为 'csv' 或 'json'。接收数据格式作为输入。返回 options 类的当前实例。 |
set_line_delimiter(line_delimiter) | 设置读取数据时要使用的行分隔符。接收行分隔符作为输入。返回 options 类的当前实例。 |
set_enable_profile() | 启用请求的性能分析。返回 options 类的当前实例。 |
set_option(k, v) | 使用指定的键和值在头部中设置自定义选项。接收键和值作为输入。返回 options 类的当前实例。具体k,v 参考doris.apache.org/zh-CN/docs/… |
get_options() | 将当前的头部配置作为字典返回。返回一个包含当前头部配置的字典。 |
# 示例用法
if __name__ == "__main__":
# 假设连接的 Doris 前端主机为 'localhost',端口为 '8080',
# 用户名为 'my_username',密码为 'my_password'
fe_host = 'localhost'
fe_http_port = '8080'
username = 'my_username'
password = 'my_password'
# 创建 DorisClient 实例
client = DorisClient(fe_host, fe_http_port, username, password)
# 假设要写入的数据为 CSV 格式的字符串
data = "id,name,age\n1,John,25\n2,Alice,30\n3,Bob,22"
# 设置数据格式为 CSV,并指定列分隔符为 ','
client.options.set_csv_format(',')
# 设置自定义标签
client.options.set_label('my_data_label')
# 启用性能分析
client.options.set_enable_profile()
# 假设要将数据写入名为 'my_database' 的数据库中的 'my_table' 表
database = 'my_database'
table = 'my_table'
# 调用 DorisClient 的 write 方法将数据写入表中
success = client.write(database, table, data)
if success:
print("数据写入成功!")
else:
print("数据写入失败。")