[!CAUTION] This package is not compatible with AdonisJS v5.
Copied a lot from Inspired a lot by @adonijs/redis.
You may also looking for ClickHouseSqlBuilder
Installation
node ace add adonis-clickhouse
Configuration
You can change it in config/clickhouse.ts
, it's all same with createClient
Configuration.
here is the details: https://clickhouse.com/docs/en/integrations/language-clients/javascript#configuration
Environment Variables
Variable | Description | Default Value |
---|---|---|
CLICKHOUSE_DB |
Database Name | default |
CLICKHOUSE_USER |
User | default |
CLICKHOUSE_PASSWORD |
Password | empty string '' |
CLICKHOUSE_HOST |
Clickhouse connect url | http://localhost:8123 |
CLICKHOUSE_REQUEST_TIMEOUT |
The request timeout in milliseconds. | 30000 (30s) |
CLICKHOUSE_COMPRESSION_REQUEST |
Enables compression on the client request body | false |
CLICKHOUSE_COMPRESSION_RESPONSE |
Instructs ClickHouse server to respond with compressed response body. | true |
How to import
As it is a container service, you can init it by
await app.container.make('clickhouse')
or
import clickhouse from 'adonis-clickhouse/services/main'
The way same as @adonisjs/redis
.
Query
The imported clickhouse actully is a instance of @clickhouse/client
Client, hence those codes are equal:
An example of adonis-clickhouse
import clickhouse from 'adonis-clickhouse/services/main'
await clickhouse.query({
/* QueryParams */
})
Equaled offical library example
import { createClient } from '@clickhouse/client'
const client = createClient({
/* configuration */
})
await client.query({
/* QueryParams */
})
Multi Database Instances
You can config the multi databases and use manager
to connect it.
import { manager } from 'adonis-clickhouse/services/main'
// Change main to the name you defined.
const client = manager.connect('main')
await client.query({
/* QueryParams */
})
Documentation
See Offical ClickHouse JS Library
Who's Using
Create an issue to submit your project.
Contributors
This project is contributed by u301 team for giving back to the AdonisJS community.
If you are looking for a queue solution for AdonisJS, take a look at adonis-resque.
Lisence
the MIT