pydoris 使用指南(如何使用python向doris 写入数据)

5,300 阅读2分钟
  1. pip3 install pydoris 先下载pydoris 依赖
  2. 引入 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("数据写入失败。")