Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/metrico/clickhouse-node-url-engine

Example NodeJS URL Engine for Clickhouse
https://github.com/metrico/clickhouse-node-url-engine

clickhouse example insert node select server url-engine

Last synced: about 6 hours ago
JSON representation

Example NodeJS URL Engine for Clickhouse

Awesome Lists containing this project

README

        

# ClickHouse NodeJS URL Engine
This basic example illustrates a simple NodeJS [URL Table Engine](https://clickhouse.com/docs/en/engines/table-engines/special/url/) server for Clickhouse

##### ⏱️ Why
> Clickhouse is super fast and already has all the functions one could dream. What is this for?

This example is designed to understand the underlying formats and unleash imagination for integrators.

```mermaid
sequenceDiagram
autonumber
ClickHouse->>NodeJS: POST Request
loop Javascript
NodeJS->>NodeJS: INSERT
end
NodeJS-->>ClickHouse: POST Response
ClickHouse->>NodeJS: GET Request
loop Javascript
NodeJS->>NodeJS: SELECT
end
NodeJS-->>ClickHouse: GET Response
```

##### Features
- [x] INSERT to JS array
- [x] SELECT from JS array

#### Setup
Install and run the example service :
```
npm install
npm start
```

#### πŸ“¦ Clickhouse
Create a `url_engine_table` table pointed at our service :
```sql
CREATE TABLE url_engine_node
(
`key` String,
`value` UInt64
)
ENGINE = URL('http://127.0.0.1:3123/', JSONEachRow)
```

##### ▢️ INSERT
```sql
INSERT INTO url_engine_node VALUES ('hello',1), ('world', 2)
```
##### ◀️ SELECT
```sql
SELECT * FROM url_engine_node

Query id: d65b429e-76aa-49f3-b376-ebd3fbc9cd1a

β”Œβ”€key───┬─value─┐
β”‚ hello β”‚ 1 β”‚
β”‚ world β”‚ 2 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

2 rows in set. Elapsed: 0.005 sec.
```