UNPKG

@junkawasaki/kawadb-orm

Version:

TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments

107 lines (106 loc) 2.8 kB
/** * KSQL エンジン */ import { Connection } from '../core/Connection'; import { Logger } from '../utils/Logger'; import { KsqlResult, ContinuousQuery, StreamingResult, KsqlStream, KsqlTable } from '../types/KsqlTypes'; export declare class KsqlEngine { private connection; private logger; private wasmKsqlEngine; private continuousQueries; private streamingResults; constructor(connection: Connection, logger: Logger); /** * KSQL エンジンを初期化 */ initialize(): Promise<void>; /** * KSQL クエリを実行 */ executeKsql(ksql: string): Promise<KsqlResult>; /** * ストリームを作成 */ createStream(stream: KsqlStream): Promise<KsqlResult>; /** * テーブルを作成 */ createTable(table: KsqlTable): Promise<KsqlResult>; /** * ストリームからストリームを作成(クエリベース) */ createStreamAsSelect(streamName: string, selectQuery: string, partitionBy?: string): Promise<KsqlResult>; /** * 継続的クエリを作成 */ createContinuousQuery(name: string, ksql: string): Promise<string>; /** * 継続的クエリを停止 */ stopContinuousQuery(queryId: string): Promise<boolean>; /** * 継続的クエリ一覧を取得 */ listContinuousQueries(): Promise<ContinuousQuery[]>; /** * ストリーミング結果を取得 */ getStreamingResults(queryId: string, limit?: number): Promise<StreamingResult[]>; /** * ストリームを削除 */ dropStream(streamName: string): Promise<KsqlResult>; /** * テーブルを削除 */ dropTable(tableName: string): Promise<KsqlResult>; /** * ストリーム一覧を表示 */ showStreams(): Promise<KsqlResult>; /** * テーブル一覧を表示 */ showTables(): Promise<KsqlResult>; /** * ストリーミングデータを追加 */ addStreamingData(topic: string, data: any): Promise<void>; /** * クリーンアップ */ cleanup(): Promise<void>; /** * CREATE STREAM KSQLを構築 */ private buildCreateStreamKsql; /** * CREATE TABLE KSQLを構築 */ private buildCreateTableKsql; /** * WASM結果を変換 */ private convertWasmResult; /** * モック KSQL 実行 */ private executeKsqlMock; /** * クエリタイプを解析 */ private parseQueryType; /** * 継続的クエリの実行を開始 */ private startContinuousQueryExecution; /** * 入力ソースを抽出 */ private extractInputSources; /** * 出力ターゲットを抽出 */ private extractOutputTarget; }