Platform
Resources
Pricing
Sign in
Get started
Dominik Moritz
Faculty at CMU (@cmudig) and researcher at @apple.
Workspace
Fork
Public
By
Dominik Moritz
Edited
Jul 26, 2024
Insert cell
Insert cell
duckdbWasmVersion
=
"1.28.1-dev106.0"
Insert cell
arrow
=
require
(
"apache-arrow"
)
Insert cell
duckdb
=
import
(
`https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@${
duckdbWasmVersion
}/+esm`
)
Insert cell
bundles
=
duckdb
.
getJsDelivrBundles
(
)
Insert cell
bundle
=
duckdb
.
selectBundle
(
bundles
)
Insert cell
async
function
makeDB
(
)
{
const
logger
=
new
duckdb
.
ConsoleLogger
(
)
;
const
worker
=
await
duckdb
.
createWorker
(
bundle
.
mainWorker
)
;
const
db
=
new
duckdb
.
AsyncDuckDB
(
logger
,
worker
)
;
await
db
.
instantiate
(
bundle
.
mainModule
)
;
return
db
;
}
Insert cell
db
=
makeDB
(
)
Insert cell
query
=
`from read_parquet("https://idl.uw.edu/mosaic/data/flights-200k.parquet")`
Insert cell
connection
=
await
db
.
connect
(
)
Insert cell
connection
.
query
(
query
)
Insert cell
connection
.
useUnsafe
(
async
(
bindings
,
conn
)
=>
{
const
buffer
=
await
bindings
.
runQuery
(
conn
,
query
)
;
console
.
log
(
"buffer"
,
buffer
)
;
const
table
=
arrow
.
tableFromIPC
(
buffer
)
;
console
.
log
(
"table"
,
table
)
;
}
)
Insert cell
function
getArrowIPC
(
conn
,
query
)
{
return
new
Promise
(
(
resolve
,
reject
)
=>
{
connection
.
useUnsafe
(
async
(
bindings
,
conn
)
=>
{
try
{
const
buffer
=
await
bindings
.
runQuery
(
conn
,
query
)
;
resolve
(
buffer
)
;
}
catch
(
error
)
{
reject
(
error
)
;
}
}
)
;
}
)
;
}
Insert cell
buffer
=
getArrowIPC
(
connection
,
query
)
Insert cell
table
=
arrow
.
tableFromIPC
(
buffer
)
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.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
duckdbWasmVersion
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
arrow
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
duckdb
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
bundles
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
bundle
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
makeDB
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
db
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
query
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
connection
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
getArrowIPC
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
buffer
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
table
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML