target-clickhouse
Version:
A Singer target for Clickhouse
38 lines (37 loc) • 1.33 kB
TypeScript
/// <reference types="node" />
import { Writable } from "stream";
import { IConfig } from "./Config";
import { Either } from "./Either";
import TargetConnection, { IQueryResult } from "./TargetConnection";
export interface Column {
name: string;
type: string;
is_in_sorting_key: boolean;
}
export default class ClickhouseConnection implements TargetConnection {
private connInfo;
static droppedTablePrefix: string;
static archivedTablePrefix: string;
private connection;
constructor(connInfo: IConfig);
getDatabase(): string;
listTables(): Promise<string[]>;
addColumn(table: string, newCol: Column): Promise<Either<{
new: Column;
err: Error;
}, boolean>>;
renameObsoleteColumn(table: string): Promise<IQueryResult>;
removeColumn(table: string, existing: Column): Promise<Either<{
existing: Column;
err: Error;
}, boolean>>;
updateColumn(table: string, existing: Column, newCol: Column): Promise<Either<{
existing: Column;
new: Column;
err: Error;
}, boolean>>;
listColumns(table: string): Promise<Column[]>;
createWriteStream(query: string, callback: (err: any, res: any) => void): Writable;
runQuery(query: string, retries?: number): Promise<IQueryResult>;
private getConnectionPooled;
}