Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
library(data.table)
library(DBmaps)
## ----setup_metadata-----------------------------------------------------------
# Define customer metadata
customers_meta <- table_info(
table_name = "customers",
source_identifier = "customers.csv",
identifier_columns = "customer_id",
key_outcome_specs = list(
list(OutcomeName = "CustomerCount",
ValueExpression = 1,
AggregationMethods = list(
list(AggregatedName = "CountByRegion",
AggregationFunction = "sum",
GroupingVariables = "region")
)
)
)
)
# Define transaction metadata
transactions_meta <- table_info(
"transactions",
"t.csv",
"tx_id",
key_outcome_specs = list(
list(OutcomeName = "Revenue",
ValueExpression = quote(price * quantity),
AggregationMethods = list(
list(AggregatedName = "RevenueByCustomer",
AggregationFunction = "sum",
GroupingVariables = "customer_id")
)
))
)
# Combine metadata
master_metadata <- create_metadata_registry()
master_metadata <- add_table(master_metadata, customers_meta)
master_metadata <- add_table(master_metadata, transactions_meta)
## ----run_simple, message=TRUE-------------------------------------------------
user_selections <- list(
customers = "region",
transactions = "RevenueByCustomer"
)
plan <- create_join_plan(
base_table = "customers",
selections = user_selections,
metadata_dt = master_metadata
)
print(plan)
## ----setup_invalid------------------------------------------------------------
# Add product metadata for this example
products_meta <- table_info("products", "p.csv", "product_id", list(list(OutcomeName="x",ValueExpression=1,AggregationMethods=list(list(AggregatedName="y",AggregationFunction="z",GroupingVariables="category")))))
transactions_meta_v2 <- table_info("transactions", "t.csv", "trans_id", list(
list(OutcomeName="Revenue", ValueExpression=quote(price*qty), AggregationMethods=list(
# This aggregation is by product_id, not customer_id
list(AggregatedName="RevenueByProduct", AggregationFunction="sum", GroupingVariables="product_id")
))
))
invalid_metadata <- rbindlist(list(customers_meta, products_meta, transactions_meta_v2))
# The invalid request
invalid_selections <- list(
customers = "customer_id",
transactions = "RevenueByProduct"
)
## ----run_invalid, error=TRUE--------------------------------------------------
try({
create_join_plan(
base_table = "customers",
selections = invalid_selections,
metadata_dt = invalid_metadata
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.