https://github.com/watchdg/node-clickhouse-buffer
https://github.com/watchdg/node-clickhouse-buffer
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/watchdg/node-clickhouse-buffer
- Owner: WatchDG
- License: mit
- Created: 2022-04-08T04:25:07.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-04-23T14:05:26.000Z (about 3 years ago)
- Last Synced: 2025-02-27T00:41:06.495Z (over 1 year ago)
- Language: TypeScript
- Size: 75.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# clickhouse-buffer
## Install
```shell
yarn add clickhouse-buffer
# or
npm install clickhouse-buffer
```
## How to use
```typescript
import {ClickhouseBuffer, DEFAULT_DATABASE} from "clickhouse-buffer";
(async () => {
const database = DEFAULT_DATABASE;
const table = 'events';
const directoryPath = await ClickhouseBuffer.prepareDirectoryPath('buffer', database, table, 0o777);
const clickhouseBuffer = new ClickhouseBuffer({
directoryPath,
database,
table
});
await clickhouseBuffer.clickhouseClient.query(`CREATE TABLE IF NOT EXISTS ${database}.${table} (id UInt16) ENGINE = MergeTree() ORDER BY id`);
await clickhouseBuffer.loadFilesToDatabase();
for (let i = 0; i <= 9; i++) {
clickhouseBuffer.push([i]);
}
setTimeout(() => {
for (let i = 10; i <= 19; i++) {
clickhouseBuffer.push([i]);
}
}, 5000)
setTimeout(() => {
clickhouseBuffer.release();
}, 15000);
})();
```