Saltar a contenido

Python API

Integraci贸n python

Introducci贸n
Driver API
Github

Conexi贸n

import clickhouse_connect
client = clickhouse_connect.get_client(
    host='clickhouse',
    port=8123,
    username='ibd00',
    password='xxxxx',
    database='ibd00'
)

Client query Method

Mecanismo b谩sico para obtener un lote de registros del servidor ClickHouse. Utiliza el formato nativo de ClickHouse a trav茅s de, ojo, HTTP para transmitir conjuntos de datos de gran tama帽o (hasta aproximadamente un mill贸n de filas) de manera eficiente. Devuelve el resultado como un objeto QueryResult

# https://clickhouse.com/docs/integrations/language-clients/python/driver-api#client-query-method
result = client.query('SELECT ip, uaid, url, osinfo, uaname, devname, meth, uref, status_code, ts FROM ibd00.accesos')
for row in result.result_rows:
    print(row)

    (IPv4Address('138.122.195.222'), 'c6947993bd75a541ce087c7b1d328230db3dc910', '/apache-log/access.log', 'Fedora:Fedora:', 'Firefox', 'Other', 'GET', 'http://www.almhuette-raith.at/', 200, datetime.datetime(2022, 1, 4, 9, 9, 31, 10000))
    (IPv4Address('138.128.59.173'), '3bbb8d412534bb70252fb5a0a343dcf119ac3154', '/index.php?option=com_easyblog&view=dashboard&layout=write', 'Linux:Linux:', 'Chrome', 'Other', 'GET', 'http://www.almhuette-raith.at/', 404, datetime.datetime(2022, 1, 6, 16, 36, 41, 10000))
    (IPv4Address('138.128.106.194'), 'd26a41fc46bb877933f59a12d76cf7ad4c40eb95', '/apache-log/access.log', 'Windows:Windows 8.1:8.1', 'Chrome', 'Other', 'GET', 'http://www.almhuette-raith.at/', 200, datetime.datetime(2022, 1, 4, 1, 55, 41, 10000))

NumPy, Pandas, and Arrow queries

El conector ofrece m茅todos especializados para trabajar con NumPy, Pandas y Arrow

# https://clickhouse.com/docs/integrations/language-clients/python/advanced-querying#pandas-queries
import pandas as pd

result = client.query_df(
    'SELECT ip, uaid, url, status_code, ts FROM ibd00.accesos WHERE IPv4NumToString(ip) LIKE %(mask)s',
    {'mask': '138.128.%'}
)
result.head()

ip uaid url status_code ts
0 138.128.59.173 3bbb8d412534bb70252fb5a0a343dcf119ac3154 /index.php?option=com_easyblog&view=dashboard&... 404 2022-01-06 16:36:41.010
1 138.128.106.194 d26a41fc46bb877933f59a12d76cf7ad4c40eb95 /apache-log/access.log 200 2022-01-04 01:55:41.010