[895]Clickhouse

一、简介

Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承Ingres而来的), Paradigm4和SciDB的创办者。Michael Stonebraker于2005年创办Vertica公司,后来该公司被HP收购,HP Vertica成为MPP列式存储商业数据库的高性能代表,Facebook就购买了Vertica数据用于用户行为分析。简单的说,ClickHouse作为分析型数据库,有三大特点:一是跑分快,二是功能多,三是文艺范

官网地址:https://clickhouse.tech/ 官方文档:https://clickhouse.tech/docs/zh/single/

Python接口1

ClickHouse没有官方的Python接口,有个第三方的库,叫clickhouse-driver,GitHub地址是:mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support 安装:

pip install clickhouse-driver

使用方法如下:

from clickhouse_driver import Client

client = Client(host='localhost', database='default', user='default', password='')
client.execute('SHOW DATABASES')

==========================================================
>>> from clickhouse_driver import connect
>>>
>>> conn = connect('clickhouse://localhost')
>>> cursor = conn.cursor()
>>>
>>> cursor.execute('SHOW TABLES')
>>> cursor.fetchall()
[('test',)]

Python接口2

pip install clickhouse-sqlalchemy==0.1.4 
pip install sqlalchemy==1.3.19

使用

# -*- coding:utf-8 -*-
from clickhouse_sqlalchemy import make_session
from sqlalchemy import create_engine


conf = {
    "user": "default",
    "password": "",
    "server_host": "47.104",
    "port": "8123",
    "db": "test"
}
connection = 'clickhouse://{user}:{password}@{server_host}:{port}/{db}'.format(**conf)
engine = create_engine(connection, pool_size=100, pool_recycle=3600, pool_timeout=20)


def get_session(engine):
    return make_session(engine)

def execute(sql):
    session = get_session(engine)
    cursor = session.execute(sql)
    try:
        fields = cursor._metadata.keys
        return [dict(zip(fields, item)) for item in cursor.fetchall()]
    finally:
        cursor.close()
        session.close()

query='SHOW TABLES'
result=execute(query)
print(result)

其它阅读

ClickHouse表引擎到底怎么选: https://developer.aliyun.com/article/762461 clickHouse可视化查询工具: https://www.cnblogs.com/treesoft/p/11963831.html Tabix: https://clickhouse.tech/docs/zh/interfaces/third-party/gui/ https://zhuanlan.zhihu.com/p/161383473

参考: https://blog.csdn.net/m0_37739193/article/details/79611560 https://blog.csdn.net/zhangpeterx/article/details/95060788 https://testerhome.com/topics/21135

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python App爬取相关库的安装--Appium的安装

    版权声明:如需转载本文章,请保留出处! https://blog.csdn.net/xc_zhou/article/details/89609135 ...

    周小董
  • 利用pytesser识别图形验证码

    所谓降噪就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵最好。

    周小董
  • [816]python之pprint

    pprint提供了以一种“pretty-print”的方式打印出任意python数据结构的模块。当然,如果不是python的基本数据类型,那么这种方式可能加载不...

    周小董
  • 人类能完全约束人工智能机器人吗?

    前段时间看过一个新闻,Facebook的人工智能实验证关闭了两台机器人的电源,原因是他(它)们使用了自己"发明"的语言进行联系和沟通。 ? Facebook有个...

    企鹅号小编
  • 快速了解 YAML

    什么是 YAML? YAML 是一个数据序列化的标准,适用于所有开发语言,最大的特点是可读性好 YAML 的一个主要应用方向就是编写配置文件,有非常多的系统和框...

    dys
  • nginx配置https转发到tomcat(使用自签名的证书)

    命令:openssl genrsa -des3 -out server.key 1024

    用户2409797
  • 12306自动刷票下单-下单

    进入下单界面了 https://kyfw.12306.cn/otn/confirmPassenger/initDc

    星星在线
  • puppeteer学习----登录人才网并截图

    set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1即可跳过下载

    治电小白菜
  • webpack热更新配置小结

    本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载 webpack热更新配置 热更新,可以使开发的人在修改代码后,不用刷...

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券