This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch feat/db-engine-docs in repository https://gitbox.apache.org/repos/asf/superset.git
commit 5154fb5d6e571a6c8362ab18973e27a9fd2feb56 Author: Evan Rusackas <[email protected]> AuthorDate: Sun Dec 21 12:18:06 2025 -0800 feat(docs): generate individual pages per database - Update generate-database-docs.mjs to create individual MDX files - Each database now has its own page at /docs/configuration/databases/{slug} - Overview page at /docs/configuration/databases/ with filterable table - Fix category counts in filter dropdown - Links in table now point to individual pages - Use cached databases.json when it has full diagnostic data Generated 64 database pages + index page. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> --- docs/docs/configuration/databases.mdx | 193 -------------- docs/docs/configuration/databases/_category_.json | 8 + .../docs/configuration/databases/amazon-athena.mdx | 29 +++ .../configuration/databases/amazon-dynamodb.mdx | 29 +++ .../configuration/databases/amazon-redshift.mdx | 29 +++ docs/docs/configuration/databases/apache-doris.mdx | 29 +++ docs/docs/configuration/databases/apache-drill.mdx | 29 +++ docs/docs/configuration/databases/apache-druid.mdx | 29 +++ docs/docs/configuration/databases/apache-hive.mdx | 29 +++ .../docs/configuration/databases/apache-impala.mdx | 29 +++ docs/docs/configuration/databases/apache-kylin.mdx | 29 +++ docs/docs/configuration/databases/apache-pinot.mdx | 29 +++ docs/docs/configuration/databases/apache-solr.mdx | 29 +++ .../configuration/databases/apache-spark-sql.mdx | 29 +++ docs/docs/configuration/databases/ascend.mdx | 29 +++ .../databases/aurora-mysql-data-api.mdx | 29 +++ .../databases/aurora-postgresql-data-api.mdx | 29 +++ .../docs/configuration/databases/azure-synapse.mdx | 29 +++ docs/docs/configuration/databases/base.mdx | 29 +++ .../databases/clickhouse-connect-superset.mdx | 29 +++ docs/docs/configuration/databases/clickhouse.mdx | 29 +++ docs/docs/configuration/databases/cockroachdb.mdx | 29 +++ docs/docs/configuration/databases/couchbase.mdx | 29 +++ docs/docs/configuration/databases/cratedb.mdx | 29 +++ docs/docs/configuration/databases/databend.mdx | 29 +++ .../databases/databricks-interactive-cluster.mdx | 29 +++ .../configuration/databases/databricks-legacy.mdx | 29 +++ .../databases/databricks-sql-endpoint.mdx | 29 +++ docs/docs/configuration/databases/databricks.mdx | 29 +++ docs/docs/configuration/databases/denodo.mdx | 29 +++ docs/docs/configuration/databases/dremio.mdx | 29 +++ docs/docs/configuration/databases/duckdb.mdx | 29 +++ .../databases/elasticsearch-opendistro-sql.mdx | 29 +++ .../databases/elasticsearch-sql-api.mdx | 29 +++ docs/docs/configuration/databases/exasol.mdx | 29 +++ docs/docs/configuration/databases/firebird.mdx | 29 +++ docs/docs/configuration/databases/firebolt.mdx | 29 +++ .../docs/configuration/databases/google-sheets.mdx | 29 +++ .../docs/configuration/databases/ibm-db2-for-i.mdx | 29 +++ docs/docs/configuration/databases/ibm-db2.mdx | 29 +++ .../databases/ibm-netezza-performance-server.mdx | 29 +++ docs/docs/configuration/databases/index.mdx | 90 +++++++ docs/docs/configuration/databases/kustokql.mdx | 29 +++ docs/docs/configuration/databases/kustosql.mdx | 29 +++ docs/docs/configuration/databases/mariadb.mdx | 29 +++ .../databases/microsoft-sql-server.mdx | 29 +++ docs/docs/configuration/databases/motherduck.mdx | 29 +++ docs/docs/configuration/databases/mysql.mdx | 29 +++ docs/docs/configuration/databases/oceanbase.mdx | 29 +++ docs/docs/configuration/databases/ocient.mdx | 29 +++ docs/docs/configuration/databases/oracle.mdx | 29 +++ docs/docs/configuration/databases/parseable.mdx | 29 +++ docs/docs/configuration/databases/postgresql.mdx | 29 +++ docs/docs/configuration/databases/presto.mdx | 29 +++ docs/docs/configuration/databases/risingwave.mdx | 29 +++ docs/docs/configuration/databases/sap-hana.mdx | 29 +++ docs/docs/configuration/databases/shillelagh.mdx | 29 +++ docs/docs/configuration/databases/singlestore.mdx | 29 +++ docs/docs/configuration/databases/snowflake.mdx | 29 +++ docs/docs/configuration/databases/sqlite.mdx | 29 +++ docs/docs/configuration/databases/starrocks.mdx | 29 +++ .../databases/superset-meta-database.mdx | 29 +++ docs/docs/configuration/databases/tdengine.mdx | 29 +++ docs/docs/configuration/databases/teradata.mdx | 29 +++ docs/docs/configuration/databases/trino.mdx | 29 +++ docs/docs/configuration/databases/vertica.mdx | 29 +++ docs/docs/configuration/databases/ydb.mdx | 29 +++ docs/scripts/generate-database-docs.mjs | 281 ++++++++++++++++++--- docs/src/components/databases/DatabaseIndex.tsx | 25 +- 69 files changed, 2222 insertions(+), 231 deletions(-) diff --git a/docs/docs/configuration/databases.mdx b/docs/docs/configuration/databases.mdx deleted file mode 100644 index 447e5b7142..0000000000 --- a/docs/docs/configuration/databases.mdx +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Connecting to Databases -hide_title: true -sidebar_position: 1 -version: 1 ---- - -import { DatabaseIndex, DatabasePage } from '@site/src/components/databases'; -import databaseData from '@site/src/data/databases.json'; - -# Connecting to Databases - -Superset does not ship bundled with connectivity to databases. The main step in connecting -Superset to a database is to **install the proper database driver(s)** -in your environment. - -:::note -You'll need to install the required packages for the database you want to use as your metadata database -as well as the packages needed to connect to the databases you want to access through Superset. -For information about setting up Superset's metadata database, please refer to -installation documentations ([Docker Compose](/docs/installation/docker-compose), [Kubernetes](/docs/installation/kubernetes)) -::: - -This documentation tries to keep pointer to the different drivers for commonly used database -engine. - -## Installing Database Drivers - -Superset requires a Python [DB-API database driver](https://peps.python.org/pep-0249/) -and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be installed for -each database engine you want to connect to. - -You can read more [here](#installing-drivers-in-docker-images) about how to -install new database drivers into your Superset configuration. - -## Supported Databases Overview - -The following table shows all databases supported by Superset, along with their feature support -and documentation status. Click on any database name to jump to its detailed documentation. - -<DatabaseIndex data={databaseData} /> - ---- - -Note that many other databases are supported, the main criteria being the existence of a functional -SQLAlchemy dialect and Python driver. Searching for the keyword "sqlalchemy + (database name)" -should help get you to the right place. - -If your database or data engine isn't on the list but a SQL interface -exists, please file an issue on the -[Superset GitHub repo](https://github.com/apache/superset/issues), so we can work on documenting and -supporting it. - -If you'd like to build a database connector for Superset integration, -read the [following tutorial](https://preset.io/blog/building-database-connector/). - -## Installing Drivers in Docker Images - -Superset requires a Python database driver to be installed for each additional -type of database you want to connect to. - -In this example, we'll walk through how to install the MySQL connector library. -The connector library installation process is the same for all additional libraries. - -### 1. Determine the driver you need - -Consult the [list of database drivers](#supported-databases-overview) above -and find the PyPI package needed to connect to your database. In this example, we're connecting -to a MySQL database, so we'll need the `mysqlclient` connector library. - -### 2. Install the driver in the container - -We need to get the `mysqlclient` library installed into the Superset docker container -(it doesn't matter if it's installed on the host machine). We could enter the running -container with `docker exec -it <container_name> bash` and run `pip install mysqlclient` -there, but that wouldn't persist permanently. - -To address this, the Superset `docker compose` deployment uses the convention -of a `requirements-local.txt` file. All packages listed in this file will be installed -into the container from PyPI at runtime. This file will be ignored by Git for -the purposes of local development. - -Create the file `requirements-local.txt` in a subdirectory called `docker` that -exists in the directory with your `docker-compose.yml` or `docker-compose-non-dev.yml` file. - -```bash -# Run from the repo root: -touch ./docker/requirements-local.txt -``` - -Add the driver identified in step above. You can use a text editor or do -it from the command line like: - -```bash -echo "mysqlclient" >> ./docker/requirements-local.txt -``` - -**If you are running a stock (non-customized) Superset image**, you are done. -Launch Superset with `docker compose -f docker-compose-non-dev.yml up` and -the driver should be present. - -You can check its presence by entering the running container with -`docker exec -it <container_name> bash` and running `pip freeze`. The PyPI package should -be present in the printed list. - -**If you're running a customized docker image**, rebuild your local image with the new -driver baked in: - -```bash -docker compose build --force-rm -``` - -After the rebuild of the Docker images is complete, relaunch Superset by -running `docker compose up`. - -### 3. Connect to the Database - -Now that you've got a database driver installed in your container, you should be able to connect -to your database via the Superset web UI. - -As an admin user, go to Settings -> Data: Database Connections and click the +DATABASE button. -From there, follow the steps on the -[Using Database Connection UI page](#connecting-through-the-ui). - -Consult the documentation for your specific database type below to determine -the connection string and any other parameters you need to input. - -Click the "Test Connection" button, which should result in a popup message saying, -"Connection looks good!". - -### 4. Troubleshooting - -If the test fails, review your docker logs for error messages. Superset uses SQLAlchemy -to connect to databases; to troubleshoot the connection string for your database, you might -start Python in the Superset application container or host environment and try to connect -directly to the desired database and fetch data. This eliminates Superset for the -purposes of isolating the problem. - -Repeat this process for each type of database you want Superset to connect to. - -## Connecting Through the UI - -The preferred way to add a database is via the Database Connection UI feature, accessible in -the menu under Settings -> Data: Database Connections. This UI provides a guided flow -for entering connection details. - -Here is a screenshot of the modal: - -<img src="/img/tutorial/tutorial_01_add_database.png" alt="Add Database" width="600"/> - -For most databases, you'll need: -- **Display Name**: A friendly name for this connection -- **SQLAlchemy URI**: The connection string (format depends on the database) -- **Additional Parameters**: Optional JSON configuration - -### Testing Your Connection - -Always click "Test Connection" before saving. Common issues include: -- Incorrect credentials -- Network/firewall blocking the connection -- Missing database driver -- SSL/TLS configuration issues - -## Database-Specific Documentation - -Below is detailed documentation for each supported database, including connection strings, -authentication methods, driver options, and advanced configuration. - -{Object.entries(databaseData.databases) - .sort(([a], [b]) => a.localeCompare(b)) - .map(([name, db]) => ( - <DatabasePage key={name} name={name} database={db} /> - ))} - -## Additional Resources - -### Adding New Database Drivers - -If your database isn't listed above, you may still be able to connect if: -1. A SQLAlchemy dialect exists for the database -2. A Python DB-API driver is available - -Search for "sqlalchemy + (your database name)" to find available dialects. - -### Contributing Documentation - -To add or improve database documentation: -1. Update the `DATABASE_DOCS` dictionary in `superset/db_engine_specs/lib.py` -2. Run `yarn generate:database-docs` in the `docs/` directory -3. The documentation pages will be automatically generated - -This ensures that documentation stays in sync with the codebase and can be -verified programmatically. diff --git a/docs/docs/configuration/databases/_category_.json b/docs/docs/configuration/databases/_category_.json new file mode 100644 index 0000000000..1611054d64 --- /dev/null +++ b/docs/docs/configuration/databases/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Databases", + "position": 1, + "link": { + "type": "doc", + "id": "configuration/databases/index" + } +} \ No newline at end of file diff --git a/docs/docs/configuration/databases/amazon-athena.mdx b/docs/docs/configuration/databases/amazon-athena.mdx new file mode 100644 index 0000000000..2bd96d0d6d --- /dev/null +++ b/docs/docs/configuration/databases/amazon-athena.mdx @@ -0,0 +1,29 @@ +--- +title: Amazon Athena +sidebar_label: Amazon Athena +description: "Documentation for Amazon Athena database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Amazon Athena" database={databaseData.databases["Amazon Athena"]} /> diff --git a/docs/docs/configuration/databases/amazon-dynamodb.mdx b/docs/docs/configuration/databases/amazon-dynamodb.mdx new file mode 100644 index 0000000000..eccbc03df4 --- /dev/null +++ b/docs/docs/configuration/databases/amazon-dynamodb.mdx @@ -0,0 +1,29 @@ +--- +title: Amazon DynamoDB +sidebar_label: Amazon DynamoDB +description: "Documentation for Amazon DynamoDB database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Amazon DynamoDB" database={databaseData.databases["Amazon DynamoDB"]} /> diff --git a/docs/docs/configuration/databases/amazon-redshift.mdx b/docs/docs/configuration/databases/amazon-redshift.mdx new file mode 100644 index 0000000000..1d1a9a8666 --- /dev/null +++ b/docs/docs/configuration/databases/amazon-redshift.mdx @@ -0,0 +1,29 @@ +--- +title: Amazon Redshift +sidebar_label: Amazon Redshift +description: "Documentation for Amazon Redshift database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Amazon Redshift" database={databaseData.databases["Amazon Redshift"]} /> diff --git a/docs/docs/configuration/databases/apache-doris.mdx b/docs/docs/configuration/databases/apache-doris.mdx new file mode 100644 index 0000000000..524003549b --- /dev/null +++ b/docs/docs/configuration/databases/apache-doris.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Doris +sidebar_label: Apache Doris +description: "Apache Doris is a high-performance real-time analytical database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Doris" database={databaseData.databases["Apache Doris"]} /> diff --git a/docs/docs/configuration/databases/apache-drill.mdx b/docs/docs/configuration/databases/apache-drill.mdx new file mode 100644 index 0000000000..9e0ae5b7b5 --- /dev/null +++ b/docs/docs/configuration/databases/apache-drill.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Drill +sidebar_label: Apache Drill +description: "Apache Drill is a schema-free SQL query engine for Hadoop and NoSQL." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Drill" database={databaseData.databases["Apache Drill"]} /> diff --git a/docs/docs/configuration/databases/apache-druid.mdx b/docs/docs/configuration/databases/apache-druid.mdx new file mode 100644 index 0000000000..7a11be6269 --- /dev/null +++ b/docs/docs/configuration/databases/apache-druid.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Druid +sidebar_label: Apache Druid +description: "Apache Druid is a high performance real-time analytics database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Druid" database={databaseData.databases["Apache Druid"]} /> diff --git a/docs/docs/configuration/databases/apache-hive.mdx b/docs/docs/configuration/databases/apache-hive.mdx new file mode 100644 index 0000000000..6a97e96236 --- /dev/null +++ b/docs/docs/configuration/databases/apache-hive.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Hive +sidebar_label: Apache Hive +description: "Apache Hive is a data warehouse infrastructure built on Hadoop." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Hive" database={databaseData.databases["Apache Hive"]} /> diff --git a/docs/docs/configuration/databases/apache-impala.mdx b/docs/docs/configuration/databases/apache-impala.mdx new file mode 100644 index 0000000000..5171d342fe --- /dev/null +++ b/docs/docs/configuration/databases/apache-impala.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Impala +sidebar_label: Apache Impala +description: "Apache Impala is an open-source massively parallel processing SQL query engine." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Impala" database={databaseData.databases["Apache Impala"]} /> diff --git a/docs/docs/configuration/databases/apache-kylin.mdx b/docs/docs/configuration/databases/apache-kylin.mdx new file mode 100644 index 0000000000..98c387fa35 --- /dev/null +++ b/docs/docs/configuration/databases/apache-kylin.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Kylin +sidebar_label: Apache Kylin +description: "Apache Kylin is an open-source OLAP engine for big data." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Kylin" database={databaseData.databases["Apache Kylin"]} /> diff --git a/docs/docs/configuration/databases/apache-pinot.mdx b/docs/docs/configuration/databases/apache-pinot.mdx new file mode 100644 index 0000000000..cf083771cb --- /dev/null +++ b/docs/docs/configuration/databases/apache-pinot.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Pinot +sidebar_label: Apache Pinot +description: "Apache Pinot is a real-time distributed OLAP datastore." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Pinot" database={databaseData.databases["Apache Pinot"]} /> diff --git a/docs/docs/configuration/databases/apache-solr.mdx b/docs/docs/configuration/databases/apache-solr.mdx new file mode 100644 index 0000000000..6260309cb9 --- /dev/null +++ b/docs/docs/configuration/databases/apache-solr.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Solr +sidebar_label: Apache Solr +description: "Apache Solr is an open-source enterprise search platform." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Solr" database={databaseData.databases["Apache Solr"]} /> diff --git a/docs/docs/configuration/databases/apache-spark-sql.mdx b/docs/docs/configuration/databases/apache-spark-sql.mdx new file mode 100644 index 0000000000..2781f67d3c --- /dev/null +++ b/docs/docs/configuration/databases/apache-spark-sql.mdx @@ -0,0 +1,29 @@ +--- +title: Apache Spark SQL +sidebar_label: Apache Spark SQL +description: "Apache Spark SQL is a module for structured data processing." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Apache Spark SQL" database={databaseData.databases["Apache Spark SQL"]} /> diff --git a/docs/docs/configuration/databases/ascend.mdx b/docs/docs/configuration/databases/ascend.mdx new file mode 100644 index 0000000000..4563c1b0bc --- /dev/null +++ b/docs/docs/configuration/databases/ascend.mdx @@ -0,0 +1,29 @@ +--- +title: Ascend +sidebar_label: Ascend +description: "Documentation for Ascend database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Ascend" database={databaseData.databases["Ascend"]} /> diff --git a/docs/docs/configuration/databases/aurora-mysql-data-api.mdx b/docs/docs/configuration/databases/aurora-mysql-data-api.mdx new file mode 100644 index 0000000000..58939855cc --- /dev/null +++ b/docs/docs/configuration/databases/aurora-mysql-data-api.mdx @@ -0,0 +1,29 @@ +--- +title: Aurora MySQL (Data API) +sidebar_label: Aurora MySQL (Data API) +description: "Documentation for Aurora MySQL (Data API) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Aurora MySQL (Data API)" database={databaseData.databases["Aurora MySQL (Data API)"]} /> diff --git a/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx b/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx new file mode 100644 index 0000000000..b7627b001a --- /dev/null +++ b/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx @@ -0,0 +1,29 @@ +--- +title: Aurora PostgreSQL (Data API) +sidebar_label: Aurora PostgreSQL (Data API) +description: "Documentation for Aurora PostgreSQL (Data API) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Aurora PostgreSQL (Data API)" database={databaseData.databases["Aurora PostgreSQL (Data API)"]} /> diff --git a/docs/docs/configuration/databases/azure-synapse.mdx b/docs/docs/configuration/databases/azure-synapse.mdx new file mode 100644 index 0000000000..0d79774afb --- /dev/null +++ b/docs/docs/configuration/databases/azure-synapse.mdx @@ -0,0 +1,29 @@ +--- +title: Azure Synapse +sidebar_label: Azure Synapse +description: "Documentation for Azure Synapse database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Azure Synapse" database={databaseData.databases["Azure Synapse"]} /> diff --git a/docs/docs/configuration/databases/base.mdx b/docs/docs/configuration/databases/base.mdx new file mode 100644 index 0000000000..88a03fdfa7 --- /dev/null +++ b/docs/docs/configuration/databases/base.mdx @@ -0,0 +1,29 @@ +--- +title: base +sidebar_label: base +description: "Documentation for base database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="base" database={databaseData.databases["base"]} /> diff --git a/docs/docs/configuration/databases/clickhouse-connect-superset.mdx b/docs/docs/configuration/databases/clickhouse-connect-superset.mdx new file mode 100644 index 0000000000..9f4970e2e1 --- /dev/null +++ b/docs/docs/configuration/databases/clickhouse-connect-superset.mdx @@ -0,0 +1,29 @@ +--- +title: ClickHouse Connect (Superset) +sidebar_label: ClickHouse Connect (Superset) +description: "Documentation for ClickHouse Connect (Superset) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="ClickHouse Connect (Superset)" database={databaseData.databases["ClickHouse Connect (Superset)"]} /> diff --git a/docs/docs/configuration/databases/clickhouse.mdx b/docs/docs/configuration/databases/clickhouse.mdx new file mode 100644 index 0000000000..66ff6a0a8e --- /dev/null +++ b/docs/docs/configuration/databases/clickhouse.mdx @@ -0,0 +1,29 @@ +--- +title: ClickHouse +sidebar_label: ClickHouse +description: "ClickHouse is an open-source column-oriented OLAP database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="ClickHouse" database={databaseData.databases["ClickHouse"]} /> diff --git a/docs/docs/configuration/databases/cockroachdb.mdx b/docs/docs/configuration/databases/cockroachdb.mdx new file mode 100644 index 0000000000..9becdc4628 --- /dev/null +++ b/docs/docs/configuration/databases/cockroachdb.mdx @@ -0,0 +1,29 @@ +--- +title: CockroachDB +sidebar_label: CockroachDB +description: "CockroachDB is a distributed SQL database built for cloud applications." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="CockroachDB" database={databaseData.databases["CockroachDB"]} /> diff --git a/docs/docs/configuration/databases/couchbase.mdx b/docs/docs/configuration/databases/couchbase.mdx new file mode 100644 index 0000000000..36ef32f098 --- /dev/null +++ b/docs/docs/configuration/databases/couchbase.mdx @@ -0,0 +1,29 @@ +--- +title: Couchbase +sidebar_label: Couchbase +description: "Couchbase is a distributed NoSQL document database with SQL support." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Couchbase" database={databaseData.databases["Couchbase"]} /> diff --git a/docs/docs/configuration/databases/cratedb.mdx b/docs/docs/configuration/databases/cratedb.mdx new file mode 100644 index 0000000000..40c7f02bdd --- /dev/null +++ b/docs/docs/configuration/databases/cratedb.mdx @@ -0,0 +1,29 @@ +--- +title: CrateDB +sidebar_label: CrateDB +description: "CrateDB is a distributed SQL database for machine data." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="CrateDB" database={databaseData.databases["CrateDB"]} /> diff --git a/docs/docs/configuration/databases/databend.mdx b/docs/docs/configuration/databases/databend.mdx new file mode 100644 index 0000000000..ba6e7983a0 --- /dev/null +++ b/docs/docs/configuration/databases/databend.mdx @@ -0,0 +1,29 @@ +--- +title: Databend +sidebar_label: Databend +description: "Databend is an open-source cloud data warehouse." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Databend" database={databaseData.databases["Databend"]} /> diff --git a/docs/docs/configuration/databases/databricks-interactive-cluster.mdx b/docs/docs/configuration/databases/databricks-interactive-cluster.mdx new file mode 100644 index 0000000000..78e1db99c9 --- /dev/null +++ b/docs/docs/configuration/databases/databricks-interactive-cluster.mdx @@ -0,0 +1,29 @@ +--- +title: Databricks Interactive Cluster +sidebar_label: Databricks Interactive Cluster +description: "Documentation for Databricks Interactive Cluster database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Databricks Interactive Cluster" database={databaseData.databases["Databricks Interactive Cluster"]} /> diff --git a/docs/docs/configuration/databases/databricks-legacy.mdx b/docs/docs/configuration/databases/databricks-legacy.mdx new file mode 100644 index 0000000000..1f58f32cfc --- /dev/null +++ b/docs/docs/configuration/databases/databricks-legacy.mdx @@ -0,0 +1,29 @@ +--- +title: Databricks (legacy) +sidebar_label: Databricks (legacy) +description: "Documentation for Databricks (legacy) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Databricks (legacy)" database={databaseData.databases["Databricks (legacy)"]} /> diff --git a/docs/docs/configuration/databases/databricks-sql-endpoint.mdx b/docs/docs/configuration/databases/databricks-sql-endpoint.mdx new file mode 100644 index 0000000000..4bc7040d77 --- /dev/null +++ b/docs/docs/configuration/databases/databricks-sql-endpoint.mdx @@ -0,0 +1,29 @@ +--- +title: Databricks SQL Endpoint +sidebar_label: Databricks SQL Endpoint +description: "Documentation for Databricks SQL Endpoint database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Databricks SQL Endpoint" database={databaseData.databases["Databricks SQL Endpoint"]} /> diff --git a/docs/docs/configuration/databases/databricks.mdx b/docs/docs/configuration/databases/databricks.mdx new file mode 100644 index 0000000000..9cce5b85db --- /dev/null +++ b/docs/docs/configuration/databases/databricks.mdx @@ -0,0 +1,29 @@ +--- +title: Databricks +sidebar_label: Databricks +description: "Databricks is a unified analytics platform built on Apache Spark." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Databricks" database={databaseData.databases["Databricks"]} /> diff --git a/docs/docs/configuration/databases/denodo.mdx b/docs/docs/configuration/databases/denodo.mdx new file mode 100644 index 0000000000..b8258a633b --- /dev/null +++ b/docs/docs/configuration/databases/denodo.mdx @@ -0,0 +1,29 @@ +--- +title: Denodo +sidebar_label: Denodo +description: "Denodo is a data virtualization platform." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Denodo" database={databaseData.databases["Denodo"]} /> diff --git a/docs/docs/configuration/databases/dremio.mdx b/docs/docs/configuration/databases/dremio.mdx new file mode 100644 index 0000000000..79c5d24393 --- /dev/null +++ b/docs/docs/configuration/databases/dremio.mdx @@ -0,0 +1,29 @@ +--- +title: Dremio +sidebar_label: Dremio +description: "Dremio is a data lake engine for self-service analytics." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Dremio" database={databaseData.databases["Dremio"]} /> diff --git a/docs/docs/configuration/databases/duckdb.mdx b/docs/docs/configuration/databases/duckdb.mdx new file mode 100644 index 0000000000..d76b580bd3 --- /dev/null +++ b/docs/docs/configuration/databases/duckdb.mdx @@ -0,0 +1,29 @@ +--- +title: DuckDB +sidebar_label: DuckDB +description: "DuckDB is an in-process analytical database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="DuckDB" database={databaseData.databases["DuckDB"]} /> diff --git a/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx b/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx new file mode 100644 index 0000000000..52071cadc7 --- /dev/null +++ b/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx @@ -0,0 +1,29 @@ +--- +title: ElasticSearch (OpenDistro SQL) +sidebar_label: ElasticSearch (OpenDistro SQL) +description: "Documentation for ElasticSearch (OpenDistro SQL) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="ElasticSearch (OpenDistro SQL)" database={databaseData.databases["ElasticSearch (OpenDistro SQL)"]} /> diff --git a/docs/docs/configuration/databases/elasticsearch-sql-api.mdx b/docs/docs/configuration/databases/elasticsearch-sql-api.mdx new file mode 100644 index 0000000000..aa191d3428 --- /dev/null +++ b/docs/docs/configuration/databases/elasticsearch-sql-api.mdx @@ -0,0 +1,29 @@ +--- +title: ElasticSearch (SQL API) +sidebar_label: ElasticSearch (SQL API) +description: "Documentation for ElasticSearch (SQL API) database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="ElasticSearch (SQL API)" database={databaseData.databases["ElasticSearch (SQL API)"]} /> diff --git a/docs/docs/configuration/databases/exasol.mdx b/docs/docs/configuration/databases/exasol.mdx new file mode 100644 index 0000000000..7080ec461f --- /dev/null +++ b/docs/docs/configuration/databases/exasol.mdx @@ -0,0 +1,29 @@ +--- +title: Exasol +sidebar_label: Exasol +description: "Exasol is a high-performance in-memory analytics database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Exasol" database={databaseData.databases["Exasol"]} /> diff --git a/docs/docs/configuration/databases/firebird.mdx b/docs/docs/configuration/databases/firebird.mdx new file mode 100644 index 0000000000..af8b8e3f32 --- /dev/null +++ b/docs/docs/configuration/databases/firebird.mdx @@ -0,0 +1,29 @@ +--- +title: Firebird +sidebar_label: Firebird +description: "Firebird is an open-source relational database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Firebird" database={databaseData.databases["Firebird"]} /> diff --git a/docs/docs/configuration/databases/firebolt.mdx b/docs/docs/configuration/databases/firebolt.mdx new file mode 100644 index 0000000000..fecb6eb6ed --- /dev/null +++ b/docs/docs/configuration/databases/firebolt.mdx @@ -0,0 +1,29 @@ +--- +title: Firebolt +sidebar_label: Firebolt +description: "Firebolt is a cloud data warehouse for sub-second analytics." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Firebolt" database={databaseData.databases["Firebolt"]} /> diff --git a/docs/docs/configuration/databases/google-sheets.mdx b/docs/docs/configuration/databases/google-sheets.mdx new file mode 100644 index 0000000000..deba34876d --- /dev/null +++ b/docs/docs/configuration/databases/google-sheets.mdx @@ -0,0 +1,29 @@ +--- +title: Google Sheets +sidebar_label: Google Sheets +description: "Query Google Sheets using SQL via the shillelagh library." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Google Sheets" database={databaseData.databases["Google Sheets"]} /> diff --git a/docs/docs/configuration/databases/ibm-db2-for-i.mdx b/docs/docs/configuration/databases/ibm-db2-for-i.mdx new file mode 100644 index 0000000000..3eb4e96c86 --- /dev/null +++ b/docs/docs/configuration/databases/ibm-db2-for-i.mdx @@ -0,0 +1,29 @@ +--- +title: IBM Db2 for i +sidebar_label: IBM Db2 for i +description: "Documentation for IBM Db2 for i database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="IBM Db2 for i" database={databaseData.databases["IBM Db2 for i"]} /> diff --git a/docs/docs/configuration/databases/ibm-db2.mdx b/docs/docs/configuration/databases/ibm-db2.mdx new file mode 100644 index 0000000000..ab38f882ed --- /dev/null +++ b/docs/docs/configuration/databases/ibm-db2.mdx @@ -0,0 +1,29 @@ +--- +title: IBM Db2 +sidebar_label: IBM Db2 +description: "IBM Db2 is a family of data management products." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="IBM Db2" database={databaseData.databases["IBM Db2"]} /> diff --git a/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx b/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx new file mode 100644 index 0000000000..392760a805 --- /dev/null +++ b/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx @@ -0,0 +1,29 @@ +--- +title: IBM Netezza Performance Server +sidebar_label: IBM Netezza Performance Server +description: "Documentation for IBM Netezza Performance Server database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="IBM Netezza Performance Server" database={databaseData.databases["IBM Netezza Performance Server"]} /> diff --git a/docs/docs/configuration/databases/index.mdx b/docs/docs/configuration/databases/index.mdx new file mode 100644 index 0000000000..b041cc56c7 --- /dev/null +++ b/docs/docs/configuration/databases/index.mdx @@ -0,0 +1,90 @@ +--- +title: Connecting to Databases +sidebar_label: Overview +sidebar_position: 1 +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabaseIndex } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +# Connecting to Databases + +Superset does not ship bundled with connectivity to databases. The main step in connecting +Superset to a database is to **install the proper database driver(s)** in your environment. + +:::note +You'll need to install the required packages for the database you want to use as your metadata database +as well as the packages needed to connect to the databases you want to access through Superset. +For information about setting up Superset's metadata database, please refer to +installation documentations ([Docker Compose](/docs/installation/docker-compose), [Kubernetes](/docs/installation/kubernetes)) +::: + +## Supported Databases + +Superset supports **64 databases** with varying levels of feature support. +Click on any database name to see detailed documentation including connection strings, +authentication methods, and configuration options. + +<DatabaseIndex data={databaseData} /> + +## Installing Database Drivers + +Superset requires a Python [DB-API database driver](https://peps.python.org/pep-0249/) +and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be installed for +each database engine you want to connect to. + +### Installing Drivers in Docker + +For Docker deployments, create a `requirements-local.txt` file in the `docker` directory: + +```bash +# Create the requirements file +touch ./docker/requirements-local.txt + +# Add your driver (e.g., for PostgreSQL) +echo "psycopg2-binary" >> ./docker/requirements-local.txt +``` + +Then restart your containers. The drivers will be installed automatically. + +### Installing Drivers with pip + +For non-Docker installations: + +```bash +pip install <driver-package> +``` + +See individual database pages for the specific driver packages needed. + +## Connecting Through the UI + +1. Go to **Settings → Data: Database Connections** +2. Click **+ DATABASE** +3. Select your database type or enter a SQLAlchemy URI +4. Click **Test Connection** to verify +5. Click **Connect** to save + +## Contributing + +To add or update database documentation, edit the `DATABASE_DOCS` dictionary in +`superset/db_engine_specs/lib.py`. Documentation pages are auto-generated from this data. diff --git a/docs/docs/configuration/databases/kustokql.mdx b/docs/docs/configuration/databases/kustokql.mdx new file mode 100644 index 0000000000..c1b22ad258 --- /dev/null +++ b/docs/docs/configuration/databases/kustokql.mdx @@ -0,0 +1,29 @@ +--- +title: KustoKQL +sidebar_label: KustoKQL +description: "Documentation for KustoKQL database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="KustoKQL" database={databaseData.databases["KustoKQL"]} /> diff --git a/docs/docs/configuration/databases/kustosql.mdx b/docs/docs/configuration/databases/kustosql.mdx new file mode 100644 index 0000000000..e7d12636c0 --- /dev/null +++ b/docs/docs/configuration/databases/kustosql.mdx @@ -0,0 +1,29 @@ +--- +title: KustoSQL +sidebar_label: KustoSQL +description: "Documentation for KustoSQL database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="KustoSQL" database={databaseData.databases["KustoSQL"]} /> diff --git a/docs/docs/configuration/databases/mariadb.mdx b/docs/docs/configuration/databases/mariadb.mdx new file mode 100644 index 0000000000..f5149d73f1 --- /dev/null +++ b/docs/docs/configuration/databases/mariadb.mdx @@ -0,0 +1,29 @@ +--- +title: MariaDB +sidebar_label: MariaDB +description: "MariaDB is a community-developed fork of MySQL." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="MariaDB" database={databaseData.databases["MariaDB"]} /> diff --git a/docs/docs/configuration/databases/microsoft-sql-server.mdx b/docs/docs/configuration/databases/microsoft-sql-server.mdx new file mode 100644 index 0000000000..2f8e04b45f --- /dev/null +++ b/docs/docs/configuration/databases/microsoft-sql-server.mdx @@ -0,0 +1,29 @@ +--- +title: Microsoft SQL Server +sidebar_label: Microsoft SQL Server +description: "Microsoft SQL Server is a relational database management system." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Microsoft SQL Server" database={databaseData.databases["Microsoft SQL Server"]} /> diff --git a/docs/docs/configuration/databases/motherduck.mdx b/docs/docs/configuration/databases/motherduck.mdx new file mode 100644 index 0000000000..5f5aaf9384 --- /dev/null +++ b/docs/docs/configuration/databases/motherduck.mdx @@ -0,0 +1,29 @@ +--- +title: MotherDuck +sidebar_label: MotherDuck +description: "Documentation for MotherDuck database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="MotherDuck" database={databaseData.databases["MotherDuck"]} /> diff --git a/docs/docs/configuration/databases/mysql.mdx b/docs/docs/configuration/databases/mysql.mdx new file mode 100644 index 0000000000..2f9a50ec97 --- /dev/null +++ b/docs/docs/configuration/databases/mysql.mdx @@ -0,0 +1,29 @@ +--- +title: MySQL +sidebar_label: MySQL +description: "MySQL is a popular open-source relational database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="MySQL" database={databaseData.databases["MySQL"]} /> diff --git a/docs/docs/configuration/databases/oceanbase.mdx b/docs/docs/configuration/databases/oceanbase.mdx new file mode 100644 index 0000000000..76dc533d4c --- /dev/null +++ b/docs/docs/configuration/databases/oceanbase.mdx @@ -0,0 +1,29 @@ +--- +title: OceanBase +sidebar_label: OceanBase +description: "OceanBase is a distributed relational database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="OceanBase" database={databaseData.databases["OceanBase"]} /> diff --git a/docs/docs/configuration/databases/ocient.mdx b/docs/docs/configuration/databases/ocient.mdx new file mode 100644 index 0000000000..e94d460f5b --- /dev/null +++ b/docs/docs/configuration/databases/ocient.mdx @@ -0,0 +1,29 @@ +--- +title: Ocient +sidebar_label: Ocient +description: "Ocient is a hyperscale data analytics database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Ocient" database={databaseData.databases["Ocient"]} /> diff --git a/docs/docs/configuration/databases/oracle.mdx b/docs/docs/configuration/databases/oracle.mdx new file mode 100644 index 0000000000..d8e4dbad40 --- /dev/null +++ b/docs/docs/configuration/databases/oracle.mdx @@ -0,0 +1,29 @@ +--- +title: Oracle +sidebar_label: Oracle +description: "Oracle Database is a multi-model database management system." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Oracle" database={databaseData.databases["Oracle"]} /> diff --git a/docs/docs/configuration/databases/parseable.mdx b/docs/docs/configuration/databases/parseable.mdx new file mode 100644 index 0000000000..d2b543121f --- /dev/null +++ b/docs/docs/configuration/databases/parseable.mdx @@ -0,0 +1,29 @@ +--- +title: Parseable +sidebar_label: Parseable +description: "Parseable is a distributed log analytics database with SQL-like query interface." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Parseable" database={databaseData.databases["Parseable"]} /> diff --git a/docs/docs/configuration/databases/postgresql.mdx b/docs/docs/configuration/databases/postgresql.mdx new file mode 100644 index 0000000000..0f9e88e8e0 --- /dev/null +++ b/docs/docs/configuration/databases/postgresql.mdx @@ -0,0 +1,29 @@ +--- +title: PostgreSQL +sidebar_label: PostgreSQL +description: "PostgreSQL is an advanced open-source relational database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="PostgreSQL" database={databaseData.databases["PostgreSQL"]} /> diff --git a/docs/docs/configuration/databases/presto.mdx b/docs/docs/configuration/databases/presto.mdx new file mode 100644 index 0000000000..0b5cddf330 --- /dev/null +++ b/docs/docs/configuration/databases/presto.mdx @@ -0,0 +1,29 @@ +--- +title: Presto +sidebar_label: Presto +description: "Presto is a distributed SQL query engine for big data." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Presto" database={databaseData.databases["Presto"]} /> diff --git a/docs/docs/configuration/databases/risingwave.mdx b/docs/docs/configuration/databases/risingwave.mdx new file mode 100644 index 0000000000..b31e14eea9 --- /dev/null +++ b/docs/docs/configuration/databases/risingwave.mdx @@ -0,0 +1,29 @@ +--- +title: RisingWave +sidebar_label: RisingWave +description: "RisingWave is a distributed streaming database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="RisingWave" database={databaseData.databases["RisingWave"]} /> diff --git a/docs/docs/configuration/databases/sap-hana.mdx b/docs/docs/configuration/databases/sap-hana.mdx new file mode 100644 index 0000000000..9745d840a2 --- /dev/null +++ b/docs/docs/configuration/databases/sap-hana.mdx @@ -0,0 +1,29 @@ +--- +title: SAP HANA +sidebar_label: SAP HANA +description: "SAP HANA is an in-memory relational database and application platform." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="SAP HANA" database={databaseData.databases["SAP HANA"]} /> diff --git a/docs/docs/configuration/databases/shillelagh.mdx b/docs/docs/configuration/databases/shillelagh.mdx new file mode 100644 index 0000000000..c4062d8df8 --- /dev/null +++ b/docs/docs/configuration/databases/shillelagh.mdx @@ -0,0 +1,29 @@ +--- +title: Shillelagh +sidebar_label: Shillelagh +description: "Documentation for Shillelagh database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Shillelagh" database={databaseData.databases["Shillelagh"]} /> diff --git a/docs/docs/configuration/databases/singlestore.mdx b/docs/docs/configuration/databases/singlestore.mdx new file mode 100644 index 0000000000..184936d7b0 --- /dev/null +++ b/docs/docs/configuration/databases/singlestore.mdx @@ -0,0 +1,29 @@ +--- +title: SingleStore +sidebar_label: SingleStore +description: "SingleStore is a distributed SQL database for real-time analytics." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="SingleStore" database={databaseData.databases["SingleStore"]} /> diff --git a/docs/docs/configuration/databases/snowflake.mdx b/docs/docs/configuration/databases/snowflake.mdx new file mode 100644 index 0000000000..4348e15454 --- /dev/null +++ b/docs/docs/configuration/databases/snowflake.mdx @@ -0,0 +1,29 @@ +--- +title: Snowflake +sidebar_label: Snowflake +description: "Snowflake is a cloud-native data warehouse." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Snowflake" database={databaseData.databases["Snowflake"]} /> diff --git a/docs/docs/configuration/databases/sqlite.mdx b/docs/docs/configuration/databases/sqlite.mdx new file mode 100644 index 0000000000..21410f6c20 --- /dev/null +++ b/docs/docs/configuration/databases/sqlite.mdx @@ -0,0 +1,29 @@ +--- +title: SQLite +sidebar_label: SQLite +description: "SQLite is a self-contained, serverless SQL database engine." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="SQLite" database={databaseData.databases["SQLite"]} /> diff --git a/docs/docs/configuration/databases/starrocks.mdx b/docs/docs/configuration/databases/starrocks.mdx new file mode 100644 index 0000000000..6422e9f549 --- /dev/null +++ b/docs/docs/configuration/databases/starrocks.mdx @@ -0,0 +1,29 @@ +--- +title: StarRocks +sidebar_label: StarRocks +description: "StarRocks is a next-generation sub-second MPP database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="StarRocks" database={databaseData.databases["StarRocks"]} /> diff --git a/docs/docs/configuration/databases/superset-meta-database.mdx b/docs/docs/configuration/databases/superset-meta-database.mdx new file mode 100644 index 0000000000..fb9ec3b4c1 --- /dev/null +++ b/docs/docs/configuration/databases/superset-meta-database.mdx @@ -0,0 +1,29 @@ +--- +title: Superset meta database +sidebar_label: Superset meta database +description: "Documentation for Superset meta database database connection." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Superset meta database" database={databaseData.databases["Superset meta database"]} /> diff --git a/docs/docs/configuration/databases/tdengine.mdx b/docs/docs/configuration/databases/tdengine.mdx new file mode 100644 index 0000000000..6b2b9492a6 --- /dev/null +++ b/docs/docs/configuration/databases/tdengine.mdx @@ -0,0 +1,29 @@ +--- +title: TDengine +sidebar_label: TDengine +description: "TDengine is a high-performance time-series database for IoT." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="TDengine" database={databaseData.databases["TDengine"]} /> diff --git a/docs/docs/configuration/databases/teradata.mdx b/docs/docs/configuration/databases/teradata.mdx new file mode 100644 index 0000000000..b7fafa78a3 --- /dev/null +++ b/docs/docs/configuration/databases/teradata.mdx @@ -0,0 +1,29 @@ +--- +title: Teradata +sidebar_label: Teradata +description: "Teradata is an enterprise data warehouse platform." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Teradata" database={databaseData.databases["Teradata"]} /> diff --git a/docs/docs/configuration/databases/trino.mdx b/docs/docs/configuration/databases/trino.mdx new file mode 100644 index 0000000000..e7c70426c5 --- /dev/null +++ b/docs/docs/configuration/databases/trino.mdx @@ -0,0 +1,29 @@ +--- +title: Trino +sidebar_label: Trino +description: "Trino is a distributed SQL query engine for big data analytics." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Trino" database={databaseData.databases["Trino"]} /> diff --git a/docs/docs/configuration/databases/vertica.mdx b/docs/docs/configuration/databases/vertica.mdx new file mode 100644 index 0000000000..dec50d80a0 --- /dev/null +++ b/docs/docs/configuration/databases/vertica.mdx @@ -0,0 +1,29 @@ +--- +title: Vertica +sidebar_label: Vertica +description: "Vertica is a column-oriented analytics database." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="Vertica" database={databaseData.databases["Vertica"]} /> diff --git a/docs/docs/configuration/databases/ydb.mdx b/docs/docs/configuration/databases/ydb.mdx new file mode 100644 index 0000000000..329ef8edaa --- /dev/null +++ b/docs/docs/configuration/databases/ydb.mdx @@ -0,0 +1,29 @@ +--- +title: YDB +sidebar_label: YDB +description: "YDB is a distributed SQL database by Yandex." +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="YDB" database={databaseData.databases["YDB"]} /> diff --git a/docs/scripts/generate-database-docs.mjs b/docs/scripts/generate-database-docs.mjs index 65904dbca9..9164cd3d5e 100644 --- a/docs/scripts/generate-database-docs.mjs +++ b/docs/scripts/generate-database-docs.mjs @@ -38,8 +38,9 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const ROOT_DIR = path.resolve(__dirname, '../..'); const DOCS_DIR = path.resolve(__dirname, '..'); -const OUTPUT_DIR = path.join(DOCS_DIR, 'src/data'); -const OUTPUT_FILE = path.join(OUTPUT_DIR, 'databases.json'); +const DATA_OUTPUT_DIR = path.join(DOCS_DIR, 'src/data'); +const DATA_OUTPUT_FILE = path.join(DATA_OUTPUT_DIR, 'databases.json'); +const MDX_OUTPUT_DIR = path.join(DOCS_DIR, 'docs/configuration/databases'); const LIB_PY_PATH = path.join(ROOT_DIR, 'superset/db_engine_specs/lib.py'); /** @@ -270,51 +271,271 @@ function categorizeDatabase(name, docs) { } /** - * Main function + * Convert database name to a URL-friendly slug */ -async function main() { - console.log('Generating database documentation data...\n'); +function toSlug(name) { + return name + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-|-$/g, ''); +} + +/** + * Generate MDX content for a single database page + */ +function generateDatabaseMDX(name, db, slug) { + const description = db.documentation?.description || `Documentation for ${name} database connection.`; + const shortDesc = description.slice(0, 160).replace(/"/g, '\\"'); + + return `--- +title: ${name} +sidebar_label: ${name} +description: "${shortDesc}" +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabasePage } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +<DatabasePage name="${name}" database={databaseData.databases["${name}"]} /> +`; +} + +/** + * Generate the index MDX for the databases overview + */ +function generateIndexMDX(statistics) { + return `--- +title: Connecting to Databases +sidebar_label: Overview +sidebar_position: 1 +--- + +{/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/} + +import { DatabaseIndex } from '@site/src/components/databases'; +import databaseData from '@site/src/data/databases.json'; + +# Connecting to Databases + +Superset does not ship bundled with connectivity to databases. The main step in connecting +Superset to a database is to **install the proper database driver(s)** in your environment. + +:::note +You'll need to install the required packages for the database you want to use as your metadata database +as well as the packages needed to connect to the databases you want to access through Superset. +For information about setting up Superset's metadata database, please refer to +installation documentations ([Docker Compose](/docs/installation/docker-compose), [Kubernetes](/docs/installation/kubernetes)) +::: + +## Supported Databases + +Superset supports **${statistics.totalDatabases} databases** with varying levels of feature support. +Click on any database name to see detailed documentation including connection strings, +authentication methods, and configuration options. + +<DatabaseIndex data={databaseData} /> + +## Installing Database Drivers + +Superset requires a Python [DB-API database driver](https://peps.python.org/pep-0249/) +and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be installed for +each database engine you want to connect to. + +### Installing Drivers in Docker + +For Docker deployments, create a \`requirements-local.txt\` file in the \`docker\` directory: + +\`\`\`bash +# Create the requirements file +touch ./docker/requirements-local.txt + +# Add your driver (e.g., for PostgreSQL) +echo "psycopg2-binary" >> ./docker/requirements-local.txt +\`\`\` + +Then restart your containers. The drivers will be installed automatically. + +### Installing Drivers with pip + +For non-Docker installations: + +\`\`\`bash +pip install <driver-package> +\`\`\` + +See individual database pages for the specific driver packages needed. - // Ensure output directory exists - if (!fs.existsSync(OUTPUT_DIR)) { - fs.mkdirSync(OUTPUT_DIR, { recursive: true }); - console.log(`Created directory: ${OUTPUT_DIR}\n`); +## Connecting Through the UI + +1. Go to **Settings → Data: Database Connections** +2. Click **+ DATABASE** +3. Select your database type or enter a SQLAlchemy URI +4. Click **Test Connection** to verify +5. Click **Connect** to save + +## Contributing + +To add or update database documentation, edit the \`DATABASE_DOCS\` dictionary in +\`superset/db_engine_specs/lib.py\`. Documentation pages are auto-generated from this data. +`; +} + +/** + * Load existing database data if available and valid + */ +function loadExistingData() { + if (!fs.existsSync(DATA_OUTPUT_FILE)) { + return null; } - // Try to run the full script first, fall back to extraction - let databases = tryRunFullScript(); + try { + const content = fs.readFileSync(DATA_OUTPUT_FILE, 'utf-8'); + const data = JSON.parse(content); + + // Check if the data has scores (meaning it was generated with full Flask context) + const hasScores = Object.values(data.databases || {}).some( + (db) => db.score > 0 + ); - if (!databases) { - databases = extractDatabaseDocsSimple(); + if (hasScores && Object.keys(data.databases || {}).length > 50) { + console.log('Using existing databases.json with full diagnostic data'); + return data; + } + } catch (error) { + console.log('Could not load existing data:', error.message); } - if (!databases || Object.keys(databases).length === 0) { - console.error('Failed to generate database documentation data.'); - console.error('Make sure superset is properly installed or lib.py is accessible.'); - process.exit(1); + return null; +} + +/** + * Main function + */ +async function main() { + console.log('Generating database documentation...\n'); + + // Ensure output directories exist + if (!fs.existsSync(DATA_OUTPUT_DIR)) { + fs.mkdirSync(DATA_OUTPUT_DIR, { recursive: true }); } + if (!fs.existsSync(MDX_OUTPUT_DIR)) { + fs.mkdirSync(MDX_OUTPUT_DIR, { recursive: true }); + } + + // First, try to use existing data if it has full diagnostics + let existingData = loadExistingData(); + let databases; + let statistics; + + if (existingData) { + databases = existingData.databases; + statistics = existingData.statistics; + console.log(`Using cached data with ${Object.keys(databases).length} databases\n`); + } else { + // Try to run the full script first, fall back to extraction + databases = tryRunFullScript(); + + if (!databases) { + databases = extractDatabaseDocsSimple(); + } - console.log(`\nProcessed ${Object.keys(databases).length} databases`); + if (!databases || Object.keys(databases).length === 0) { + console.error('Failed to generate database documentation data.'); + console.error('Make sure superset is properly installed or lib.py is accessible.'); + process.exit(1); + } - // Build statistics - const statistics = buildStatistics(databases); + console.log(`Processed ${Object.keys(databases).length} databases\n`); - // Create the final output structure - const output = { - generated: new Date().toISOString(), - statistics, - databases, + // Build statistics + statistics = buildStatistics(databases); + + // Create the final output structure + const output = { + generated: new Date().toISOString(), + statistics, + databases, + }; + + // Write the JSON file + fs.writeFileSync(DATA_OUTPUT_FILE, JSON.stringify(output, null, 2)); + console.log(`Generated: ${path.relative(DOCS_DIR, DATA_OUTPUT_FILE)}`); + } + + // Generate individual MDX files for each database + console.log(`\nGenerating MDX files in ${path.relative(DOCS_DIR, MDX_OUTPUT_DIR)}/`); + + let mdxCount = 0; + for (const [name, db] of Object.entries(databases)) { + const slug = toSlug(name); + const mdxContent = generateDatabaseMDX(name, db, slug); + const mdxPath = path.join(MDX_OUTPUT_DIR, `${slug}.mdx`); + fs.writeFileSync(mdxPath, mdxContent); + mdxCount++; + } + console.log(` Generated ${mdxCount} database pages`); + + // Generate index page + const indexContent = generateIndexMDX(statistics); + const indexPath = path.join(MDX_OUTPUT_DIR, 'index.mdx'); + fs.writeFileSync(indexPath, indexContent); + console.log(` Generated index page`); + + // Generate _category_.json for sidebar ordering + const categoryJson = { + label: 'Databases', + position: 1, + link: { + type: 'doc', + id: 'configuration/databases/index', + }, }; + fs.writeFileSync( + path.join(MDX_OUTPUT_DIR, '_category_.json'), + JSON.stringify(categoryJson, null, 2) + ); + console.log(` Generated _category_.json`); - // Write the JSON file - fs.writeFileSync(OUTPUT_FILE, JSON.stringify(output, null, 2)); - console.log(`\nGenerated: ${path.relative(DOCS_DIR, OUTPUT_FILE)}`); console.log(`\nStatistics:`); console.log(` Total databases: ${statistics.totalDatabases}`); console.log(` With documentation: ${statistics.withDocumentation}`); console.log(` With connection strings: ${statistics.withConnectionString}`); - console.log(` With multiple drivers: ${statistics.withDrivers}`); - console.log(` With auth methods: ${statistics.withAuthMethods}`); console.log(` Categories: ${Object.keys(statistics.byCategory).length}`); console.log('\nDone!'); diff --git a/docs/src/components/databases/DatabaseIndex.tsx b/docs/src/components/databases/DatabaseIndex.tsx index bdebc4e3f5..0f8bab1d49 100644 --- a/docs/src/components/databases/DatabaseIndex.tsx +++ b/docs/src/components/databases/DatabaseIndex.tsx @@ -201,10 +201,16 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ data }) => { .sort((a, b) => b.score - a.score); }, [databaseList, searchText, categoryFilter]); - // Get unique categories for filter - const categories = useMemo(() => { - const cats = new Set(databaseList.map((db) => db.category)); - return Array.from(cats).sort(); + // Get unique categories and counts for filter + const { categories, categoryCounts } = useMemo(() => { + const counts: Record<string, number> = {}; + databaseList.forEach((db) => { + counts[db.category] = (counts[db.category] || 0) + 1; + }); + return { + categories: Object.keys(counts).sort(), + categoryCounts: counts, + }; }, [databaseList]); // Table columns @@ -215,10 +221,13 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ data }) => { key: 'name', sorter: (a: TableEntry, b: TableEntry) => a.name.localeCompare(b.name), render: (name: string, record: TableEntry) => { - // Link to parent for compatible DBs, otherwise to own section + // Convert name to URL slug + const toSlug = (n: string) => n.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); + + // Link to parent for compatible DBs, otherwise to own page const linkTarget = record.isCompatible && record.compatibleWith - ? `#${record.compatibleWith.toLowerCase().replace(/\s+/g, '-')}` - : `#${name.toLowerCase().replace(/\s+/g, '-')}`; + ? `/docs/configuration/databases/${toSlug(record.compatibleWith)}` + : `/docs/configuration/databases/${toSlug(name)}`; return ( <div> @@ -390,7 +399,7 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ data }) => { color={CATEGORY_COLORS[cat] || 'default'} style={{ marginRight: 8 }} > - {statistics.byCategory[cat]?.length || 0} + {categoryCounts[cat] || 0} </Tag> {cat} </span>
