Ingestión
Ruta A: ClickPipes (gestionado, solo para ClickHouse Cloud)
- Streaming: Apache Kafka (incluidos MSK, Confluent Cloud, Redpanda, Azure Event Hubs, WarpStream), Amazon Kinesis
- Almacenamiento de objetos: Amazon S3 (y almacenamientos compatibles con S3), Google Cloud Storage, Azure Blob Storage
- CDC: PostgreSQL, MySQL, MongoDB, BigQuery
Ruta B: ingestión gestionada por ti mediante un cliente oficial de un lenguaje
- Clientes oficiales: Python, Go, Java, JavaScript, Rust, C#, C++
- Ambos protocolos: HTTP (todos los clientes) y TCP nativo (solo los clientes de Go y C++)
- Autenticación: nombre de usuario y contraseña sobre TLS de forma predeterminada; mTLS y la autenticación SSL con certificado de cliente son compatibles con todos los clientes principales
- El formato de los datos suele ser un detalle de implementación. Los clientes convierten los tipos del runtime a ClickHouse Native o al formato RowBinary. Si ya generas Arrow, Parquet, JSONEachRow u otro formato, la mayoría de los clientes exponen una API de bytes en bruto para datos preserializados
- Para maximizar el rendimiento, agrupa 10K–100K filas por lote y apunta a aproximadamente una inserción por segundo como límite superior para las inserciones síncronas. Si el procesamiento por lotes en el lado del cliente no es práctico, usa inserciones asíncronas para trasladar el procesamiento por lotes al servidor
Consumo
- Código de la aplicación: use los mismos clientes oficiales de lenguaje que para la ingestión
- Herramientas de BI y SQL: ClickHouse incluye un driver JDBC v2 oficial (Java) y un driver ODBC. Tableau, Looker, Power BI, Metabase, Apache Superset y Grafana se integran mediante estos drivers o conectores específicos mantenidos por ClickHouse y sus partners
- Formato de resultados: los clientes suelen encargarse de la serialización. Puede solicitar Arrow, Parquet u otros formatos columnares en tránsito si su producto los necesita
Tamaño del conjunto de resultados
SELECT * sin acotar sobre una tabla de hechos grande puede mover terabytes. Delimite la solicitud en su aplicación: use LIMIT, paginación, lecturas en streaming y listas explícitas de columnas. Si desarrolla analíticas orientadas al usuario, trate los conjuntos de resultados no acotados como un problema de UX, no de transporte.
ClickHouse tiene un sistema de tipos muy completo: Array, Tuple, Map, JSON, Nested, LowCardinality y más. Los clientes oficiales los asignan a tipos nativos del lenguaje. Si su producto expone datos de ClickHouse a los usuarios finales, defina desde el principio una estrategia de correspondencia de tipos.
Siguientes pasos
Convención de la cadena User-Agent
User-Agent que identifique su integración. ClickHouse la analiza en el servidor para hacer un seguimiento de la adopción, mostrar telemetría de uso y orientar la hoja de ruta.
Formato:
clickhouse-java/0.8.0my-analytics-app/3.1.2 clickhouse-js/1.2.0 (env: staging; region: us-east-1; lv: node/20.10)
- No puede haber espacios en el nombre ni en la versión del cliente
- Si incluyes un comentario, debe ir primero
- Claves de metadatos estándar:
lv(versión del lenguaje o del framework),os,arch - Los clientes TCP y del protocolo nativo informan el nombre y la versión del cliente mediante campos del protocolo, no con
User-Agent
User-Agent y los campos relacionados.