Python API
Integraci贸n python
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 |