脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python连接clickhouse的端口问题及解决

python连接clickhouse的端口问题及解决

2023-02-06 10:48颹蕭蕭 Python

这篇文章主要介绍了python连接clickhouse的端口问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python连接clickhouse端口问题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- It is the name that will be shown in the clickhouse-client.
      By default, anything with "production" will be highlighted in red in query prompt.
 -->
 <!--display_name>production</display_name-->
 
 <!-- Port for HTTP API. See also 'https_port' for secure connections.
      This interface is also used by ODBC and JDBC drivers (DataGrip, Dbeaver, ...)
      and by most of web interfaces (embedded UI, Grafana, Redash, ...).
   -->
 <http_port>8123</http_port>
 
 <!-- Port for interaction by native protocol with:
      - clickhouse-client and other native ClickHouse tools (clickhouse-benchmark, clickhouse-copier);
      - clickhouse-server with other clickhouse-servers for distributed query processing;
      - ClickHouse drivers and applications supporting native protocol
      (this protocol is also informally called as "the TCP protocol");
      See also 'tcp_port_secure' for secure connections.
 -->
 <tcp_port>9000</tcp_port>

注意到可以使用两个端口,8123 和 9000 分别接收 http 协议和tcp协议。

  • 如果用jdbc连接,端口为 8123
  • 如果用driver连接,端口为 9000
?
1
2
3
4
5
6
from clickhouse_driver import Client
client = Client(host=host, port=port, user=user, password=password, database='default')
client  = get_client()
client.execute("show tables;")
print(client.execute("select * from test_arr"))
client.disconnect()

此时如果用8123端口则会得到如下报错:

clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102. Unexpected packet from server 192.168.137.101:8123 (expected Hello or Exception, got Unknown packet)

向clickhouse导数据报错

clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102

今天用python写个etl从mysql向clickhouse同步数据, 数据量不到1千万,导了一会报上面的第错误。然后在网上查了一下:找到文档写得很清楚:

Welcome to clickhouse-driver — clickhouse-driver 0.2.4 documentation

原来clickhouse提供两个端口:8123和9000

用native protocal需要使用9000端口,然后修改端口后成功。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://goodgoodstudy.blog.csdn.net/article/details/119214731

延伸 · 阅读

精彩推荐