VectorSQL is a free analytics DBMS for IoT & Big Data, compatible with ClickHouse.

Overview

NOTICE: This project have moved to fuse-query

VectorSQL Logo


Github Actions Status Github Actions Status Github Actions Status codecov.io License

VectorSQL is a free analytics DBMS for IoT & Big Data, compatible with ClickHouse.

Features

  • High Performance
  • High Scalability
  • High Reliability

Server

$git clone https://github.com/vectorengine/vectorsql
$cd vectorsql
$make build
$./bin/vectorsql-server -c conf/vectorsql-default.toml
	
 2020/01/27 19:02:39.245654    	 [DEBUG] 	Database->Attach Table:system.tables, engine:SYSTEM_TABLES <[email protected]_system.go:116>
 2020/01/27 19:02:39.245670    	 [DEBUG] 	Database->Attach Table:system.databases, engine:SYSTEM_DATABASES <[email protected]_system.go:116>
 2020/01/27 19:02:39.245680    	 [INFO] 	Database->Load Database:system <[email protected]:110>
 2020/01/27 19:02:39.245794    	 [INFO] 	Listening for connections with native protocol (tcp)::9000 <[email protected]:33>
 2020/01/27 19:02:39.245806    	 [INFO] 	Servers start... <[email protected]:62>

Client

  • clickhouse-client
$clickhouse-client --compression=0
VectorSQL :) SELECT SUM(IF(status!=200, 1, 0)) AS errors, SUM(IF(status=200, 1, 0)) as success, (errors/COUNT(server)) AS error_rate,(success/COUNT(server)) as success_rate, (SUM(response_time)/COUNT(server)) AS load_avg, MIN(response_time), MAX(response_time), path, server FROM logmock(rows->15) GROUP BY server, path HAVING errors>0 ORDER BY server ASC, load_avg DESC;

SELECT 
    SUM(IF(status != 200, 1, 0)) AS errors, 
    SUM(IF(status = 200, 1, 0)) AS success, 
    errors / COUNT(server) AS error_rate, 
    success / COUNT(server) AS success_rate, 
    SUM(response_time) / COUNT(server) AS load_avg, 
    MIN(response_time), 
    MAX(response_time), 
    path, 
    server
FROM logmock(rows -> 15)
GROUP BY 
    server, 
    path
HAVING errors > 0
ORDER BY 
    server ASC, 
    load_avg DESC

┌─errors─┬─success─┬─error_rate─┬─success_rate─┬─load_avg─┬─MIN(response_time)─┬─MAX(response_time)─┬─path───┬─server──────┐
│      2 │       1 │     0.6667 │       0.3333 │       12 │                 10 │                 13 │ /login │ 192.168.0.1 │
│      1 │       5 │     0.1667 │       0.8333 │  11.1667 │                 10 │                 12 │ /index │ 192.168.0.1 │
│      1 │       3 │       0.25 │         0.75 │    11.25 │                 10 │                 14 │ /index │ 192.168.0.2 │
│      1 │       1 │        0.5 │          0.5 │       11 │                 10 │                 12 │ /login │ 192.168.0.2 │
└────────┴─────────┴────────────┴──────────────┴──────────┴────────────────────┴────────────────────┴────────┴─────────────┘
↓ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.) 
4 rows in set. Elapsed: 0.005 sec. 
  • http-client
curl -XPOST http://127.0.0.1:8123 -d "SELECT SUM(IF(status!=200, 1, 0)) AS errors, SUM(IF(status=200, 1, 0)) as success, (errors/COUNT(server)) AS error_rate,(success/COUNT(server)) as success_rate, (SUM(response_time)/COUNT(server)) AS load_avg, MIN(response_time), MAX(response_time), path, server FROM logmock(rows->15) GROUP BY server, path HAVING errors>0 ORDER BY server ASC, load_avg DESC"
2	1	0.6667	0.3333	12.0000	10	13	/login	192.168.0.1
1	5	0.1667	0.8333	11.1667	10	12	/index	192.168.0.1
1	3	0.2500	0.7500	11.2500	10	14	/index	192.168.0.2
1	1	0.5000	0.5000	11.0000	10	12	/login	192.168.0.2

