diff --git a/docs/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md b/docs/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md index 1a6c82db2e4..24fd1ee68cb 100644 --- a/docs/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md +++ b/docs/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md @@ -18,11 +18,11 @@ import airbyte06 from '@site/static/images/integrations/data-ingestion/etl-tools import airbyte07 from '@site/static/images/integrations/data-ingestion/etl-tools/airbyte_07.png'; import airbyte08 from '@site/static/images/integrations/data-ingestion/etl-tools/airbyte_08.png'; import airbyte09 from '@site/static/images/integrations/data-ingestion/etl-tools/airbyte_09.png'; -import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Connect Airbyte to ClickHouse - + :::note Please note that the Airbyte source and destination for ClickHouse are currently in Alpha status and not suitable for moving large datasets (> 10 million rows) diff --git a/docs/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md b/docs/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md index d552e50561b..e817bdc66d4 100644 --- a/docs/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md +++ b/docs/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md @@ -18,11 +18,11 @@ import bp_ck_6 from '@site/static/images/integrations/data-ingestion/etl-tools/b import bp_ck_7 from '@site/static/images/integrations/data-ingestion/etl-tools/bp_ck_7.png'; import bp_ck_8 from '@site/static/images/integrations/data-ingestion/etl-tools/bp_ck_8.png'; import bp_ck_9 from '@site/static/images/integrations/data-ingestion/etl-tools/bp_ck_9.png'; -import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Connect BladePipe to ClickHouse - + BladePipe is a real-time end-to-end data integration tool with sub-second latency, boosting seamless data flow across platforms. diff --git a/docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md b/docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md index 566c36bd5ef..3a848abf988 100644 --- a/docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md +++ b/docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md @@ -7,11 +7,11 @@ slug: /integrations/data-ingestion/etl-tools/dlt-and-clickhouse doc_type: 'guide' --- -import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Connect dlt to ClickHouse - + dlt is an open-source library that you can add to your Python scripts to load data from various and often messy data sources into well-structured, live datasets. diff --git a/docs/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md b/docs/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md index dc5c36aef08..ef0e58ff34e 100644 --- a/docs/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md +++ b/docs/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md @@ -11,11 +11,11 @@ doc_type: 'guide' import Image from '@theme/IdealImage'; import vector01 from '@site/static/images/integrations/data-ingestion/etl-tools/vector_01.png'; import vector02 from '@site/static/images/integrations/data-ingestion/etl-tools/vector_02.png'; -import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Integrating Vector with ClickHouse - + Being able to analyze your logs in real time is critical for production applications. Have you ever wondered if ClickHouse is good at storing and analyzing log data? Just checkout Uber's experience with converting their logging infrastructure from ELK to ClickHouse. diff --git a/docs/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md b/docs/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md index cf43ecea971..a7c68573f30 100644 --- a/docs/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md +++ b/docs/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md @@ -30,7 +30,7 @@ import rocketbi_17 from '@site/static/images/integrations/data-visualization/roc import rocketbi_18 from '@site/static/images/integrations/data-visualization/rocketbi_18.png'; import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; -# Goal: build your first dashboard +# Goal: build your first dashboard with Rocket.BI diff --git a/docs/integrations/index.mdx b/docs/integrations/index.mdx index dac5f339ad5..0d6c7e106b7 100644 --- a/docs/integrations/index.mdx +++ b/docs/integrations/index.mdx @@ -3,409 +3,20 @@ slug: /integrations title: 'Integrations' keywords: ['integrations', 'integrate', 'integrate with'] description: 'Integrations with ClickHouse' -hide_table_of_contents: true doc_type: 'landing-page' +sidebarCollapsed: true +hide_table_of_contents: true --- -import acceldatapng from '@site/static/images/integrations/logos/acceldata_logo.png'; -import Amazonmsksvg from '@site/static/images/integrations/logos/amazon_msk.svg'; -import Astratosvg from '@site/static/images/integrations/logos/astrato_logo.svg'; -import apachestreamparkpng from '@site/static/images/integrations/logos/apache-streampark.png'; -import Azureeventhubssvg from '@site/static/images/integrations/logos/azure_event_hubs.svg'; -import BladePipesvg from '@site/static/images/integrations/logos/bladepipe.svg'; -import blinkopspng from '@site/static/images/integrations/logos/blinkops_logo.png'; -import CloudCanalsvg from '@site/static/images/integrations/logos/cloudcanal.svg'; -import Chdbsvg from '@site/static/images/integrations/logos/chdb.svg'; -import Clickhousesvg from '@site/static/images/integrations/logos/clickhouse.svg'; -import Clickhousemonitoringdashboardsvg from '@site/static/images/integrations/logos/clickhouse-monitoring-dashboard.svg'; -import Cloudquerysvg from '@site/static/images/integrations/logos/cloudquery_logo.svg'; -import Confluentsvg from '@site/static/images/integrations/logos/confluent.svg'; -import Csharpsvg from '@site/static/images/integrations/logos/csharp.svg'; -import Cubejssvg from '@site/static/images/integrations/logos/cubejs.svg'; -import Datagripsvg from '@site/static/images/integrations/logos/data_grip.svg'; -import Datalenssvg from '@site/static/images/integrations/logos/datalens.svg'; -import Dbeaversvg from '@site/static/images/integrations/logos/dbeaver_logo.svg'; -import Dbtsvg from '@site/static/images/integrations/logos/dbt.svg'; -import Deepnotesvg from '@site/static/images/integrations/logos/deepnote.svg'; -import Dlthubsvg from '@site/static/images/integrations/logos/dlthub_logo.svg'; -import Draxlrsvg from '@site/static/images/integrations/logos/draxlr.svg'; -import Emqxsvg from '@site/static/images/integrations/logos/emqx.svg'; -import Explosvg from '@site/static/images/integrations/logos/explo.svg'; -import Fivetransvg from '@site/static/images/integrations/logos/fivetran.svg'; -import Gcssvg from '@site/static/images/integrations/logos/gcs.svg'; -import Golangsvg from '@site/static/images/integrations/logos/golang.svg'; -import Grafanasvg from '@site/static/images/integrations/logos/grafana.svg'; -import Hdfssvg from '@site/static/images/integrations/logos/hadoop.svg'; -import Hivesvg from '@site/static/images/integrations/logos/hive.svg'; -import Javasvg from '@site/static/images/integrations/logos/java.svg'; -import Jitsusvg from '@site/static/images/integrations/logos/jitsu.svg'; -import Kafkasvg from '@site/static/images/integrations/logos/kafka.svg'; -import Kinesissvg from '@site/static/images/integrations/logos/amazon_kinesis_logo.svg'; -import Kestrasvg from '@site/static/images/integrations/logos/kestra.svg'; -import Lookersvg from '@site/static/images/integrations/logos/looker.svg'; -import Lookerstudiosvg from '@site/static/images/integrations/logos/looker_studio.svg'; -import Mongodbsvg from '@site/static/images/integrations/logos/mongodb.svg'; -import Mysqlsvg from '@site/static/images/integrations/logos/mysql.svg'; -import Natssvg from '@site/static/images/integrations/logos/nats.svg'; -import Nodesvg from '@site/static/images/integrations/logos/node_js.svg'; -import Omnisvg from '@site/static/images/integrations/logos/omni.svg'; -import Observablesvg from '@site/static/images/integrations/logos/observable.svg'; -import opsramppng from '@site/static/images/integrations/logos/ops_ramp_logo.png'; -import Popsinksvg from '@site/static/images/integrations/logos/popsink.svg'; -import Postgresqlsvg from '@site/static/images/integrations/logos/postgresql.svg'; -import Prequelsvg from '@site/static/images/integrations/logos/prequel.svg'; -import Pythonsvg from '@site/static/images/integrations/logos/notext-python.svg'; -import Qrynsvg from '@site/static/images/integrations/logos/qryn.svg'; -import Quesmasvg from '@site/static/images/integrations/logos/quesma.svg'; -import Quicksightsvg from '@site/static/images/integrations/logos/quicksight.svg'; -import Rabbitmqsvg from '@site/static/images/integrations/logos/rabbitmq.svg'; -import Redissvg from '@site/static/images/integrations/logos/redis.svg'; -import restackpng from '@site/static/images/integrations/logos/restack_logo.png'; -import Retoolsvg from '@site/static/images/integrations/logos/retool.svg'; -import Rillsvg from '@site/static/images/integrations/logos/rill.svg'; -import Risingwavesvg from '@site/static/images/integrations/logos/risingwave.svg'; -import RocketbiSVG from '@site/static/images/integrations/logos/rocketbi-logo.svg'; -import Rocksdbsvg from '@site/static/images/integrations/logos/rocksdb.svg'; -import Rudderstacksvg from '@site/static/images/integrations/logos/rudderstack.svg'; -import S3svg from '@site/static/images/integrations/logos/amazon_s3_logo.svg'; -import sematextpng from '@site/static/images/integrations/logos/sematext_logo.png'; -import skywalkingjpeg from '@site/static/images/integrations/logos/skywalking_logo.jpeg'; -import snappyflowpng from '@site/static/images/integrations/logos/snappy_flow_logo.png'; -import Sparksvg from '@site/static/images/integrations/logos/apache_spark_logo.svg'; -import sodapng from '@site/static/images/integrations/logos/soda_logo.png'; -import Sqlitesvg from '@site/static/images/integrations/logos/sqlite.svg'; -import Supersetsvg from '@site/static/images/integrations/logos/superset.svg'; -import Tablumsvg from '@site/static/images/integrations/logos/tablum.svg'; -import teleport from '@site/static/images/integrations/logos/teleport_logo.png'; -import Trickstercachesvg from '@site/static/images/integrations/logos/trickster-logo.svg'; -import Upstashsvg from '@site/static/images/integrations/logos/upstash.svg'; -import Yepcodesvg from '@site/static/images/integrations/logos/yepcode.svg'; -import Warpstreamsvg from '@site/static/images/integrations/logos/warpstream.svg'; -import Bytewaxsvg from '@site/static/images/integrations/logos/bytewax.svg'; -import glue_logo from '@site/static/images/integrations/logos/glue_logo.png'; -import azure_synapse_logo from '@site/static/images/integrations/logos/azure-synapse.png'; -import azure_data_factory_logo from '@site/static/images/integrations/logos/azure-data-factory.png'; -import logo_cpp from '@site/static/images/integrations/logos/logo_cpp.png'; -import cassandra from '@site/static/images/integrations/logos/cassandra.png'; -import deltalake from '@site/static/images/integrations/logos/deltalake.png'; -import hudi from '@site/static/images/integrations/logos/hudi.png'; -import iceberg from '@site/static/images/integrations/logos/iceberg.png'; -import metabase from '@site/static/images/integrations/logos/logo_metabase.png'; -import minio from '@site/static/images/integrations/logos/minio.png'; -import odbc from '@site/static/images/integrations/logos/odbc.png'; -import logo_otel from '@site/static/images/integrations/logos/logo_otel.png'; -import powerbi from '@site/static/images/integrations/logos/powerbi.png'; -import redpanda from '@site/static/images/integrations/logos/logo_redpanda.png'; -import rust from '@site/static/images/integrations/logos/logo_rust.png'; -import tableau from '@site/static/images/integrations/logos/logo_tableau.png'; -import airbyte_logo from '@site/static/images/integrations/logos/airbyte-logo.png'; -import acceldata_logo from '@site/static/images/integrations/logos/acceldata_logo.png'; -import atlas_logo from '@site/static/images/integrations/logos/atlas-logo.png'; -import automq_logo from '@site/static/images/integrations/logos/automq.png'; -import blinkops_logo from '@site/static/images/integrations/logos/blinkops_logo.png'; -import calyptia_logo from '@site/static/images/integrations/logos/logo_calyptia.png'; -import dataddo_logo from '@site/static/images/integrations/logos/logo_dataddo.png'; -import dbvisualizer_logo from '@site/static/images/integrations/logos/logo_dbvisualizer.png'; -import decodable_logo from '@site/static/images/integrations/logos/logo_decodable.png'; -import explo_logo from '@site/static/images/integrations/logos/explo.png'; -import fabi_logo from '@site/static/images/integrations/logos/fabi.png'; -import gigasheet_logo from '@site/static/images/integrations/logos/gigasheet.png'; -import glassflow_logo from '@site/static/images/integrations/logos/glassflow.png'; -import goldsky_logo from '@site/static/images/integrations/logos/goldsky.png'; -import growthbook_logo from '@site/static/images/integrations/logos/logo_growthbook.png'; -import hex_logo from '@site/static/images/integrations/logos/logo-hex.png'; -import hightouch_logo from '@site/static/images/integrations/logos/logo_hightouch.png'; -import holistics_logo from '@site/static/images/integrations/logos/logo_holistics.png'; -import housewatch_logo from '@site/static/images/integrations/logos/housewatch.png'; -import mindsdb_logo from '@site/static/images/integrations/logos/logo_mindsdb.png'; -import mitzu_logo from '@site/static/images/integrations/logos/logo_mitzu.png'; -import mode_logo from '@site/static/images/integrations/logos/logo_mode.png'; -import redash_logo from '@site/static/images/integrations/logos/logo_redash.png'; -import restack_logo from '@site/static/images/integrations/logos/restack_logo.png'; -import sematext_logo from '@site/static/images/integrations/logos/sematext_logo.png'; -import streamingfast_logo from '@site/static/images/integrations/logos/streamingfast.png'; -import supabase_logo from '@site/static/images/integrations/logos/logo_supabase.png'; -import teleport_logo from '@site/static/images/integrations/logos/teleport_logo.png'; -import tooljet_logo from '@site/static/images/integrations/logos/tooljet.png'; -import vector_logo from '@site/static/images/integrations/logos/vector.png'; -import zing_logo from '@site/static/images/integrations/logos/zing-logo.png'; -import mage_logo from '@site/static/images/integrations/logos/mage.jpg'; -import metaplane_logo from '@site/static/images/integrations/logos/logo_metaplane.png'; -import openBlocks_logo from '@site/static/images/integrations/logos/logo_openBlocks.png'; -import ramp_logo from '@site/static/images/integrations/logos/ops_ramp_logo.png'; -import runreveal_logo from '@site/static/images/integrations/logos/runreveal.png'; -import sisense_logo from '@site/static/images/integrations/logos/logo_sisense.png'; -import signoz_logo from '@site/static/images/integrations/logos/signoz-logo.png'; -import snappy_flow_logo from '@site/static/images/integrations/logos/snappy_flow_logo.png'; -import soda_logo from '@site/static/images/integrations/logos/soda_logo.png'; -import splunk_logo from '@site/static/images/integrations/logos/splunk_logo.png'; -import streamkap_logo from '@site/static/images/integrations/logos/streamkap-logo.png'; -import airflow_logo from '@site/static/images/integrations/logos/logo_airflow.png'; -import beam_logo from '@site/static/images/integrations/logos/logo_beam.png'; -import inlong_logo from '@site/static/images/integrations/logos/logo_inlong.png'; -import nifi_logo from '@site/static/images/integrations/logos/logo_nifi.png'; -import seatunnel_logo from '@site/static/images/integrations/logos/logo_seatunnel.png'; -import skywalking_logo from '@site/static/images/integrations/logos/skywalking_logo.jpeg'; -import streampark_logo from '@site/static/images/integrations/logos/apache-streampark.png'; -import bytebase_logo from '@site/static/images/integrations/logos/logo_bytebase.png'; -import clickhouse_cl_logo from '@site/static/images/integrations/logos/clickhouse-cl.png'; -import dataflow_logo from '@site/static/images/integrations/logos/dataflow_logo.png'; -import dbnet_logo from '@site/static/images/integrations/logos/dbnet_logo.png'; -import datalens_logo from '@site/static/images/integrations/logos/datalens.png'; -import dataease_logo from '@site/static/images/integrations/logos/dataease.png'; -import datahub_logo from '@site/static/images/integrations/logos/logo_datahub.png'; -import deepflow_logo from '@site/static/images/integrations/logos/logo_deepflow.png'; -import easypanel_logo from '@site/static/images/integrations/logos/logo-easypanel.png'; -import flink_logo from '@site/static/images/integrations/logos/logo_flink.png'; -import goose_logo from '@site/static/images/integrations/logos/goose_logo.png'; -import ibis_logo from '@site/static/images/integrations/logos/logo_ibis.png'; -import jaeger_logo from '@site/static/images/integrations/logos/logo_jaeger.png'; -import jupyter_logo from '@site/static/images/integrations/logos/jupyter.png'; -import adaptive_logo from '@site/static/images/integrations/logos/adaptive_logo.png'; -import mprove_logo from '@site/static/images/integrations/logos/logo_mprove.png'; -import php_logo from '@site/static/images/integrations/logos/logo_php.png'; -import pinax_logo from '@site/static/images/integrations/logos/pinax-logo.png'; -import pulse_logo from '@site/static/images/integrations/logos/pulse.png'; -import qstudio_logo from '@site/static/images/integrations/logos/qstudio.png'; -import qryn_logo from '@site/static/images/integrations/logos/logo_qryn.png'; -import rsyslog_logo from '@site/static/images/integrations/logos/rsyslog.png'; -import ruby_logo from '@site/static/images/integrations/logos/logo_ruby.png'; -import r_logo from '@site/static/images/integrations/logos/logo_r.png'; -import scala_logo from '@site/static/images/integrations/logos/logo_scala.png'; -import schemaspy_logo from '@site/static/images/integrations/logos/schemaspy_logo.png'; -import visual_studio_logo from '@site/static/images/integrations/logos/logo_vs.png'; -import vulcansql_logo from '@site/static/images/integrations/logos/logo-vulcansql.png'; -import great_expectations_logo from '@site/static/images/integrations/logos/great-expectations.webp'; -import Hashboardsvg from '@site/static/images/integrations/logos/hashboard.svg'; -import lightdash_logo from '@site/static/images/integrations/logos/lightdash.png'; -import luzmo_logo from '@site/static/images/integrations/logos/luzmo.png'; -import vs_logo from '@site/static/images/integrations/logos/logo_vs.png'; -import Moosesvg from '@site/static/images/integrations/logos/moose_logo.svg'; -import chartbrew_logo from '@site/static/images/integrations/logos/logo_chartbrew.png'; -import marimo_logo from '@site/static/images/integrations/logos/logo_marimo.png'; -import dot_logo from '@site/static/images/integrations/logos/dot_logo.png'; -import Image from '@theme/IdealImage'; - -ClickHouse integrations are organized by their support level: - -- **Core integrations:** built or maintained by ClickHouse, they are supported by ClickHouse and live in the ClickHouse GitHub organization -- **Partner integrations:** built or maintained, and supported by, third-party software vendors -- **Community integrations:** built or maintained and supported by community members. No direct support is available besides the public GitHub repositories and community Slack channels - -Each integration is further categorized into **Language client**, **Data ingestion**, **Data visualization** and **SQL client** categories. - -:::note -We are actively compiling this list of ClickHouse integrations below, so it's not exhaustive. Feel free to -[contribute](https://github.com/ClickHouse/clickhouse-docs#contributing) any relevant ClickHouse integration to the list. -::: - -## Core integrations - -
- -|Name|Logo|Category|Description|Resources| -|------|----|----------------|------------------|-------------| -|Amazon Kinesis| |Data ingestion|Integration with Amazon Kinesis.|[Documentation](/integrations/clickpipes/kinesis/)| -|Amazon MSK| |Data ingestion|Integration with Amazon Managed Streaming for Apache Kafka (MSK).|[Documentation](/integrations/kafka/cloud/amazon-msk/)| -|Amazon S3||Data ingestion|Import from, export to, and transform S3 data in flight with ClickHouse built-in S3 functions.|[Documentation](/integrations/data-ingestion/s3/index.md)| -|Amazon Glue|Amazon Glue logo|Data ingestion|Query ClickHouse over Spark using our official Glue connector|[Documentation](/integrations/glue)| -|Apache Spark||Data ingestion|Spark ClickHouse Connector is a high performance connector built on top of Spark DataSource V2.|[GitHub](https://github.com/housepower/spark-clickhouse-connector),
[Documentation](/integrations/data-ingestion/apache-spark/index.md)| -|Azure Event Hubs||Data ingestion|A data streaming platform that supports Apache Kafka's native protocol|[Website](https://azure.microsoft.com/en-gb/products/event-hubs)| -|Azure Synapse|Azure Synapse logo|Data ingestion|A cloud-based analytics service for big data and data warehousing.|[Documentation](/integrations/azure-synapse)| -|Azure Data Factory|Azure Data Factory logo|Data ingestion|A cloud-based data integration service that enables you to create, schedule, and orchestrate data workflows at scale.|[Documentation](/integrations/azure-data-factory)| -|C++|Cpp logo|Language client|C++ client for ClickHouse|[GitHub](https://github.com/ClickHouse/clickhouse-cpp)| -|C#||Language client|ADO.NET client implementation for ClickHouse|[Documentation](/integrations/csharp)| -|Cassandra|Cassandra logo|Data ingestion|Allows ClickHouse to use [Cassandra](https://cassandra.apache.org/) as a dictionary source.|[Documentation](/sql-reference/dictionaries/index.md#cassandra)| -|CHDB||AI/ML|An embedded OLAP SQL Engine|[GitHub](https://github.com/chdb-io/chdb#/),
[Documentation](https://doc.chdb.io/)| -|ClickHouse Client||SQL client|ClickHouse Client is the native command-line client for ClickHouse.|[Documentation](/interfaces/cli.md)| -|Confluent||Data ingestion|Integration with Apache Kafka on Confluent platform.|[Documentation](/integrations/kafka/cloud/confluent/custom-connector)| -|dbt||Data integration|Use dbt (data build tool) to transform data in ClickHouse by simply writing select statements. dbt puts the T in ELT.|[Documentation](/integrations/data-ingestion/etl-tools/dbt/index.md)| -|DeltaLake|Delta Lake logo|Data ingestion| provides a read-only integration with existing [Delta Lake](https://github.com/delta-io/delta) tables in Amazon S3.|[Documentation](/engines/table-engines/integrations/deltalake)| -|EmbeddedRocksDB||Data integration|Allows integrating ClickHouse with [rocksdb](http://rocksdb.org/).|[Documentation](/engines/table-engines/integrations/embedded-rocksdb)| -|Fivetran||Data ingestion|[ClickHouse Cloud](https://clickhouse.com/cloud) destination for the [Fivetran data movement platform](https://www.fivetran.com/).|[Documentation](/integrations/data-ingestion/etl-tools/fivetran/index.md)| -|Google Cloud Storage||Data ingestion|Import from, export to, and transform GCS data in flight with ClickHouse built-in `S3` functions.|[Documentation](/integrations/data-ingestion/s3/index.md)| -|Golang||Language client|The Go client uses the native interface for a performant, low-overhead means of connecting to ClickHouse.|[Documentation](/integrations/language-clients/go/index.md)| -|HDFS||Data ingestion|Provides integration with the [Apache Hadoop](https://en.wikipedia.org/wiki/Apache_Hadoop) ecosystem by allowing to manage data on [HDFS](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html) via ClickHouse.|[Documentation](/engines/table-engines/integrations/hdfs)| -|Hive||Data ingestionn|The Hive engine allows you to perform `SELECT` queries on HDFS Hive table.|[Documentation](/engines/table-engines/integrations/hive)| -|Hudi|Apache Hudi logo|Data ingestion| provides a read-only integration with existing Apache [Hudi](https://hudi.apache.org/) tables in Amazon S3.|[Documentation](/engines/table-engines/integrations/hudi)| -|Iceberg|Apache Iceberg logo|Data ingestion|Provides a read-only integration with existing Apache [Iceberg](https://iceberg.apache.org/) tables in Amazon S3.|[Documentation](/engines/table-engines/integrations/iceberg)| -|Java, JDBC||Language client|The Java client and JDBC driver.|[Documentation](/integrations/language-clients/java/index.md)| -|Kafka||Data ingestion|Integration with Apache Kafka, the open-source distributed event streaming platform.|[Documentation](/integrations/kafka)| -|Looker Studio||Data visualization|Looker Studio is a free tool that turns your data into informative, easy to read, easy to share, and fully customizable dashboards and reports.|[Documentation](/integrations/lookerstudio)| -|Looker||Data visualization|Looker is an enterprise platform for BI, data applications, and embedded analytics that helps you explore and share insights in real time.|[Documentation](/integrations/looker)| -|Metabase|Metabase logo|Data visualization|Metabase is an easy-to-use, open source UI tool for asking questions about your data.|[Documentation](/integrations/metabase)| -|MinIO|Metabase logo|Data ingestion|MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with the Amazon S3 cloud storage service|[Documentation](/integrations/minio)| -|MongoDB||Data ingestion|MongoDB engine is read-only table engine which allows to read data (`SELECT` queries) from remote MongoDB collection.|[Documentation](/engines/table-engines/integrations/mongodb)| -|MySQL||Data ingestion|The MySQL engine allows you to perform `SELECT` and `INSERT` queries on data that is stored on a remote MySQL server.|[Documentation](/engines/table-engines/integrations/mysql)| -|NATS||Data ingestion|Allows integrating ClickHouse with [NATS](https://nats.io/).|[Documentation](/engines/table-engines/integrations/nats)| -|Node.JS||Language client|The official JS client for connecting to ClickHouse.|[Documentation](/integrations/language-clients/js.md)| -|ODBC|ODBC logo|Data integration|Allows ClickHouse to connect to external databases via [ODBC](https://en.wikipedia.org/wiki/Open_Database_Connectivity) table engine.|[Documentation](/engines/table-engines/integrations/odbc)| -|OpenTelemetry|OTel logo|Data ingestion|Exporter that supports sending logs, metrics, trace OpenTelemetry data to ClickHouse|[GitHub](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/clickhouseexporter)| -|PostgreSQL||Data ingestion|Snapshot and real-time CDC data replication from PostgreSQL databases to ClickHouse Cloud.|[Documentation](/integrations/postgresql)| -|PowerBI|PowerBI logo|Data visualization|Microsoft Power BI is an interactive data visualization software product developed by Microsoft with a primary focus on business intelligence.|[Documentation](/integrations/powerbi) -|Python||Language client|A suite of Python packages for connecting Python to ClickHouse.|[Documentation](/integrations/language-clients/python/index.md)| -|QuickSight||Data visualization|Amazon QuickSight powers data-driven organizations with unified business intelligence (BI).|[Documentation](/integrations/quicksight)| -|RabbitMQ||Data ingestion|Allows ClickHouse to connect [RabbitMQ](https://www.rabbitmq.com/).|[Documentation](/engines/table-engines/integrations/rabbitmq)| -|Redis||Data ingestion|Allows ClickHouse to use [Redis](https://redis.io/) as a dictionary source.|[Documentation](/sql-reference/dictionaries/index.md#redis)| -|Redpanda|Redpanda logo|Data ingestion|Redpanda is the streaming data platform for developers. It's API-compatible with Apache Kafka, but 10x faster, much easier to use, and more cost effective|[Blog](https://redpanda.com/blog/real-time-olap-database-clickhouse-redpanda)| -|REST Catalog||Data ingestion|Integration with REST Catalog specification for Iceberg tables, supporting multiple catalog providers including Tabular.io.|[Documentation](/use-cases/data-lake/rest-catalog)| -|Lakekeeper||Data ingestion|Integration with Lakekeeper, an open-source REST catalog implementation for Apache Iceberg with multi-tenant support.|[Documentation](/use-cases/data-lake/lakekeeper-catalog)| -|Nessie||Data ingestion|Integration with Nessie, an open-source transactional catalog for data lakes with Git-like data version control.|[Documentation](/use-cases/data-lake/nessie-catalog)| -|Rust|Rust logo|Language client|A typed client for ClickHouse|[Documentation](/integrations/language-clients/rust.md)| -|SQLite||Data ingestion|Allows to import and export data to SQLite and supports queries to SQLite tables directly from ClickHouse.|[Documentation](/engines/table-engines/integrations/sqlite)| -|Superset||Data visualization|Explore and visualize your ClickHouse data with Apache Superset.|[Documentation](/integrations/data-visualization/superset-and-clickhouse.md)| -|Tableau|Tableau logo|Data visualization|Interactive data visualization software focused on business intelligence|[Documentation](/integrations/tableau)| -|Tableau Online|Tableau Online logo|Data visualization|Tableau Online streamlines the power of data to make people faster and more confident decision makers from anywhere|[Documentation](/integrations/tableau-online)| - -
-
- -## Partner integrations - -
- -|Name|Logo|Category|Description|Resources| -|------|----|----------------|------------------|-------------| -|Airbyte|Airbyte logo|Data ingestion|Use Airbyte, to create ELT data pipelines with more than 140 connectors to load and sync your data into ClickHouse.|[Documentation](/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md)| -|AccelData|AccelData Logo|Data management|ADOC allows users to monitor and ensure the dependability and integrity of their visualized data, facilitating rea-time data processing and analytics.|[Documentation](https://docs.acceldata.io/documentation/clickhouse) | -|Atlas|Atlas logo|Schema management|Manage your ClickHouse schema as code. |[Documentation](https://atlasgo.io/guides/clickhouse?utm_source=clickhouse&utm_term=docs)| -|Astrato||Data visualization|Astrato brings true Self-Service BI to Enterprises & Data Businesses by putting analytics in the hands of every user, enabling them to build dashboards, reports & data apps without IT.|[Documentation](/integrations/astrato)| -|AutoMQ|AutoMQ logo|Data ingestion|Cloud-native Kafka and RocketMQ alternatives that decouples durability to S3 and EBS|[Website](https://www.automq.com/)| -|BladePipe||Data ingestion|A real-time end-to-end data integration tool with sub-second latency.|[Documentation](/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md)| -|BlinkOps|BlinkOps Logo|Security automation|Create automations to manage data and user permissions.|[Documentation](https://docs.blinkops.com/docs/integrations/clickhouse)| -|Bytewax||Data ingestion|Open source Python stream processor for transforming and ingesting data to ClickHouse|[Documentation](https://bytewax.io/blog/building-a-click-house-sink-for-bytewax)| -|Calyptia (Fluent Bit)|Calyptia logo|Data ingestion|CNCF graduated open-source project for the collection, processing, and delivery of logs, metrics, and traces|[Blog](https://clickhouse.com/blog/kubernetes-logs-to-clickhouse-fluent-bit)| -|Chartbrew|Chartbrew logo|Data visualization|Chartbrew is a data visualization platform that allows users to create dashboards and monitor data in real time.|[Documentation](/integrations/chartbrew-and-clickhouse),
[Website](https://chartbrew.com/integrations/clickhouse),
[Blog](https://chartbrew.com/blog/visualizing-clickhouse-data-with-chartbrew-a-step-by-step-guide/)| -|CloudQuery||Data ingestion|Open source high-performance ELT framework.|[Documentation](https://www.cloudquery.io/docs/plugins/destinations/clickhouse/overview)| -|Cube.js||Data visualization|Cube is the Semantic Layer for building data apps.|[Website](https://cube.dev/for/clickhouse-dashboard)| -|CloudCanal||Data ingestion|A real-time data replication tool for seamless and easy data flow.|[Website](https://www.clougence.com/)| -|DBeaver||SQL client|Free multi-platform database administration tool. Connects to Clickhouse through JDBC driver.|[Documentation](/integrations/sql-clients/dbeaver.md)| -|DataGrip||SQL client|DataGrip is a powerful database IDE with dedicated support for ClickHouse.|[Documentation](/integrations/sql-clients/datagrip.md)| -|Dataddo|Dataddo logo|Data integration|Data integration platform|[Website](https://www.dataddo.com/storage/clickhouse)| -|DbVisualizer|DbVisualizer logo|SQL client|DbVisualizer is a database tool with extended support for ClickHouse.|[Documentation](/integrations/sql-clients/dbvisualizer.md)| -|Decodable|Decodable logo|Data ingestion|Powerful Stream Processing Built On Apache Flink|[Website](https://www.decodable.co/connectors/clickhouse)| -|Deepnote||Data visualization|Deepnote is a collaborative Jupyter-compatible data notebook built for teams to discover and share insights.|[Documentation](/integrations/data-visualization/community_integrations/deepnote.md)| -|DLT||Data integration|An open source Python library that makes data loading easy.|[Documentation](/integrations/data-ingestion/etl-tools/dlt-and-clickhouse)| -|Draxlr||Data visualization|Draxlr is a Business intelligence tool with data visualization and analytics.|[Documentation](/integrations/data-visualization/community_integrations/draxlr-and-clickhouse.md)| -|EMQX||Data ingestion|EMQX is an open source MQTT broker with a high-performance real-time message processing engine, powering event streaming for IoT devices at massive scale.|[Documentation](/integrations/emqx)| -|Explo| Explo logo | Data visualization | Explo is a customer-facing analytics tool for any platform. | [Documentation](/integrations/explo) | -|Fabi.ai| Fabi.ai logo | Data visualization | Fabi.ai is an all-in-one collaborate data analysis platform. You can leverage SQL, Python, AI, and no-code to build dashboard and data workflows faster than ever before. | [Documentation](/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md) | -|Gigasheet| Gigasheet logo | Data visualization | A cloud big data analytics spreadsheet that enables business users to instantly analyze and explore ClickHouse data. | [Website](https://gigasheet.com/enterprise) | -|GlassFlow| GlassFlow logo | Data ingestion | Real-time event streaming and data transformation in Python for ClickHouse. | [Documentation](https://docs.glassflow.dev/integrations/managed-connectors/sinks/clickhouse) | -|Goldsky| Goldsky logo | Data Integration | High-performance Web3 data indexing via Subgraphs and real-time data replication pipelines. | [Documentation](https://docs.goldsky.com/introduction) | -|Grafana||Data visualization|With Grafana you can create, explore and share all of your data through dashboards.|[Documentation](/integrations/data-visualization/grafana/index.md)| -|Great Expectations| Great Expectations logo | Data management | An open-source data management tool, with a paid cloud offering. | [Website](https://greatexpectations.io/) | -|GrowthBook| GrowthBook logo | Data visualization | Warehouse native experimentation platform (feature flagging and A/B testing). | [Documentation](https://docs.growthbook.io/warehouses/clickhouse) | -|HEX| HEX logo | Data visualization | Hex is a modern, collaborative platform with notebooks, data apps, SQL, Python, no-code, R, and so much more. | [Documentation](https://learn.hex.tech/docs/connect-to-data/data-connections/overview) | -|Hashboard||Data visualization|[Hashboard](https://hashboard.com) is a business intelligence platform that enables self-service data exploration and metric tracking.|[Documentation](https://docs.hashboard.com/docs/database-connections/clickhouse)| -|HighTouch|HighTouch logo|Data integration|Sync your data directly from your warehouse to 140+ destinations|[Website](https://hightouch.com/docs/sources/clickhouse)| -|Holistics|Holistics logo|Data visualization|Business Intelligence for ClickHouse database|[Website](https://www.holistics.io/integrations/clickhouse/)| -|HouseWatch|HouseWatch logo|Data management| Open source tool for monitoring and managing ClickHouse clusters. |[GitHub](https://github.com/PostHog/HouseWatch)| -|IBM Instana| |Data management|Instana can auto-discover and monitor ClickHouse server processes|[Documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=technologies-monitoring-clickhouse)| -|Jitsu||Data analytics|An open-source event collection platform.|[Documentation](https://docs.jitsu.com/destinations/warehouse/clickhouse)| -|LangChain|🦜️🔗|SDK|LangChain is a framework for developing applications powered by language models|[Documentation](https://python.langchain.com/docs/integrations/vectorstores/clickhouse/)| -|Lightdash|Lightdash logo|Data visualization|Lightdash is an open-source business intelligence tool built for modern data teams.|[Website](https://www.lightdash.com/),
[Documentation](https://docs.lightdash.com/get-started/setup-lightdash/connect-project#clickhouse)| -|Luzmo|Luzmo logo|Data visualization|Luzmo is an embedded analytics platform with a native ClickHouse integration, purpose-built for Software and SaaS applications.|[Documentation](/integrations/data-visualization/community_integrations/luzmo-and-clickhouse.md)| -|Mage|Mage logo|Data Ingestion|Open-source data pipeline tool for transforming and integrating data|[Documentation](https://docs.mage.ai/integrations/databases/ClickHouse) -|Metaplane|Metaplane logo|Data management|Data observability for every data team|[Website](https://www.metaplane.dev/integrations)| -|MindsDB|MindsDB logo|AI/ML| The platform for customizing AI from enterprise data |[Website](https://mindsdb.com/clickhouse-machine-learning )| -|Mitzu|Mitzu logo|Data visualization|Mitzu is a no-code warehouse-native product analytics application. Find funnel, retention, user segmentation insights without copying your data.|[Documentation](/integrations/mitzu)| -|Mode Analytics|Mode logo|Data visualization|Business Intelligence built around data teams|[Website](https://mode.com/)| -|Moose OLAP||Language client|Moose OLAP offers TypeScript and Python abstractions and ORM-like functionality built natively for ClickHouse|[Documentation](interfaces/third-party/moose-olap),[Website](https://www.fiveonefour.com/moose)| -|Omni||Data visualization|Business intelligence that speaks your language. Explore, visualize, and model data your way with Omni. From spreadsheets to SQL—in a single platform.| [Website](https://omni.co/)| -|Openblocks|Openblocks logo|SQL client|Openblocks is a low code platform for building UIs|[Documentation](https://blog.openblocks.dev/blog/openblocks-x-clickhouse)| -|OpsRamp (HP)| OpsRamp Logo|Data management| Provides observability metrics for ClickHouse|[Documentation](https://docs.opsramp.com/integrations/database-no-sql/automonitor-clickhouse-monitoring/)| -|Popsink||Data integration|Build real-time Change Data Capture (CDC) pipelines to ClickHouse.|[Documentation](https://docs.popsink.com/connectors/target/clickhouse/)| -|Prequel||Data sharing|Connect your ClickHouse instance to Prequel to share data to or sync data from your users and partners.|[Documentation](https://docs.prequel.co/docs/sources-clickhouse-generic)| -|Quesma||Data integration|Use Kibana and OpenSearch Dashboards with data in ClickHouse.|[Website](https://quesma.com/quesma-for-elk)| -|Redash|Redash logo|Data visualization|Connect and query your data sources, build dashboards to visualize data and share|[Website](https://redash.io/help/data-sources/querying/supported-data-sources)| -|Restack Data Hub|Restack logo|Data governance|Users can achieve more comprehensive data governance and observability framework with Restack Data Hub.|[Documentation](https://www.restack.io/docs/datahub-knowledge-datahub-clickhouse-integration)| -|Restack OpenMetadata|Restack logo|Data quality|Restack OpenMetadata supports metadata extraction, query usage tracking, data profiling, and data quality checks.|[Documentation](https://www.restack.io/docs/openmetadata-knowledge-openmetadata-clickhouse-integration)| -|Retool||No code|Create your application with drag-and-drop interface. |[Documentation](/integrations/retool)| -|Rill||Data visualization|Rill is an Operational BI tool purpose-built for slicing & dicing data with OLAP engines.|[Documentation](https://docs.rilldata.com/reference/olap-engines/clickhouse)| -|RisingWave||Data ingestion| SQL stream processing with a Postgres-like experience. 10x faster and more cost-efficient than Apache Flink. |[Documentation](https://docs.risingwave.com/docs/current/sink-to-clickhouse/)| -|RudderStack||Data ingestion|RudderStack makes it easy to collect and send customer data to the tools and teams that need it|[Documentation](https://www.rudderstack.com/docs/destinations/warehouse-destinations/clickhouse/)| -|RunReveal|RunReveal logo|Data ingestion|Ingest and normalize audit logs from any SaaS application into ClickHouse. Create alerts and detections from scheduled queries.|[Website](https://runreveal.com)| -|Sematext|Sematext logo|Data management|Observability monitoring for ClickHouse databases.|[Documentation](https://sematext.com/docs/integration/clickhouse/)| -|SiSense|SiSense logo|Data visualization|Embed analytics into any application or workflow|[Website](https://www.sisense.com/data-connectors/)| -|SigNoz|SigNoz logo|Data visualization|Open Source Observability Platform|[Documentation](https://www.signoz.io/docs/architecture/)| -|Snappy Flow|Snappy Flow logo|Data management|Collects ClickHouse database metrics via plugin.|[Documentation](https://docs.snappyflow.io/docs/Integrations/clickhouse/instance)| -|Soda|Soda logo|Data quality|Soda integration makes it easy for organizations to detect, resolve, and prevent data quality issues by running data quality checks on data before it is loaded into the database.|[Website](https://www.soda.io/integrations/clickhouse)| -|Splunk|Splunk logo|Data integration|Splunk modular input to import to Splunk the ClickHouse Cloud Audit logs.|[Website](https://splunkbase.splunk.com/app/7709),
[Documentation](/integrations/tools/data-integration/splunk/index.md)| -|StreamingFast|StreamingFast logo|Data ingestion| Blockchain-agnostic, parallelized and streaming-first data engine. |[Website](https://www.streamingfast.io/)| -|Streamkap|Streamkap logo|Data ingestion|Setup real-time CDC (Change Data Capture) streaming to ClickHouse with high throughput in minutes.|[Documentation](https://docs.streamkap.com/docs/clickhouse)| -|Supabase|Supabase logo|Data ingestion|Open source Firebase alternative|[GitHub](https://github.com/supabase/wrappers/tree/main/wrappers/src/fdw/clickhouse_fdw),[Blog](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres)| -|Teleport|Teleport logo|Secure connection|Teleport Database Service authenticates to ClickHouse using x509 certificates, which are available for the ClickHouse HTTP and Native (TCP) interfaces.|[Documentation](https://goteleport.com/docs/enroll-resources/database-access/enroll-self-hosted-databases/clickhouse-self-hosted/)| -|TABLUM.IO||SQL client|TABLUM.IO ingests data from a variety of sources, normalizes and cleans inconsistencies, and gives you access to it via SQL.|[Documentation](/integrations/sql-clients/tablum.md)| -|Tooljet|Tooljet logo|Data Visualization|ToolJet is an open-source low-code framework to build and deploy custom internal tools.|[Documentation](https://docs.tooljet.com/docs/data-sources/clickhouse/)| -|Upstash||Data Ingestion|A data platform offering serverless Kafka and other solutions|[Website](https://upstash.com/)| -|Vector|Vector logo|Data ingestion|A lightweight, ultra-fast tool for building observability pipelines with built-in compatibility with ClickHouse.|[Documentation](/integrations/vector/)| -|WarpStream||Data Ingestion|A Kafka compatible data streaming platform built directly on top of object storage|[Website](https://www.warpstream.com/)| -|YepCode||Data integration|YepCode is the integration & automation tool that loves source code.|[Documentation](https://yepcode.io/docs/integrations/clickhouse/)| -|Zing Data|Zing logo|Data visualization|Simple social business intelligence for ClickHouse, made for iOS, Android and the web.|[Documentation](https://docs.getzingdata.com/docs/)| - -
- -
+import { IntegrationGrid } from '@site/src/components/IntegrationGrid'; -## Community integrations +# Integrations -
+Connect ClickHouse with your favorite tools and services to build powerful data pipelines and analytics workflows. -|Name|Logo|Category|Description|Resources| -|------|----|----------------|------------------|-------------| -|Apache Airflow|Airflow logo|Data ingestion|Open-source workflow management platform for data engineering pipelines|[Github](https://github.com/bryzgaloff/airflow-clickhouse-plugin)| -|Apache Beam|Beam logo|Data ingestion|Open source, unified model and set of language-specific SDKs for defining and executing data processing workflows. Compatible with Google Dataflow.|[Documentation](/integrations/apache-beam),
[Examples](https://github.com/ClickHouse/clickhouse-beam-connector/)| -|Apache InLong|InLong logo|Data ingestion|One-stop integration framework for massive data|[Documentation](https://inlong.apache.org/docs/data_node/load_node/clickhouse)| -|Apache NiFi|NiFi logo|Data ingestion|Automates the flow of data between software systems|[Documentation](/integrations/nifi)| -|Apache SeaTunnel|SeaTunnel logo|Data ingestion|SeaTunnel is a very easy-to-use ultra-high-performance distributed data integration platform|[Website](https://seatunnel.apache.org/docs/2.3.0/connector-v2/sink/Clickhouse)| -|Apache SkyWalking|SkyWalking logo|Data management|Open-source APM system that provides monitoring, tracing and diagnosing capabilities for distributed systems in Cloud Native architectures.|[Blog](https://skywalking.apache.org/blog/2024-03-12-monitoring-clickhouse-through-skywalking/)| -|Apache StreamPark|SeaTunnel logo|Data ingestion|A stream processing application development framework and stream processing operation platform. |[Website](https://streampark.apache.org/docs/intro)| -|Bytebase|ByteBase logo|Data management|Open-source database DevOps tool, it's the GitLab for managing databases throughout the application development lifecycle|[Documentation](https://www.bytebase.com/docs/introduction/supported-databases)| -|CHProxy| |Data management|Chproxy is an HTTP proxy and load balancer for the ClickHouse database|[GitHub](https://github.com/ContentSquare/chproxy)| -|Chat-DBT| |AI Integration|Create ClickHouse queries using Chat GPT.|[GitHub](https://github.com/plmercereau/chat-dbt)| -|ClickHouse Monitoring Dashboard||Dashboard|A simple monitoring dashboard for ClickHouse|[Github](https://github.com/duyet/clickhouse-monitoring)| -|Common Lisp|clickhouse-cl Logo|Language client|Common Lisp ClickHouse Client Library|[GitHub](https://github.com/juliojimenez/clickhouse-cl)| -| Dataflow|Dataflow logo|Data ingestion|Google Dataflow is a serverless service for running batch and streaming data pipelines using Apache Beam.|[Documentation](/integrations/google-dataflow/dataflow)| -|DBNet|Airflow logo|Software IDE|Web-based SQL IDE using Go as a back-end, and the browser as the front-end.|[Github](https://github.com/dbnet-io/dbnet)| -|DataLens|Datalens logo|Data visualization|An open-source data analytics and visualization tool.|[Website](https://datalens.tech/),
[Documentation](https://datalens.tech/docs/en/)| -|Dataease|Dataease logo|Data visualization|Open source data visualization analysis tool to help users analyze data and gain insight into business trends.|[Website](https://dataease.io/)| -|Datahub|Datahub logo|Data management|Open Source Data Catalog that enables data discovery, data observability and federated governance|[Documentation](https://datahubproject.io/docs/generated/ingestion/sources/clickhouse/)| -|Dbmate| |Data management|Database migration tool that will keep your database schema in sync across multiple developers and servers|[GitHub](https://github.com/amacneil/dbmate#clickhouse)| -|DeepFlow|Deepflow logo|Data ingestion|Application Observability using eBPF|[Website](https://deepflow.io)| -|Dot|marimo logo|AI Chatbot|Dot is an intelligent virtual data assistant that answers business data questions, retrieves definitions and relevant data assets, and can even assist with data modelling.|[Website](https://www.getdot.ai/),
[Documentation](/integrations/data-visualization/community_integrations/dot-and-clickhouse.md)| -|Easypanel|Easypanel logo|Deployment method|It's a modern server control panel. You can use it to deploy ClickHouse on your own server.|[Website](https://easypanel.io),
[Documentation](/integrations/tools/data-integration/easypanel/index.md)| -|Explo||Data visualization|Explo helps companies build real-time analytics dashboard by providing flexible components.|[Website](https://www.explo.co/integrations/clickhouse)| -|Flink|Flink logo|Data ingestion|Flink sink for ClickHouse database, powered by Async Http Client|[GitHub](https://github.com/itinycheng/flink-connector-clickhouse)| -|Goose|Goose logo|Data migration|A database migration tool that supports SQL migrations and Go functions.|[GitHub](https://github.com/pressly/goose),
[Documentation](https://pressly.github.io/goose/)| -|Ibis|Ibis logo|Language client|The flexibility of Python analytics with the scale and performance of modern SQL|[Website](https://ibis-project.org/backends/ClickHouse/)| -|Jaeger|Jaeger logo|Data ingestion|Jaeger gRPC storage plugin implementation for storing traces in ClickHouse|[GitHub](https://github.com/jaegertracing/jaeger-clickhouse)| -|JupySQL|JupySQL logo|SQL client|The native SQL client for Jupyter notebooks.|[Documentation](/integrations/jupysql)| -|Kestra||Data orchestration|Open source data orchestration and scheduling platform|[Website](https://kestra.io/plugins/plugin-jdbc-clickhouse/)| -|Logchain|Adaptive Logchain logo|Security|Data security and privileged access management|[Website](https://github.com/adaptive-scale/logchain)| -|Meltano||Data ingestion|Meltano is an open-source, full-stack data integration platform|[Documentation](https://hub.meltano.com/extractors/tap-clickhouse) -|Mprove|mprove logo|Data visualization|Self-service Business Intelligence with Version Control|[Website](https://mprove.io/)| -|Netobserv||Data management|An OpenShift and Kubernetes operator for network observability.|[Blog](https://cloud.redhat.com/blog/deploying-network-observability-without-loki-an-example-with-clickhouse) -|Observable||Data visualization|Observable is a platform where you can collaboratively explore, analyze, visualize, and communicate with data on the web.|[Website](https://observablehq.com/@stas-sl/clickhouse-playground)| -|PHP|PHP logo|Language client|This extension provides the ClickHouse integration for the Yii framework 2.0|[GitHub](https://github.com/smi2/phpClickHouse)| -|Pgwarehouse||Data ingestion|Simple tool to quickly replicate Postgres tables into ClickHouse|[GitHub](https://github.com/scottpersinger/pgwarehouse)| -|Pinax|Pinax logo|Blockchain analytics|Indexing, analytics, and search tools for blockchains.|[Blog](https://blog.pinax.network/substreams/simplify-real-time-blockchain-analytics-with-clickhouse/)| -|Pulse|PulseUI logo|Data management|A developer platform for internal data UIs.|[Website](https://www.timestored.com/pulse/)| -|QStudio|QStudio logo|GUI|A simple to use GUI for interacting with ClickHouse databases.|[Website](https://www.timestored.com/qstudio/database/clickhouse)| -|Qryn|qryn logo|Data Ingestion, Management, Visualization | qryn is a polyglot observability stack built on top of ClickHouse, transparently compatible with Loki, Prometheus, Tempo, Opentelemetry and many other formats and standard APIs without requiring custom clients, code or plugins|[Documentation](https://qryn.dev), [Github](https://github.com/metrico), [Website](https://qryn.cloud)| -|RSyslog|RSyslog logo|Data Ingestion|This module provides native support for logging to ClickHouse.|[Documentation](https://www.rsyslog.com/doc/master/configuration/modules/omclickhouse.html)| -|Rocket.BI||Data visualization|RocketBI is a self-service business intelligence platform that helps you quickly analyze data, build drag-n-drop visualizations and collaborate with colleagues right on your web browser.|[GitHub](https://github.com/datainsider-co/rocket-bi),
[Documentation](/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md)| -|Ruby|Ruby logo|Language client|A modern Ruby database driver for ClickHouse|[GitHub](https://github.com/shlima/click_house)| -|R|R logo|Language client|R package is a DBI interface for the ClickHouse database|[GitHub](https://github.com/IMSMWU/RClickHouse)| -|SQLPad||SQL client|SQLPad is a web app for writing and running SQL queries and visualizing the results|[Documentation](https://getsqlpad.com/en/connections/#clickhouse)| -|Scala|Scala logo|Language client|ClickHouse Scala Client that uses Akka Http|[GitHub](https://github.com/crobox/clickhouse-scala-client)| -|SchemaSpy|SchemaSpy logo|Data visualization|SchemaSpy supports ClickHouse schema visualuzation|[GitHub](https://github.com/schemaspy/schemaspy)| -|TricksterCache||Data visualization| Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator |[Website](https://trickstercache.org/)| -|Visual Studio Client|VS logo|Language client|Visual studio lightweight client|[Marketplace](https://marketplace.visualstudio.com/items?itemName=fanruten.clickhouse-light)| -|VulcanSQL|VulcanSQL logo|Data API Framework|It's a Data API Framework for data applications that helps data folks create and share data APIs faster. It turns your SQL templates into data APIs. No backend skills required.|[Website](https://vulcansql.com/),
[Documentation](https://vulcansql.com/docs/connect/clickhouse)| -|marimo|marimo logo|SQL Client|An open-source reactive notebook for Python with SQL built-in. Create data visualizations, shareable apps or executable scripts.|[Website](https://marimo.io/),
[Documentation](https://docs.marimo.io/guides/working_with_data/sql/?h=sql#clickhouse-support)| -
+ -:::info Notice -Third-party logos and trademarks belong to their respective owners and are shown only to indicate available integrations. No endorsement is implied. -::: +:::note Notice +Third-party logos and trademarks belong to their respective owners and are shown only to indicate available integrations. +No endorsement is implied. +::: \ No newline at end of file diff --git a/docs/integrations/language-clients/python/index.md b/docs/integrations/language-clients/python/index.md index ea4fbed1e89..8f015111ccd 100644 --- a/docs/integrations/language-clients/python/index.md +++ b/docs/integrations/language-clients/python/index.md @@ -1,9 +1,9 @@ --- -title: 'Python' keywords: ['clickhouse', 'python', 'client', 'connect', 'integrate'] -description: 'Options for connecting to ClickHouse from Python' slug: /integrations/python -doc_type: 'reference' +description: 'The ClickHouse Connect project suite for connecting Python to ClickHouse' +title: 'Python Integration with ClickHouse Connect' +doc_type: 'guide' --- import Tabs from '@theme/Tabs'; diff --git a/docs/integrations/tools/data-integration/retool/index.md b/docs/integrations/tools/data-integration/retool/index.md index a33567b4111..2be4772b751 100644 --- a/docs/integrations/tools/data-integration/retool/index.md +++ b/docs/integrations/tools/data-integration/retool/index.md @@ -14,11 +14,11 @@ import retool_02 from '@site/static/images/integrations/tools/data-integration/r import retool_03 from '@site/static/images/integrations/tools/data-integration/retool/retool_03.png'; import retool_04 from '@site/static/images/integrations/tools/data-integration/retool/retool_04.png'; import retool_05 from '@site/static/images/integrations/tools/data-integration/retool/retool_05.png'; -import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Connecting Retool to ClickHouse - + ## 1. Gather your connection details {#1-gather-your-connection-details} diff --git a/docs/integrations/tools/data-integration/splunk/index.md b/docs/integrations/tools/data-integration/splunk/index.md index f57228f0fa7..4ef6ade244a 100644 --- a/docs/integrations/tools/data-integration/splunk/index.md +++ b/docs/integrations/tools/data-integration/splunk/index.md @@ -20,11 +20,11 @@ import splunk_009 from '@site/static/images/integrations/tools/data-integration/ import splunk_010 from '@site/static/images/integrations/tools/data-integration/splunk/splunk_010.png'; import splunk_011 from '@site/static/images/integrations/tools/data-integration/splunk/splunk_011.png'; import splunk_012 from '@site/static/images/integrations/tools/data-integration/splunk/splunk_012.png'; -import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported'; +import PartnerBadge from '@theme/badges/PartnerBadge'; # Storing ClickHouse Cloud Audit logs into Splunk - + [Splunk](https://www.splunk.com/) is a data analytics and monitoring platform. diff --git a/src/components/CUICard/CUICard.tsx b/src/components/CUICard/CUICard.tsx new file mode 100644 index 00000000000..a83e383f1de --- /dev/null +++ b/src/components/CUICard/CUICard.tsx @@ -0,0 +1,56 @@ +import React, { HTMLAttributes } from 'react' +import styles from './styles.module.scss' + +type CardComponent = React.FunctionComponent> & { + Header: React.FunctionComponent> + Body: React.FunctionComponent> + Footer: React.FunctionComponent> +} + +const CUICard: CardComponent = ({ + children, + className, + ...props +}): JSX.Element => ( +
+ {children} +
+) + +const Header = ({ + children, + className, + ...props +}: HTMLAttributes) => ( +
+ {children} +
+) + +CUICard.Header = Header + +const Body = ({ + children, + className, + ...props +}: HTMLAttributes) => ( +
+ {children} +
+) +CUICard.Body = Body + +const Footer = ({ + children, + className, + ...props +}: HTMLAttributes) => ( +
+ {children} +
+) +CUICard.Footer = Footer + +export default CUICard \ No newline at end of file diff --git a/src/components/CUICard/index.tsx b/src/components/CUICard/index.tsx new file mode 100644 index 00000000000..7ec31939b49 --- /dev/null +++ b/src/components/CUICard/index.tsx @@ -0,0 +1 @@ +export { default } from './CUICard'; \ No newline at end of file diff --git a/src/components/CUICard/styles.module.scss b/src/components/CUICard/styles.module.scss new file mode 100644 index 00000000000..c840664129e --- /dev/null +++ b/src/components/CUICard/styles.module.scss @@ -0,0 +1,60 @@ +// CUICard styles - to be added + +.cuiCard { + border-radius: .5rem; + background: #323230; + display: flex; + flex-direction: column; + aspect-ratio: 1; + width: 100%; + border: 1px solid rgba(65, 65, 65, .8); + padding: 1rem; + box-sizing: border-box; + justify-content: center; + align-items: center; + text-align: center; +} + +[data-theme='light'] .cuiCard { + background: #F6F7FA; + border-color: var(--ifm-color-emphasis-300); +} + +.cardBody { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + box-sizing: border-box; + position: relative; + justify-content: center; + align-items: center; + gap: 0.75rem; +} + +.cardHeader { + flex-shrink: 0; + display: flex; + justify-content: center; + align-items: center; +} + +.cardHeader img { + width: 5rem; + height: 5rem; + object-fit: contain; + max-width: 75%; + max-height: 75%; +} + +.cardFooter { + line-height: 1.2; + font-size: clamp(0.65rem, 2vw, 0.85rem); + font-weight: 600; + text-align: center; + word-wrap: break-word; + overflow-wrap: break-word; + hyphens: auto; + flex-shrink: 1; + min-height: 0; +} \ No newline at end of file diff --git a/src/components/IntegrationGrid/IntegrationGrid.tsx b/src/components/IntegrationGrid/IntegrationGrid.tsx new file mode 100644 index 00000000000..227b07dbe15 --- /dev/null +++ b/src/components/IntegrationGrid/IntegrationGrid.tsx @@ -0,0 +1,632 @@ +import React, { useState, useMemo, useEffect } from 'react'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import { useColorMode } from '@docusaurus/theme-common'; +import CUICard from '@site/src/components/CUICard'; +import styles from './styles.module.scss'; + +type CMSIntegrationData = { + id: number; + attributes: { + name: string; + slug: string; + category: string; + supportLevel: string; + docsLink?: string; + logo?: { + data?: { + attributes: { + url: string; + }; + }; + }; + logo_dark?: { + data?: { + attributes: { + url: string; + }; + }; + }; + }; +}; + +type IntegrationData = { + slug: string; + docsLink?: string; + integration_logo: string; + integration_logo_dark?: string; + integration_type: string[]; + integration_title?: string; + integration_tier?: string; +}; + +function IntegrationCard({ integration }: { integration: IntegrationData }) { + const { colorMode } = useColorMode(); + + // Convert ClickHouse docs URLs to relative links + const getNavigationLink = (docsLink: string | undefined, slug: string): string => { + if (!docsLink) { + return slug; + } + + // Check if it's a ClickHouse docs URL + const clickhouseDocsMatch = docsLink.match(/https:\/\/clickhouse\.com\/docs\/(.+)/); + if (clickhouseDocsMatch) { + // Convert to relative link by removing the domain and keeping everything after /docs + return `/${clickhouseDocsMatch[1]}`; + } + + // For external URLs, return as-is + return docsLink; + }; + + // Select appropriate logo based on theme and availability + const getLogoSrc = (): string => { + // If we're in dark mode and dark logo is available, use it + if (colorMode === 'dark' && integration.integration_logo_dark) { + return integration.integration_logo_dark; + } + // Otherwise, use the regular logo + return integration.integration_logo; + }; + + const linkTo = getNavigationLink(integration.docsLink, integration.slug); + + return ( + + + {/* Tier Icon in top right corner */} + {integration.integration_tier && integration.integration_tier !== 'community' && ( +
+ {getTierIcon(integration.integration_tier)} +
+ )} + + + {`${integration.integration_title + + + {integration.integration_title} + + +
+ + ); +} + +function IntegrationCards({ integrations }: { integrations: IntegrationData[] }) { + return ( +
+ {integrations.map((integration, index) => ( + + ))} +
+ ); +} + +// Helper function to transform CMS data to the expected format +function transformCMSData(cmsData: CMSIntegrationData[]): IntegrationData[] { + // Mapping from CMS category to display-friendly integration type + const categoryMapping: { [key: string]: string } = { + 'AI_ML': 'AI/ML', + 'CLICKPIPES': 'ClickPipes', + 'DATA_INGESTION': 'Data ingestion', + 'DATA_INTEGRATION': 'Data integration', + 'DATA_MANAGEMENT': 'Data management', + 'DATA_VISUALIZATION': 'Data visualization', + 'LANGUAGE_CLIENT': 'Language client', + 'SECURITY_GOVERNANCE': 'Security governance', + 'SQL_CLIENT': 'SQL client' + }; + + return cmsData.map(item => { + // Map category to integration_type array + const integrationTypes = item.attributes.category ? [categoryMapping[item.attributes.category] || item.attributes.category] : []; + + // Map supportLevel to integration_tier + const integrationTier = item.attributes.supportLevel?.toLowerCase() || ''; + + return { + slug: item.attributes.slug.startsWith('/') ? item.attributes.slug : `/${item.attributes.slug}`, + docsLink: item.attributes.docsLink, + integration_logo: item.attributes.logo?.data?.attributes.url ? `https://cms.clickhouse-dev.com:1337${item.attributes.logo.data.attributes.url}` : '', + integration_logo_dark: item.attributes.logo_dark?.data?.attributes.url ? `https://cms.clickhouse-dev.com:1337${item.attributes.logo_dark.data.attributes.url}` : undefined, + integration_type: integrationTypes, + integration_title: item.attributes.name, + integration_tier: integrationTier + }; + }); +} + +// Custom hook for fetching CMS data +function useCMSIntegrations() { + const [integrations, setIntegrations] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchIntegrations = async () => { + try { + setLoading(true); + const response = await fetch('https://cms.clickhouse-dev.com:1337/api/integrations?populate[]=logo&populate[]=logo_dark'); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + const transformedData = transformCMSData(data.data || []); + setIntegrations(transformedData); + setError(null); + } catch (err) { + console.error('Failed to fetch integrations from CMS:', err); + setError(err instanceof Error ? err.message : 'Failed to fetch integrations'); + setIntegrations([]); + } finally { + setLoading(false); + } + }; + + fetchIntegrations(); + }, []); + + return { integrations, loading, error }; +} + +export function IntegrationGrid() { + const { integrations, loading, error } = useCMSIntegrations(); + + // Initialize state from localStorage or default values + const [searchTerm, setSearchTerm] = useState(() => { + if (typeof window !== 'undefined') { + return localStorage.getItem('integrations-search') || ''; + } + return ''; + }); + + const [selectedFilter, setSelectedFilter] = useState(() => { + if (typeof window !== 'undefined') { + return localStorage.getItem('integrations-filter') || 'All'; + } + return 'All'; + }); + + const [selectedTier, setSelectedTier] = useState(() => { + if (typeof window !== 'undefined') { + return localStorage.getItem('integrations-tier') || 'All'; + } + return 'All'; + }); + + // Save to localStorage whenever state changes + useEffect(() => { + if (typeof window !== 'undefined') { + localStorage.setItem('integrations-search', searchTerm); + } + }, [searchTerm]); + + useEffect(() => { + if (typeof window !== 'undefined') { + localStorage.setItem('integrations-filter', selectedFilter); + } + }, [selectedFilter]); + + useEffect(() => { + if (typeof window !== 'undefined') { + localStorage.setItem('integrations-tier', selectedTier); + } + }, [selectedTier]); + + // Get unique integration types for filter buttons + const integrationTypes = useMemo(() => { + const types = new Set(); + integrations.forEach(integration => { + integration.integration_type.forEach(type => { + types.add(type); + }); + }); + + // Custom sort order + const sortOrder = [ + 'Language client', + 'ClickPipes', + 'Data ingestion', + 'Data visualization', + 'AI/ML', + 'Data integration', + 'Data management', + 'Security governance', + 'SQL client' + ]; + + return Array.from(types).sort((a, b) => { + const indexA = sortOrder.indexOf(a); + const indexB = sortOrder.indexOf(b); + + // If both items are in the sort order, sort by their position + if (indexA !== -1 && indexB !== -1) { + return indexA - indexB; + } + + // If only one item is in the sort order, prioritize it + if (indexA !== -1) return -1; + if (indexB !== -1) return 1; + + // If neither item is in the sort order, fall back to alphabetical + return a.localeCompare(b); + }); + }, [integrations]); + + // Get unique integration tiers for tier filter buttons + const integrationTiers = useMemo(() => { + const tiers = new Set(); + integrations.forEach(integration => { + if (integration.integration_tier) { + tiers.add(integration.integration_tier); + } + }); + + // Custom sort order for tiers + const tierSortOrder = ['core', 'partner', 'community']; + + return Array.from(tiers).sort((a, b) => { + const indexA = tierSortOrder.indexOf(a); + const indexB = tierSortOrder.indexOf(b); + + // If both items are in the sort order, sort by their position + if (indexA !== -1 && indexB !== -1) { + return indexA - indexB; + } + + // If only one item is in the sort order, prioritize it + if (indexA !== -1) return -1; + if (indexB !== -1) return 1; + + // If neither item is in the sort order, fall back to alphabetical + return a.localeCompare(b); + }); + }, [integrations]); + + // Filter and group integrations + const filteredIntegrations = useMemo(() => { + const filtered = integrations.filter(integration => { + const matchesSearch = integration.integration_title?.toLowerCase().includes(searchTerm.toLowerCase()) || + integration.slug.toLowerCase().includes(searchTerm.toLowerCase()); + + const matchesFilter = selectedFilter === 'All' || + integration.integration_type.some(type => type === selectedFilter); + + const matchesTier = selectedTier === 'All' || + integration.integration_tier === selectedTier; + + return matchesSearch && matchesFilter && matchesTier; + }); + + // Sort filtered results by tier first, then by title + return filtered.sort((a, b) => { + // Define tier priority order + const tierOrder = ['core', 'partner', 'community', '']; + const tierA = a.integration_tier || ''; + const tierB = b.integration_tier || ''; + + const tierIndexA = tierOrder.indexOf(tierA); + const tierIndexB = tierOrder.indexOf(tierB); + + // If tiers are different, sort by tier priority + if (tierIndexA !== tierIndexB) { + return tierIndexA - tierIndexB; + } + + // If tiers are the same, sort by title alphabetically + return (a.integration_title || '').localeCompare(b.integration_title || ''); + }); + }, [integrations, searchTerm, selectedFilter, selectedTier]); + + // Group integrations by type for sectioned view + const groupedIntegrations = useMemo(() => { + const grouped = new Map(); + + filteredIntegrations.forEach(integration => { + integration.integration_type.forEach(type => { + if (!grouped.has(type)) { + grouped.set(type, []); + } + // Avoid duplicates in the same section using slug + title combination + if (!grouped.get(type)?.find(item => item.slug === integration.slug && item.integration_title === integration.integration_title)) { + grouped.get(type)?.push(integration); + } + }); + }); + + // Sort each group by tier first, then by title + grouped.forEach((integrationsArray, key) => { + integrationsArray.sort((a, b) => { + // Define tier priority order + const tierOrder = ['core', 'partner', 'community', '']; + const tierA = a.integration_tier || ''; + const tierB = b.integration_tier || ''; + + const tierIndexA = tierOrder.indexOf(tierA); + const tierIndexB = tierOrder.indexOf(tierB); + + // If tiers are different, sort by tier priority + if (tierIndexA !== tierIndexB) { + return tierIndexA - tierIndexB; + } + + // If tiers are the same, sort by title alphabetically + return (a.integration_title || '').localeCompare(b.integration_title || ''); + }); + }); + + return grouped; + }, [filteredIntegrations]); + + // Handle loading state + if (loading) { + return ( +
+

Loading integrations...

+
+ ); + } + + // Handle error state + if (error) { + return ( +
+

Failed to load integrations: {error}

+

Please try refreshing the page.

+
+ ); + } + + // Handle empty state + if (integrations.length === 0) { + return ( +
+

No integrations found.

+
+ ); + } + + return ( +
+ {/* Search Bar */} +
+ + + + setSearchTerm(e.target.value)} + className={styles.searchInput} + /> +
+ + {/* Filter Buttons */} +
+ {/* Integration Type Filters - First Row */} +
+ + {integrationTypes.map(type => ( + + ))} +
+ + {/* Integration Tier Filters - Second Row */} +
+ + {integrationTiers.map(tier => ( + + ))} +
+
+ + {/* Integration Sections */} + {selectedFilter === 'All' ? ( + // Show sections grouped by type + Array.from(groupedIntegrations.entries()) + .sort(([a], [b]) => { + // Use the same sort order as the filter buttons + const sortOrder = [ + 'Language client', + 'ClickPipes', + 'Data ingestion', + 'Data visualization', + 'AI/ML', + 'Data integration', + 'Data management', + 'Security governance', + 'SQL client' + ]; + + const indexA = sortOrder.indexOf(a); + const indexB = sortOrder.indexOf(b); + + // If both items are in the sort order, sort by their position + if (indexA !== -1 && indexB !== -1) { + return indexA - indexB; + } + + // If only one item is in the sort order, prioritize it + if (indexA !== -1) return -1; + if (indexB !== -1) return 1; + + // If neither item is in the sort order, fall back to alphabetical + return a.localeCompare(b); + }) + .map(([type, typeIntegrations]) => ( +
+

+ {getProperCapitalization(type)} +

+

+ {getSectionDescription(type)} +

+ +
+ )) + ) : ( + // Show filtered results +
+

+ {getProperCapitalization(selectedFilter)} +

+

+ {getSectionDescription(selectedFilter)} +

+ +
+ )} + + {filteredIntegrations.length === 0 && ( +
+

No integrations found matching your criteria.

+
+ )} +
+ ); +} + +function getTierIcon(tier: string, withMargin = false): React.ReactNode { + const marginStyle = withMargin ? { marginRight: '6px' } : {}; + + switch (tier) { + case 'core': + return ( + + + + + + + + ); + case 'partner': + return ( + + + + + + + + + ); + case 'community': + return ( + + + + + + + + + ); + default: + return null; + } +} + +function getProperCapitalization(text: string): string { + // Handle special cases + const specialCases: { [key: string]: string } = { + 'ai/ml': 'AI/ML', + 'clickpipes': 'ClickPipes', + 'data ingestion': 'Data ingestion', + 'data integration': 'Data integration', + 'data management': 'Data management', + 'data visualization': 'Data visualization', + 'deployment method': 'Deployment method', + 'language client': 'Language client', + 'security governance': 'Security governance', + 'sql client': 'SQL client' + }; + + const lowerText = text.toLowerCase(); + if (specialCases[lowerText]) { + return specialCases[lowerText]; + } + + // Default capitalization + return text.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); +} + +function getSectionDescription(type: string): string { + const descriptions: { [key: string]: string } = { + 'ClickPipes': 'ClickPipes is an integration engine that makes ingesting massive volumes of data from a diverse set of sources as simple as clicking a few buttons.', + 'Data ingestion': 'Streamline your data pipelines with ClickHouse! Seamless integrations ensure efficient ingestion, optimizing real-time analytics.', + 'Data visualization': 'Illuminate your data stories! ClickHouse integrations enhance visualization, making insights more vivid & actionable.', + 'SQL client': 'Access and query ClickHouse databases using familiar SQL client tools and interfaces.', + 'Language client': 'Code in your comfort zone! ClickHouse\'s language client integrations make data access fluent across multiple programming languages.', + 'AI/ML': 'Leverage ClickHouse for machine learning and AI workloads with integrated ML tools and frameworks.', + 'Data management': 'Manage, monitor, and optimize your ClickHouse data with specialized management tools.', + 'Data integration': 'Integrate ClickHouse with your existing data infrastructure and workflows.', + 'Security governance': 'Implement security and governance frameworks for your ClickHouse environment.' + }; + return descriptions[type] || 'Integrate ClickHouse with specialized tools and services.'; +} \ No newline at end of file diff --git a/src/components/IntegrationGrid/index.tsx b/src/components/IntegrationGrid/index.tsx new file mode 100644 index 00000000000..26cf3326f97 --- /dev/null +++ b/src/components/IntegrationGrid/index.tsx @@ -0,0 +1 @@ +export { IntegrationGrid } from './IntegrationGrid'; \ No newline at end of file diff --git a/src/components/IntegrationGrid/styles.module.scss b/src/components/IntegrationGrid/styles.module.scss new file mode 100644 index 00000000000..c8dd02049ae --- /dev/null +++ b/src/components/IntegrationGrid/styles.module.scss @@ -0,0 +1,181 @@ +@use '../../css/breakpoints.scss' as breakpoints; + +.integrationsContainer { + max-width: 1200px; + margin: 0 auto; + padding: 0 1rem; +} + +.searchContainer { + margin: 2rem 0 12px 0; + display: flex; + justify-content: flex-start; + position: relative; +} + +.searchInput { + width: 100%; + max-width: 500px; + height: 38px; + padding: 0.5rem 0.75rem 0.5rem 2.5rem; + border-radius: 12px; + font-size: 0.875rem; + background: #F6F7FA; + color: var(--ifm-font-color-base); + border: 1px solid var(--ifm-color-emphasis-300); + line-height: 1.4; + box-sizing: border-box; + + &:focus { + outline: none; + } + + [data-theme='dark'] &:focus { + border-color: #FAFF69; + } + + &::placeholder { + color: var(--ifm-color-emphasis-600); + font-weight: 400; + } + + [data-theme='dark'] & { + --tw-bg-opacity: 1; + background: rgb(40 40 40 / var(--tw-bg-opacity)); + border-color: var(--ifm-color-emphasis-300); + } +} + +.searchIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + width: 14px; + height: 14px; + color: var(--ifm-color-emphasis-600); + pointer-events: none; + z-index: 1; +} + +.filterContainer { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin: 2rem 0; + + @media (max-width: breakpoints.$mobile-breakpoint) { + justify-content: flex-start; + overflow-x: auto; + padding-bottom: 4px; + + &::-webkit-scrollbar { + height: 4px; + } + + &::-webkit-scrollbar-track { + background: var(--ifm-color-emphasis-200); + border-radius: 2px; + } + + &::-webkit-scrollbar-thumb { + background: var(--ifm-color-emphasis-400); + border-radius: 2px; + } + } +} + +.filterButton { + padding: 8px 16px; + border: 1px solid var(--ifm-color-emphasis-300); + border-radius: 20px; + background: var(--ifm-background-color); + color: var(--ifm-font-color-base); + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + white-space: nowrap; + + &:hover { + border-color: var(--ifm-color-primary); + background: var(--ifm-color-primary-lightest); + } + + [data-theme='dark'] &:hover { + background: #FAFF69; + border-color: #FAFF69; + color: #000; + } + + &.active { + background: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); + color: white; + } + + [data-theme='dark'] &.active { + background: #FAFF69; + border-color: #FAFF69; + color: #000; + } +} + +.integrationSection { + margin: 3rem 0; + + &:first-child { + margin-top: 1rem; + } +} + +.sectionTitle { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--ifm-font-color-base); +} + +.sectionDescription { + font-size: 1rem; + color: var(--ifm-font-color-secondary); + margin-bottom: 2rem; + line-height: 1.6; +} + +.integrationGrid { + + grid-template-columns: repeat(2, minmax(0, 1fr)); + + // Small desktop - 3 columns + @media (min-width: breakpoints.$tablet-breakpoint) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + // Medium desktop - 4 columns + @media (min-width: 1260px) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + // Large desktop - 5 columns + @media (min-width: breakpoints.$laptop-breakpoint) { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } + + // Extra large screens - 6 columns + @media (min-width: 1600px) { + grid-template-columns: repeat(6, minmax(0, 1fr)); + } +} + +.noResults { + text-align: center; + padding: 3rem 1rem; + color: var(--ifm-font-color-secondary); + + p { + font-size: 1.1rem; + margin: 0; + } +} \ No newline at end of file diff --git a/src/theme/Footer/Layout/styles.module.scss b/src/theme/Footer/Layout/styles.module.scss index c27483959f7..f64636d7211 100644 --- a/src/theme/Footer/Layout/styles.module.scss +++ b/src/theme/Footer/Layout/styles.module.scss @@ -11,6 +11,7 @@ width: 100%; background-color: white; height: 3.5rem; + z-index: 100; } .container { diff --git a/static/images/integrations/logos/amazon_kinesis_logo.svg b/static/images/integrations/logos/amazon_kinesis_logo.svg index c848407b742..b4d0a6dd2d5 100644 --- a/static/images/integrations/logos/amazon_kinesis_logo.svg +++ b/static/images/integrations/logos/amazon_kinesis_logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/static/images/integrations/logos/amazon_msk.svg b/static/images/integrations/logos/amazon_msk.svg index c4ba73a0e63..e894c0bfb0f 100644 --- a/static/images/integrations/logos/amazon_msk.svg +++ b/static/images/integrations/logos/amazon_msk.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/integrations/logos/azure_event_hubs.svg b/static/images/integrations/logos/azure_event_hubs.svg index 540f89c6b43..098cb5e1024 100644 --- a/static/images/integrations/logos/azure_event_hubs.svg +++ b/static/images/integrations/logos/azure_event_hubs.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/static/images/integrations/logos/chproxy.svg b/static/images/integrations/logos/chproxy.svg new file mode 100644 index 00000000000..fb558caa8ca --- /dev/null +++ b/static/images/integrations/logos/chproxy.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/static/images/integrations/logos/clickpipes_for_amazon_s3.svg b/static/images/integrations/logos/clickpipes_for_amazon_s3.svg new file mode 100644 index 00000000000..cd78a6f4efc --- /dev/null +++ b/static/images/integrations/logos/clickpipes_for_amazon_s3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/integrations/logos/dbeaver_logo.svg b/static/images/integrations/logos/dbeaver_logo.svg index f55e363df7a..dd8ca06cef0 100644 --- a/static/images/integrations/logos/dbeaver_logo.svg +++ b/static/images/integrations/logos/dbeaver_logo.svg @@ -1,7 +1,9 @@ - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/static/images/integrations/logos/deltalake.png b/static/images/integrations/logos/deltalake.png deleted file mode 100644 index 50287219024..00000000000 Binary files a/static/images/integrations/logos/deltalake.png and /dev/null differ diff --git a/static/images/integrations/logos/deltalake.svg b/static/images/integrations/logos/deltalake.svg new file mode 100644 index 00000000000..814654b6e09 --- /dev/null +++ b/static/images/integrations/logos/deltalake.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/static/images/integrations/logos/lakekeeper.svg b/static/images/integrations/logos/lakekeeper.svg new file mode 100644 index 00000000000..ae099d55e59 --- /dev/null +++ b/static/images/integrations/logos/lakekeeper.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/integrations/logos/langchain.svg b/static/images/integrations/logos/langchain.svg new file mode 100644 index 00000000000..06d5f5eb3ca --- /dev/null +++ b/static/images/integrations/logos/langchain.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/static/images/integrations/logos/logo_cpp.png b/static/images/integrations/logos/logo_cpp.png deleted file mode 100644 index 38d99684e06..00000000000 Binary files a/static/images/integrations/logos/logo_cpp.png and /dev/null differ diff --git a/static/images/integrations/logos/logo_cpp.svg b/static/images/integrations/logos/logo_cpp.svg new file mode 100644 index 00000000000..4b27aa39373 --- /dev/null +++ b/static/images/integrations/logos/logo_cpp.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/integrations/logos/nessie.png b/static/images/integrations/logos/nessie.png new file mode 100644 index 00000000000..0e0257aadbf Binary files /dev/null and b/static/images/integrations/logos/nessie.png differ