@junkawasaki/kawadb-orm
Version:
TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments
76 lines (75 loc) • 2.42 kB
TypeScript
/**
* KSQL ストリームビルダー
*/
import { KsqlStream, KsqlColumn, KsqlDataType, KsqlDataFormat, KsqlWindow } from '../types/KsqlTypes';
export declare class StreamBuilder {
private stream;
/**
* ストリーム名を設定
*/
name(streamName: string): StreamBuilder;
/**
* カラムを追加
*/
addColumn(name: string, type: KsqlDataType, nullable?: boolean): StreamBuilder;
/**
* 複数のカラムを追加
*/
columns(columns: KsqlColumn[]): StreamBuilder;
/**
* Kafkaトピックを設定
*/
topic(topicName: string): StreamBuilder;
/**
* データフォーマットを設定
*/
format(dataFormat: KsqlDataFormat): StreamBuilder;
/**
* パーティション設定
*/
partitionBy(field: string): StreamBuilder;
/**
* ウィンドウ設定
*/
window(window: KsqlWindow): StreamBuilder;
/**
* タンブリングウィンドウを設定
*/
tumblingWindow(size: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder;
/**
* ホッピングウィンドウを設定
*/
hoppingWindow(size: number, advance: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder;
/**
* セッションウィンドウを設定
*/
sessionWindow(size: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder;
/**
* ストリーム設定を構築
*/
build(): KsqlStream;
/**
* CREATE STREAM SQLを生成
*/
toSQL(): string;
/**
* ビルダーをリセット
*/
reset(): StreamBuilder;
/**
* ビルダーを複製
*/
clone(): StreamBuilder;
/**
* よく使われるカラム型のヘルパーメソッド
*/
stringColumn(name: string, nullable?: boolean): StreamBuilder;
integerColumn(name: string, nullable?: boolean): StreamBuilder;
bigintColumn(name: string, nullable?: boolean): StreamBuilder;
doubleColumn(name: string, nullable?: boolean): StreamBuilder;
booleanColumn(name: string, nullable?: boolean): StreamBuilder;
timestampColumn(name: string, nullable?: boolean): StreamBuilder;
arrayColumn(name: string, nullable?: boolean): StreamBuilder;
mapColumn(name: string, nullable?: boolean): StreamBuilder;
structColumn(name: string, nullable?: boolean): StreamBuilder;
}