Query Language Features

Query language Current version Future versions Example
Scans by Value + + SELECT a,b
Scans by Expression + + SELECT IF(a>2,a,b),SUM(a)
Filter by Value + + WHERE a>10
Filter by Expression + + WHERE a>(b+10)
Group-Aggregate by Value + + GROUP BY a
Group-Aggregate by Expression + + GROUP BY (a+1)
Group-Having by Value + + HAVING count_a>2
Group-Having by Expression + + HAVING (count_a+1)>2
Order by Value + + ORDER BY a desc
Order by Expression + + ORDER BY (a+b)
Window Functions - +
Common Table Expressions - +
Join - +

Performance

  • Dataset: 10,000,000 (10 Million)
  • Hardware: 16vCPUx16G KVM Cloud Instance
  • Benchmark
Query Cost(second)
SELECT COUNT(id) FROM testdata 0.269s
SELECT COUNT(id) FROM testdata WHERE id!=0 0.438s
SELECT SUM(data1) FROM testdata 0.287s
SELECT SUM(data1) AS sum, COUNT(data1) AS count, sum/count AS avg FROM testdata 1.814s
SELECT MAX(id), MIN(id) FROM testdata 0.473s
SELECT COUNT(data1) AS count, data1 FROM testdata GROUP BY data1 ORDER BY count DESC LIMIT 10 0.728s
SELECT email FROM testdata WHERE email like '%[email protected]%' LIMIT 1 0.076s
SELECT COUNT(email) FROM testdata WHERE email like '%[email protected]%' 1.470s
SELECT data1 AS x, x - 1, x - 2, x - 3, count(data1) AS c FROM testdata GROUP BY x, x - 1, x - 2, x - 3 ORDER BY c DESC LIMIT 10 2.396s

Metrics

http://localhost:8080/debug/metrics

