Public
Edited
May 22, 2024
1 fork
1 star
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
result = {
const stmt = await conn.prepare(query); //クエリを実行
const arrowTable = await stmt.query(); //resultはApach Allow Tableとして返却される
const text = await arrowTable.toString(); //resultをテキストに変換
return JSON.parse(text); //resultをJSONに変換
}
Insert cell
Insert cell
Inputs.table(result)
Insert cell
Insert cell
getDb = async () => {
// JSDELIVR_BUNDLESからDuckDBのバンドルを選択して取得する
const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES);
// 新しいWeb Workerを作成するためのURLを生成する
// Blobを使用して、インポートスクリプトを含む新しいJavaScriptファイルを作成する
const worker_url = URL.createObjectURL(
new Blob([`importScripts("${bundle.mainWorker}");`], {
type: "text/javascript",
})
);
// 上記で作成したURLを使用して新しいWeb Workerを作成
const worker = new Worker(worker_url);
// コンソールにログを出力するためのロガーを作成
const logger = new duckdb.ConsoleLogger();
// 作成したWeb Workerとロガーを使用して、非同期DuckDBインスタンスを作成
const db = new duckdb.AsyncDuckDB(logger, worker);
// DuckDBインスタンスを初期化
await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
// Web WorkerのURLを解放
URL.revokeObjectURL(worker_url);
// 初期化されたDuckDBインスタンスを返す
return db;
}
Insert cell
Insert cell
db = getDb()
Insert cell
Insert cell
conn = db.connect()
Insert cell
Insert cell
duckdb = import("https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.17.0/+esm")
Insert cell
JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles()
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more