Skip to content

Commit

Permalink
Adds Embeddable to 3-party tools (#19)
Browse files Browse the repository at this point in the history
* add doc, edited with a question

* polish as per the Emeddable team & light edit

* add to sidebar

* also add missing doc while here

* add to overview

* adds flavour to overview, merge ready
  • Loading branch information
goodroot authored Jul 17, 2024
1 parent 3577909 commit aeca50a
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 41 deletions.
36 changes: 9 additions & 27 deletions sidebars.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,3 @@
let guidelines

if (process.env.NODE_ENV === "development") {
guidelines = {
label: "Guidelines (DEV ONLY)",
type: "category",
items: [
{
type: "category",
label: "Templates",
items: [
"__guidelines/template/guide",
"__guidelines/template/function",
"__guidelines/template/sql",
],
},
],
}
}

module.exports = {
docs: [
{
Expand Down Expand Up @@ -302,17 +282,18 @@ module.exports = {
type: "category",
label: "Operators",
items: [
"reference/operators/precedence",
"reference/operators/misc",
"reference/operators/numeric",
"reference/operators/bitwise",
"reference/operators/logical",
"reference/operators/ipv4",
"reference/operators/comparison",
"reference/operators/date-time",
"reference/operators/ipv4",
"reference/operators/logical",
"reference/operators/misc",
"reference/operators/numeric",
"reference/operators/precedence",
"reference/operators/spatial",
"reference/operators/text"
"reference/operators/text",
],
}
},
],
},
{
Expand Down Expand Up @@ -437,6 +418,7 @@ module.exports = {
id: "third-party-tools/overview",
},
"third-party-tools/cube",
"third-party-tools/embeddable",
"third-party-tools/flink",
"third-party-tools/grafana",
{
Expand Down
94 changes: 94 additions & 0 deletions third-party-tools/embeddable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Embeddable
description:
Embeddable is a developer toolkit for building fast, interactive, fully-custom
analytics experiences directly into your app.
---

Embeddable is a developer toolkit for building fast, interactive customer-facing
analytics. It works well with a high performance time-series database like
QuestDB.

In [Embeddable](https://embeddable.com/) define
[Data Models](https://trevorio.notion.site/Data-modeling-35637bbbc01046a1bc47715456bfa1d8)
and
[Components](https://trevorio.notion.site/Using-components-761f52ac2d0743b488371088a1024e49)
in code stored in your own code repository, then use the **SDK** to make these
available for your team in the powerful Embeddable **no-code builder.** The end
result is the ability to deliver fast, interactive **customer-facing analytics**
directly into your product.

Built-in **row-level security** means that every user only ever sees **exactly**
the data they’re allowed to see. And two levels of fully-configurable
**caching** mean you can deliver fast, realtime analytics at scale.

## Prerequisites

- A running QuestDB instance
- Not running yet? See the [quick start](/docs/quick-start/)

## Getting started with Embeddable

Add a database connection using Embeddable API. This connection connects to your
QuestDB instance. To add a connection, use the following API call:

```javascript
// for security reasons, this must *never* be called from your client-side
fetch("https://api.embeddable.com/api/v1/connections", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: `Bearer ${apiKey}` /* keep your API Key secure */,
},
body: JSON.stringify({
name: "my-questdb-db",
type: "questdb",
credentials: {
host: "my.questdb.host",
port: "8812",
user: "admin",
password: "quest",
},
}),
})
```

In response you will receive:

```json
Status 201 { errorMessage: null }
```

The above represents a `CREATE` action, but all `CRUD` operations are available.

The `apiKey` can be found by clicking “**Publish**” on one of your Embeddable
dashboards.

The `name` is a unique name to identify this **connection**.

- By default your **data models** will look for a **connection** called
“default”, but you can supply models with different
[**data_source**](https://cube.dev/docs/reference/data-model/cube#data_source)
names to support connecting different **data models** to different
**connections**. To do so , specify the
**[data_source](https://cube.dev/docs/reference/data-model/cube#data_source)**
name in the model.

The `type` tells Embeddable which driver to use, in this case `questdb`. You can
also connect multiple datasources like `postgres`, `bigquery` or `mongodb`. For
a full list, see
[the documentaiton](https://cube.dev/docs/product/configuration/data-sources).

The `credentials` is a javascript object containing the credentials expected by
the driver:

- Credentials are securely encrypted and only used to retrieve exactly the data
described in the data models.
- Emeddable strongly encourages you to create a **read-only** database user for
each connection. Embeddable will only ever read from your database, not write.

To support connecting to different databases for prod, qa, test, etc, or to
support different databases for different customers, you can assign each
**connection** to an **environment**. For more information, see
[Environments API](https://www.notion.so/Environments-API-497169036b5148b38f7936aa75e62949?pvs=21).
30 changes: 16 additions & 14 deletions third-party-tools/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,48 @@ more.
Interact with and visualize your QuestDB data using these powerful visualization
platforms:

- **[Grafana](/third-party-tools/grafana.md):** Create stunning dashboards and
- **[Grafana](/third-party-tools/grafana/):** Create stunning dashboards and
interactive graphs for time-series data visualization.
- [Superset](/third-party-tools/superset.md): Build interactive visualizations
and perform ad-hoc data analysis.
- [Superset](/third-party-tools/superset/): Build interactive visualizations and
perform ad-hoc data analysis.

## Data Ingestion and Streaming

Ingest, store, and process high-throughput and real-time data streams with these
integrations:

- **[Apache Kafka](/third-party-tools/kafka/overview.md):** A distributed event
- **[Apache Kafka](/third-party-tools/kafka/overview/):** A distributed event
streaming platform for high-throughput data pipelines.
- [Telegraf](/third-party-tools/telegraf.md): Collect and report metrics from
- [Telegraf](/third-party-tools/telegraf/): Collect and report metrics from
various sources.
- **[Redpanda](/third-party-tools/redpanda.md): A Kafka-compatible streaming
- **[Redpanda](/third-party-tools/redpanda/): A Kafka-compatible streaming
platform for simplified data pipelines.**
- [Apache Flink](/third-party-tools/flink.md): Process real-time data streams
- [Apache Flink](/third-party-tools/flink/): Process real-time data streams
efficiently.
- [Apache Spark](/third-party-tools/spark.md): Handle complex data processing
- [Apache Spark](/third-party-tools/spark/): Handle complex data processing
tasks at scale.

## Analytics and Processing

Enhance your data analysis and processing capabilities with QuestDB through
these tools:

- [Pandas](/third-party-tools/pandas.md): Analyze time-series data in Python
with powerful data structures.
- [MindsDB](/third-party-tools/mindsdb.md): Build machine learning models for
- [Pandas](/third-party-tools/pandas/): Analyze time-series data in Python with
powerful data structures.
- [MindsDB](/third-party-tools/mindsdb/): Build machine learning models for
predictive analytics on time-series data.
- [Embeddable](/third-party-tools/embeddable/): Developer toolkit for building
fast, interactive customer-facing analytics.

## Tooling and Interfaces

Improve your interactions with QuestDB using these tools and interfaces:

- **[Prometheus](/third-party-tools/prometheus.md):** Efficiently store and
- **[Prometheus](/third-party-tools/prometheus/):** Efficiently store and
analyze monitoring metrics.
- [SQLAlchemy](/third-party-tools/sqlalchemy.md): Utilize Python's ORM
- [SQLAlchemy](/third-party-tools/sqlalchemy/): Utilize Python's ORM
capabilities for database interactions.
- [qStudio](/third-party-tools/qstudio.md): A free SQL GUI for query execution,
- [qStudio](/third-party-tools/qstudio/): A free SQL GUI for query execution,
table browsing, and result charting.

Is there an integration you'd like to see that's not listed? Let us know by
Expand Down

0 comments on commit aeca50a

Please sign in to comment.