Issues
  • clickhouse-client connection time out

    clickhouse-client connection time out

    my docker clickhouse-client:

    [email protected] MINGW64 ~/Desktop
    $ winpty docker run -it yandex/clickhouse-client --host 192.168.0.106 --compression=0
    ClickHouse client version 20.1.4.14 (official build).
    Connecting to 192.168.0.106:9000 as user default.
    
    
    Code: 209. DB::NetException: Timeout exceeded while reading from socket (192.168.0.106:9000)
    
    

    server log:

     2020/02/29 15:39:22.557296      [INFO]         Memory InUse: 3.3 MB    Alloc: 2.1 MB    Sys: 7.2 MB <[email protected]:80>
     2020/02/29 15:39:32.558532      [INFO]         Memory InUse: 3.3 MB    Alloc: 2.1 MB    Sys: 7.2 MB <[email protected]:80>
     2020/02/29 15:39:42.557965      [INFO]         Memory InUse: 3.3 MB    Alloc: 2.1 MB    Sys: 7.2 MB <[email protected]:80>
     2020/02/29 15:39:42.798833      [DEBUG]        Receive client hello:&{ClientName:ClickHouse client ClientVersionMajor:20 ClientVersionMinor:1 ClientRevision:54431 Database: User:default Password:} <[email protected]_hello.go:49>
     2020/02/29 15:39:42.799832      [ERROR]        EOF, *errors.errorString <[email protected]_handler.go:71>
     2020/02/29 15:39:52.557393      [INFO]         Memory InUse: 3.3 MB    Alloc: 2.1 MB    Sys: 7.2 MB <[email protected]:80>
     2020/02/29 15:40:02.557775      [INFO]         Memory InUse: 3.3 MB    Alloc: 2.1 MB    Sys: 7.2 MB <[email protected]:80>
    
    type: question 
    opened by tlightsky 14
  • src\base\xlog\xlog.go:52:12: undefined: syslog.New

    src\base\xlog\xlog.go:52:12: undefined: syslog.New

    $ go build -v -o bin/vectorsql-server src/cmd/server.go
    base/xlog
    # base/xlog
    src\base\xlog\xlog.go:52:12: undefined: syslog.New
    src\base\xlog\xlog.go:52:23: undefined: syslog.LOG_DEBUG
    
    type: bug 
    opened by tlightsky 3
  • sqlparser: add format clause support

    sqlparser: add format clause support

    With this pr, this works

    VectorSQL :) select * from randtable(rows->10, c1->'UInt32', c2->'String') format TSKV;
    
    SELECT *
    FROM randtable(rows -> 10, c1 -> 'UInt32', c2 -> 'String')
    FORMAT TSKV
    
    c1=6	c2=string-2
    c1=1	c2=string-9
    c1=6	c2=string-0
    c1=3	c2=string-6
    c1=9	c2=string-1
    c1=2	c2=string-5
    c1=5	c2=string-0
    c1=7	c2=string-9
    c1=8	c2=string-8
    c1=4	c2=string-3
    → Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.)
    10 rows in set. Elapsed: 0.050 sec.
    
    opened by sundy-li 2
  • I tried vectorsql and this is what happened.

    I tried vectorsql and this is what happened.

    I just tried it out of curiosity. I assume that this is just a development prototype, so no real expectations. Sorry to bother.

    git clone https://github.com/vectorengine/vectorsql
    cd vectorsql
    make build
    ./bin/vectorsql-server -c conf/vectorsql-default.toml
    
    clickhouse-client --compression 0
    # Cannot load data for command line suggestions: Code: 0, e.displayText() = DB::Exception: Received from localhost:9000. . Every derived table must have its own alias at position 849 near 'where'. (version 20.10.1.1)
    
    VectorSQL :) SELECT 1
    
    SELECT 1
    
    
    Received exception from server (version 19.17.1):
    Code: 0. DB::Exception: Received from localhost:9000. . Couldn't find table:dual storage.
    
    VectorSQL :) SHOW DATABASES
    
    SHOW DATABASES
    
    ┌─name───┬─engine─┬─data_path────────────┬─metadata_path────────────┐
    │ system │ SYSTEM │ data9000/data/system │ data9000/metadata/system │
    └────────┴────────┴──────────────────────┴──────────────────────────┘
    
    1 rows in set. Elapsed: 0.004 sec. 
    
    VectorSQL :) SHOW TABLES FROM system
    
    SHOW TABLES FROM system
    
    ┌─name──────┐
    │ databases │
    │ numbers   │
    │ tables    │
    └───────────┘
    
    3 rows in set. Elapsed: 0.001 sec. 
    
    VectorSQL :) SELECT count() FROM system.numbers
    
    SELECT count()
    FROM system.numbers
    
    ↙ Progress: 3.00 rows, 155.00 B (4.10 thousand rows/s., 212.08 KB/s.)  99%
    Received exception from server (version 19.17.1):
    Code: 0. DB::Exception: Received from localhost:9000. . Unsupported Expression:COUNT. 
    
    0 rows in set. Elapsed: 0.014 sec.
    
    VectorSQL :) SELECT count(*) FROM system.numbers
    
    SELECT count(*)
    FROM system.numbers
    
    
    Exception on client:
    Code: 210. DB::NetException: Connection reset by peer, while reading from socket (127.0.0.1:9000): while receiving packet from localhost:9000
    
    Connecting to localhost:9000 as user default.
    Connected to VectorSQL server version 19.17.1 revision 54428.
    
    fatal error: runtime: out of memory
    
    runtime stack:
    runtime.throw(0x9ad671, 0x16)
            /usr/lib/go-1.12/src/runtime/panic.go:617 +0x72
    runtime.sysMap(0xca68000000, 0x1f28000000, 0xe546f8)
            /usr/lib/go-1.12/src/runtime/mem_linux.go:170 +0xc7
    runtime.(*mheap).sysAlloc(0xe36e40, 0x1f26286000, 0xe36e50, 0xf93143)
            /usr/lib/go-1.12/src/runtime/malloc.go:633 +0x1cd
    runtime.(*mheap).grow(0xe36e40, 0xf93143, 0x0)
            /usr/lib/go-1.12/src/runtime/mheap.go:1222 +0x42
    runtime.(*mheap).allocSpanLocked(0xe36e40, 0xf93143, 0xe54708, 0x7f6100000000)
            /usr/lib/go-1.12/src/runtime/mheap.go:1150 +0x37f
    runtime.(*mheap).alloc_m(0xe36e40, 0xf93143, 0x100, 0x7f614d7f9dc8)
            /usr/lib/go-1.12/src/runtime/mheap.go:977 +0xc2
    runtime.(*mheap).alloc.func1()
            /usr/lib/go-1.12/src/runtime/mheap.go:1048 +0x4c
    runtime.(*mheap).alloc(0xe36e40, 0xf93143, 0xc000010100, 0xc0005e4900)
            /usr/lib/go-1.12/src/runtime/mheap.go:1047 +0x8a
    runtime.largeAlloc(0x1f262849b8, 0xc000020001, 0xdc7201)
            /usr/lib/go-1.12/src/runtime/malloc.go:1055 +0x99
    runtime.mallocgc.func1()
            /usr/lib/go-1.12/src/runtime/malloc.go:950 +0x46
    runtime.systemstack(0x7f6130000020)
            /usr/lib/go-1.12/src/runtime/asm_amd64.s:351 +0x66
    runtime.mstart()
            /usr/lib/go-1.12/src/runtime/proc.go:1153
    
    ...
    
    VectorSQL :) SELECT count(*) FROM system.numbers
    
    SELECT count(*)
    FROM system.numbers
    
    
    Exception on client:
    Code: 210. DB::NetException: Connection reset by peer, while reading from socket (127.0.0.1:9000): while receiving packet from localhost:9000
    

    Let's try with clickhouse-cli:

    $ pip3 install clickhouse-cli
    
    $ clickhouse-cli
    clickhouse-cli version: 0.3.6
    Connecting to 127.0.0.1:8123
    Error: Request failed: `SELECT version();` query failed.
    

    Let's try HTTP interface:

    $ curl http://localhost:8123/ -d 'SELECT count() FROM system.numbers'
    Unsupported Expression:COUNT
    $ curl http://localhost:8123/ -d 'SELECT count(*) FROM system.numbers'
    $ 
    $ 
    $ curl http://localhost:8123/ -d 'SELECT count(*) FROM system.numbers'
    $ curl http://localhost:8123/ -d 'SELECT count(*) FROM system.numbers'
    

    Returns immediately, server prints panic.

    VectorSQL :) CREATE TEMPORARY TABLE t (x UInt64);
    
    CREATE TEMPORARY TABLE t
    (
        `x` UInt64
    )
    
    
    Received exception from server (version 19.17.1):
    Code: 0. DB::Exception: Received from localhost:9000. . syntax error at position 23 near 'table'. 
    
    VectorSQL :) CREATE DATABASE test
    
    CREATE DATABASE test
    
    Ok.
    
    0 rows in set. Elapsed: 0.001 sec. 
    
    VectorSQL :) USE test
    
    USE test
    
    
    Exception on client:
    Code: 210. DB::NetException: Connection refused (localhost:9000)
    
    Connecting to localhost:9000 as user default.
    Code: 210. DB::NetException: Connection refused (localhost:9000)
    

    Server crashed.

    benchmark$ ./run.sh 
    01_create_table.sh
    Received exception from server (version 19.17.1):
    Code: 0. DB::Exception: Received from localhost:9000. . database:benchmark doesn't exists. 
    02_generate_data.sh
    rm: cannot remove 'data.tsv': No such file or directory
    03_load_data.sh
    clickhouse-client: ../src/DataStreams/ParallelParsingBlockInputStream.cpp:190: void DB::ParallelParsingBlockInputStream::parserThreadFunction(DB::ThreadGroupStatusPtr, size_t): Assertion `unit.is_last || !unit.block_ext.block.empty()' failed.
    ./03_load_data.sh: line 3: 15092 Broken pipe             cat data.tsv
         15093 Aborted                 (core dumped) | clickhouse-client --compression=0 --database=benchmark --query="insert into testdata FORMAT TabSeparated"
    04_run_bench.sh
    | SELECT COUNT(id) FROM testdata | 0.001s |
    | SELECT COUNT(id) FROM testdata WHERE id!=0 | 0.001s |
    | SELECT SUM(data1) FROM testdata | 0.001s |
    | SELECT SUM(data1) AS sum, COUNT(data1) AS count, sum/count AS avg FROM testdata | 0.001s |
    | SELECT MAX(id), MIN(id) FROM testdata | 0.001s |
    | SELECT COUNT(data1) AS count, data1 FROM testdata GROUP BY data1 ORDER BY count DESC LIMIT 10 | 0.001s |
    | SELECT email FROM testdata WHERE email like '%[email protected]%' LIMIT 1 | 0.001s |
    | SELECT COUNT(email) FROM testdata WHERE email like '%[email protected]%' | 0.001s |
    | SELECT data1 AS x, x - 1, x - 2, x - 3, count(data1) AS c FROM testdata GROUP BY x, x - 1, x - 2, x - 3 ORDER BY c DESC LIMIT 10 | 0.001s |
    

    Benchmark works Ok.

    But server does not return any data:

    [email protected]:~/work/vectorsql/benchmark$ clickhouse-client --compression 0
    ClickHouse client version 20.10.1.1.
    Connecting to localhost:9000 as user default.
    Connected to VectorSQL server version 19.17.1 revision 54428.
    
    ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded.
    
    Cannot load data for command line suggestions: Code: 0, e.displayText() = DB::Exception: Received from localhost:9000. . Every derived table must have its own alias at position 849 near 'where'. (version 20.10.1.1)
    VectorSQL :) USE test
    
    USE test
    
    Ok.
    
    0 rows in set. Elapsed: 0.001 sec. 
    
    VectorSQL :) SHOW TABLES
    
    SHOW TABLES
    
    Ok.
    
    0 rows in set. Elapsed: 0.002 sec. 
    
    VectorSQL :) USE benchmark
    
    USE benchmark
    
    Ok.
    
    0 rows in set. Elapsed: 0.001 sec. 
    
    VectorSQL :) SHOW TABLES
    
    SHOW TABLES
    
    ┌─name─────┐
    │ testdata │
    └──────────┘
    
    1 rows in set. Elapsed: 0.003 sec. 
    
    VectorSQL :) SELECT count() FROM testdata
    
    SELECT count()
    FROM testdata
    
    Ok.
    
    0 rows in set. Elapsed: 0.001 sec. 
    
    VectorSQL :) SELECT count(*) FROM testdata
    
    SELECT count(*)
    FROM testdata
    
    
    Exception on client:
    Code: 210. DB::NetException: Connection reset by peer, while reading from socket (127.0.0.1:9000): while receiving packet from localhost:9000
    
    Connecting to database benchmark at localhost:9000 as user default.
    Connected to VectorSQL server version 19.17.1 revision 54428.
    
    ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded.
    
    VectorSQL :) SELECT count(ID) FROM testdata
    
    SELECT count(ID)
    FROM testdata
    
    Ok.
    
    0 rows in set. Elapsed: 0.002 sec. 
    
    VectorSQL :) Bye.
    [email protected]:~/work/vectorsql/benchmark$ clickhouse-client --compression 0 --query "SELECT count(ID) FROM testdata"
    Received exception from server (version 19.17.1):
    Code: 0. DB::Exception: Received from localhost:9000. . Couldn't find table:testdata storage. 
    [email protected]:~/work/vectorsql/benchmark$ clickhouse-client --compression 0 --database benchmark --query "SELECT count(ID) FROM testdata"
    [email protected]:~/work/vectorsql/benchmark$ 
    [email protected]:~/work/vectorsql/benchmark$ clickhouse-client --compression 0 --database benchmark --query "SELECT count(ID) FROM testdata"
    [email protected]:~/work/vectorsql/benchmark$
    
    opened by alexey-milovidov 2
  • [feature] implement CASE expression

    [feature] implement CASE expression

    Summary

    Syntax:

    CASE <cond>
      WHEN <condval1> THEN <expr1>
      [ WHEN <condvalx> THEN <exprx> ] ...
      [ ELSE <expr2> ]
    END
    

    For example:

    SELECT CustomerName, City, Country
    FROM Customers
    ORDER BY
    (CASE
        WHEN City IS NULL THEN Country
        ELSE City
    END);
    
    type: feature P1 
    opened by BohuTANG 0
  • [feature] implement WITH (Common Table Expressions)

    [feature] implement WITH (Common Table Expressions)

    Summary

    MySQL 8.0 CTE:

    WITH
      cte1 AS (SELECT a, b FROM table1),
      cte2 AS (SELECT c, d FROM table2)
    SELECT b, d FROM cte1 JOIN cte2
    WHERE cte1.a = cte2.c;
    

    https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions

    P1 
    opened by BohuTANG 2
Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead

fastcache - fast thread-safe inmemory cache for big number of entries in Go Features Fast. Performance scales on multi-core CPUs. See benchmark result

VictoriaMetrics 1.5k Aug 16, 2022
Scalable datastore for metrics, events, and real-time analytics

InfluxDB InfluxDB is an open source time series platform. This includes APIs for storing and querying data, processing it in the background for ETL or

InfluxData 23.9k Aug 8, 2022
Scalable datastore for metrics, events, and real-time analytics

InfluxDB InfluxDB is an open source time series platform. This includes APIs for storing and querying data, processing it in the background for ETL or

InfluxData 23.9k Aug 9, 2022
A GPU-powered real-time analytics storage and query engine.

AresDB AresDB is a GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient i

Uber Open Source 2.9k Aug 10, 2022
TiDB is an open source distributed HTAP database compatible with the MySQL protocol

Slack Channel Twitter: @PingCAP Reddit Mailing list: lists.tidb.io For support, please contact PingCAP What is TiDB? TiDB ("Ti" stands for Titanium) i

PingCAP 32k Aug 12, 2022
A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.

go-mysql-server is a SQL engine which parses standard SQL (based on MySQL syntax) and executes queries on data sources of your choice. A simple in-memory database and table implementation are provided, and you can query any data source you want by implementing a few interfaces.

DoltHub 862 Aug 5, 2022
Redis compatible server framework for Go

Redis compatible server framework for Go Features Create a Fast custom Redis compatible server in Go Simple interface. One function ListenAndServe and

Josh Baker 1.8k Aug 14, 2022
Efficient cache for gigabytes of data written in Go.

BigCache Fast, concurrent, evicting in-memory cache written to keep big number of entries without impact on performance. BigCache keeps entries on hea

Allegro Tech 5.9k Aug 9, 2022
:handbag: Cache arbitrary data with an expiration time.

cache Cache arbitrary data with an expiration time. Features 0 dependencies About 100 lines of code 100% test coverage Usage // New cache c := cache.N

Eduard Urbach 110 Aug 10, 2022
A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.

NutsDB English | 简体中文 NutsDB is a simple, fast, embeddable and persistent key/value store written in pure Go. It supports fully serializable transacti

徐佳军 2.4k Aug 18, 2022
Lightweight RESTful database engine based on stack data structures

piladb [pee-lah-dee-bee]. pila means stack or battery in Spanish. piladb is a lightweight RESTful database engine based on stack data structures. Crea

Fernando Álvarez 195 Jul 1, 2022
Distributed reliable key-value store for the most critical data of a distributed system

etcd Note: The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order

etcd-io 40.8k Aug 9, 2022
datatable is a Go package to manipulate tabular data, like an excel spreadsheet.

datatable is a Go package to manipulate tabular data, like an excel spreadsheet. datatable is inspired by the pandas python package and the data.frame R structure. Although it's production ready, be aware that we're still working on API improvements

Datasweet 218 Jul 1, 2022
This is a mongodb data comparison tool.

mongo-compare This is a mongodb data comparison tool. In the mongodb official tools, mongodb officially provides a series of tools such as mongodump,

null 31 May 8, 2022
Membin is an in-memory database that can be stored on disk. Data model smiliar to key-value but values store as JSON byte array.

Membin Docs | Contributing | License What is Membin? The Membin database system is in-memory database smiliar to key-value databases, target to effici

Membin 3 Jun 3, 2021
Distributed cache and in-memory key/value data store.

Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.

Burak Sezer 2.3k Aug 14, 2022
Owl is a db manager platform,committed to standardizing the data, index in the database and operations to the database, to avoid risks and failures.

Owl is a db manager platform,committed to standardizing the data, index in the database and operations to the database, to avoid risks and failures. capabilities which owl provides include Process approval、sql Audit、sql execute and execute as crontab、data backup and recover .

null 35 Jun 17, 2022
Mantil-template-form-to-dynamodb - Receive form data and write it to a DynamoDB table

This template is an example of serverless integration between Google Forms and DynamoDB

Christoph Berger 2 Jan 17, 2022
Analytics box a simple and privacy focused analytics tool written in go like google analytics

Analytics box is analytics tool like google analytics but instead of ripping user's privacy off them like google it respects their privacy and doesn't collect any unnecessary information.

Ketan Iralepatil 27 Aug 3, 2022
Collects many small inserts to ClickHouse and send in big inserts

ClickHouse-Bulk Simple Yandex ClickHouse insert collector. It collect requests and send to ClickHouse servers. Installation Download binary for you pl

Nikolay Pavlovich 375 Aug 8, 2022
ClickHouse Operator creates, configures and manages ClickHouse clusters running on Kubernetes

ClickHouse Operator ClickHouse Operator creates, configures and manages ClickHouse clusters running on Kubernetes. Features The ClickHouse Operator fo

RadonDB 19 Jul 9, 2022
Go-clickhouse - ClickHouse client for Go

ClickHouse client for Go 1.18+ This client uses native protocol to communicate w

Uptrace 122 Aug 11, 2022
Mogo: a lightweight browser-based logs analytics and logs search platform for some datasource(ClickHouse, MySQL, etc.)

mogo Mogo is a lightweight browser-based logs analytics and logs search platform

Shimo HQ 784 Aug 16, 2022
IoT Manager: use IoT platforms with Mender

Mender: Azure IoT Manager: use Azure IoT with Mender General Mender is an open source over-the-air (OTA) software updater for embedded Linux devices.

Mender 0 Jan 10, 2022
Fast specialized time-series database for IoT, real-time internet connected devices and AI analytics.

unitdb Unitdb is blazing fast specialized time-series database for microservices, IoT, and realtime internet connected devices. As Unitdb satisfy the

Saffat Technologies 94 Aug 2, 2022
Baker is a high performance, composable and extendable data-processing pipeline for the big data era

Baker is a high performance, composable and extendable data-processing pipeline for the big data era. It shines at converting, processing, extracting or storing records (structured data), applying whatever transformation between input and output through easy-to-write filters.

AdRoll 150 Jul 12, 2022
Interface PancingIN v1.0 (group project DBMS)

PancingIN Prasyarat Telah memasang Go (direkomendasikan versi terbaru) Mengetahui cara menggunakan terminal / command line Telah melakukan clone/downl

Michael R. Krisnadhi 0 Oct 30, 2021
Combine ent and gRPC, using Postgres as DBMS

database-system Combine ent and gRPC, using Postgres as DBMS How to develop Install tools brew install protobuf go mod tidy go install google.golang

null 0 Jan 9, 2022
MatrixOne is a planet scale, cloud-edge native big data engine crafted for heterogeneous workloads.

What is MatrixOne? MatrixOne is a planet scale, cloud-edge native big data engine crafted for heterogeneous workloads. It provides an end-to-end data

Matrix Origin 1.1k Aug 10, 2022