@junkawasaki/kawadb-orm
Version:
TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments
107 lines (106 loc) • 2.8 kB
TypeScript
/**
* 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;
}