python 将csv文件导入到doris数据库

最近在实用doris导入数据时,特别是导入百万级别以上的数据,使用FEweb端导入会遇到导入异常,使用Navicate导入sql也会出现异常,特别是max_tablet_version_num参数导致无法高并发执行插入,试过很多方法都不行,发现python有工具包,可以解决问题,现将方法发出来,之后再整合成工具类。

安装依赖包

pip install pydoris
pip install pydoris-client

注意:我使用python3.7无法找到以上安装包,但是使用python311可以,其他版本暂时没有尝试。

以下的上传代码:

from pydoris.doris_client import DorisClient
import requests
import pandas as pd


client = DorisClient()
fe_host = '127.0.0.1'
username = 'root'
passwd = '123456'

fe_http_port = "8030"
fe_query_port = "9030"

database = 'db_name'
table = 'table_name'

doris_client = DorisClient()
doris_client.options.fe_host = fe_host
doris_client.options.fe_http_port = fe_http_port
doris_client.options.fe_query_port = fe_query_port
doris_client.options.username = username
doris_client.options.password = passwd
doris_client.options.db = database

# 设置数据格式为 CSV,并指定列分隔符为 ','
client.options.set_csv_format(',')

# 设置自定义标签
client.options.set_label(table + '_label')

# 启用性能分析
client.options.set_enable_profile()

# 这一步也是很迷茫,需要读csv,然后转为csv类型
df = pd.read_csv('导入数据.csv')
csv = df.to_csv(header=False, index=False)

# 调用 DorisClient 的 write 方法将数据写入表中
doris_client.options.set_csv_format(",").set_auto_uuid_label().set_line_delimiter("\\n")

# table_name 必须的是database.table的形式
success = doris_client.write(database + '.' + table, csv)

if success:
    print("数据写入成功!")
else:
    print("数据写入失败。")

当上传成功后,会有对应的接口回调返回的内容。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值