Public
Edited
Dec 20, 2023
Insert cell
Insert cell
dtRds = getDataTable(parquetRds)
Insert cell
dtRds
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell
dtRdsSmall = dtRds
.filter(d=>d.current_generation==='Yes')
.select('pricedescription', 'priceperunit', 'instance_type', 'vcpu', 'engine_code', 'database_engine', 'database_edition', 'license_model', 'deployment_option', 'usagetype', 'operation', 'normalization_size_factor', 'region_code', 'location', 'generation', 'instancefamily', 'pricepervcpu')
.reify()
Insert cell
dtRdsSmall
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell
dtRdsSmall
.groupby('database_engine', 'region_code').count()
.orderby('database_engine', aq.desc('count'))
.view()
Insert cell
Insert cell
dtRdsSmall
.select('pricedescription','priceperunit', 'region_code')
.orderby('priceperunit')
.view({maxCellWidth: 1000, limit: 10})
Insert cell
dtRdsSmall
.select('pricedescription','priceperunit', 'region_code', 'location', 'normalization_size_factor')
.derive({costpermonth: d=>d.priceperunit*730})
.derive({costperyear: d=>d.priceperunit*730*12})
.derive({costperyearpernomr: d=>d.costperyear/d.normalization_size_factor})
.orderby(aq.desc('priceperunit'))
.view({maxCellWidth: 1000, limit: 10})
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
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