diff --git a/docs/cloud/integrations/duckdb.md b/docs/cloud/integrations/duckdb.md new file mode 100644 index 0000000..3931ef3 --- /dev/null +++ b/docs/cloud/integrations/duckdb.md @@ -0,0 +1,60 @@ +--- +title: Connect to Steampipe Cloud from DuckDB +sidebar_label: DuckDB +--- +## Connect to Steampipe Cloud from DuckDB + +[DuckDB](https://duckdb.org/) is a free open-source, analytical SQL database system. + +Steampipe provides a single interface to all your cloud, code, logs and more. Because it's built on Postgres, Steampipe provides an endpoint that any Postgres-compatible client -- including DuckDB -- can connect to. + +The [Connect](/docs/cloud/integrations/overview) tab for your workspace provides the details you need to connect DuckDB to Steampipe Cloud. + +
+ +
+ +Once Steampipe Cloud is successfully connected, you can explore the tables provided by the Steampipe plugins, run queries and build reports. + +## Connect to Steampipe CLI from DuckDB + +You can also connect DuckDB to [Steampipe CLI](https://steampipe.io/downloads). To do that, run `steampipe service start --show-password` and use the displayed connection details. + +``` +Steampipe service is running: + +Database: + + Host(s): localhost, 127.0.0.1, 192.168.29.204 + Port: 9193 + Database: steampipe + User: steampipe + Password: 99**_****_**8c + Connection string: postgres://steampipe:99**_****_**8c@localhost:9193/steampipe +``` + +## Getting started + +To get started, install [DuckDB](https://duckdb.org/docs/installation/index). DuckDB provides the capability to execute queries directly on a running PostgreSQL database by utilizing the `postgres` extension that can be installed by running this in the DuckDB CLI. + +``` +INSTALL postgres; +``` + +Paste this to Load the postgres extension + +``` +LOAD postgres; +``` + +Once the Postgres extension is installed and loaded, tables can be queried using the `postgres_scan` function. The first parameter to the function is the `postgres connection string` followed by `schema` and `table name`. Here we will execute a query with this command to list the top news using the [hackernews plugin](https://hub.steampipe.io/plugins/turbot/hackernews). + +``` +SELECT * FROM postgres_scan('postgresql://rahulsrivastav14:76**_****_**9c@rahulsrivastav14-rahulsworkspace.usea1.db.steampipe.io:9193/dea4px', 'hackernews', 'hackernews_top'); +``` + +
+ +
+ +That's it! Now you can use DuckDB to query Steampipe's [plugins](https://hub.steampipe.io/plugins) and [mods](https://hub.steampipe.io/mods). \ No newline at end of file diff --git a/docs/sidebar.json b/docs/sidebar.json index 7dd09c0..d23d292 100644 --- a/docs/sidebar.json +++ b/docs/sidebar.json @@ -281,6 +281,7 @@ "cloud/integrations/dbeaver", "cloud/integrations/dbt", "cloud/integrations/deepnote", + "cloud/integrations/duckdb", "cloud/integrations/gitpod", "cloud/integrations/golang", "cloud/integrations/grafana", diff --git a/images/docs/cloud/duckdb-data-preview.png b/images/docs/cloud/duckdb-data-preview.png new file mode 100644 index 0000000..f9c98a7 Binary files /dev/null and b/images/docs/cloud/duckdb-data-preview.png differ