From 41dca3a1ab138a61c63bcbcb4fde333b0f2f9a83 Mon Sep 17 00:00:00 2001 From: Pedro Zanlorensi Date: Wed, 11 Mar 2026 18:06:20 -0300 Subject: [PATCH 1/2] add dwh projects --- data-warehousing/README.md | 14 + .../dbrx-metric-views/0_IngestData.ipynb | 275 +++++ .../1_CreateMetricView.ipynb | 581 ++++++++++ .../dbrx-metric-views/2_QueryMetricView.ipynb | 354 +++++++ .../3_MaterializeMetricView.ipynb | 803 ++++++++++++++ data-warehousing/dbrx-metric-views/README.md | 13 + .../dashboard_and_genie/dashboard.lvdash.json | 989 ++++++++++++++++++ .../dashboard_parameterized.lvdash.json | 989 ++++++++++++++++++ .../dashboard_and_genie/genie_space.json | 379 +++++++ .../figures/dimensional_model.png | Bin 0 -> 355159 bytes .../figures/metric_view_in_dashboards.png | Bin 0 -> 199787 bytes .../figures/metric_view_in_genie.png | Bin 0 -> 292873 bytes data-warehousing/genie-cicd/CONTRIBUTING.md | 319 ++++++ data-warehousing/genie-cicd/README.md | 313 ++++++ data-warehousing/genie-cicd/SETUP.md | 491 +++++++++ .../genie-cicd/databricks.yml.template | 247 +++++ .../genie_definition/genie_space_dev.json | 129 +++ .../genie_definition/genie_space_prod.json | 129 +++ .../genie-cicd/src/DOCUMENTATION.md | 540 ++++++++++ .../genie-cicd/src/deploy_genie_space.ipynb | 348 ++++++ .../src/export_genie_definition.ipynb | 195 ++++ .../Create Genie Space with Widgets.ipynb | 731 +++++++++++++ 22 files changed, 7839 insertions(+) create mode 100644 data-warehousing/dbrx-metric-views/0_IngestData.ipynb create mode 100644 data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb create mode 100644 data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb create mode 100644 data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb create mode 100644 data-warehousing/dbrx-metric-views/README.md create mode 100644 data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard.lvdash.json create mode 100644 data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard_parameterized.lvdash.json create mode 100644 data-warehousing/dbrx-metric-views/dashboard_and_genie/genie_space.json create mode 100644 data-warehousing/dbrx-metric-views/figures/dimensional_model.png create mode 100644 data-warehousing/dbrx-metric-views/figures/metric_view_in_dashboards.png create mode 100644 data-warehousing/dbrx-metric-views/figures/metric_view_in_genie.png create mode 100644 data-warehousing/genie-cicd/CONTRIBUTING.md create mode 100644 data-warehousing/genie-cicd/README.md create mode 100644 data-warehousing/genie-cicd/SETUP.md create mode 100644 data-warehousing/genie-cicd/databricks.yml.template create mode 100644 data-warehousing/genie-cicd/genie_definition/genie_space_dev.json create mode 100644 data-warehousing/genie-cicd/genie_definition/genie_space_prod.json create mode 100644 data-warehousing/genie-cicd/src/DOCUMENTATION.md create mode 100644 data-warehousing/genie-cicd/src/deploy_genie_space.ipynb create mode 100644 data-warehousing/genie-cicd/src/export_genie_definition.ipynb create mode 100644 data-warehousing/genie-room-creation/Create Genie Space with Widgets.ipynb diff --git a/data-warehousing/README.md b/data-warehousing/README.md index 40d4d85..44ae1ed 100644 --- a/data-warehousing/README.md +++ b/data-warehousing/README.md @@ -1 +1,15 @@ # Data Warehousing + +## Projects + +### [Databricks Metric Views](./dbrx-metric-views/) + +A demo showcasing how to use Unity Catalog Metric Views in Databricks to define semantic models directly on the platform. Built on top of the [Retail Store Star Schema Dataset](https://www.kaggle.com/datasets/shrinivasv/retail-store-star-schema-dataset?select=fact_sales_denormalized.csv), it demonstrates how embedding your semantic layer in Databricks provides unified governance through Unity Catalog alongside optimal query performance — eliminating the need for external semantic modeling tools. + +### [Genie Space CI/CD](./genie-cicd/) + +An automated CI/CD pipeline for promoting Databricks AI/BI Genie spaces across environments. The project uses Databricks Asset Bundles (DABs) to export a Genie space configuration from a Dev workspace, version-control it in Git, and deploy it to a Prod workspace with automatic Unity Catalog catalog/schema reference replacement. It supports both creating new and updating existing Genie spaces, runs on serverless compute by default, and is ready to integrate with CI/CD platforms like GitHub Actions or Azure DevOps. + +### [Genie Room Creation](./genie-room-creation/) + +A Databricks notebook that enables programmatic creation of AI/BI Genie spaces using the Databricks Python SDK and interactive widgets. It provides a guided, widget-driven experience for configuring a new Genie space — including title, description, warehouse selection, table identifiers, and sample instructions — all without writing manual HTTP requests. The notebook also demonstrates advanced patterns such as listing existing spaces, customizing data sources with sample questions, and leveraging the SDK's built-in authentication and retry capabilities. diff --git a/data-warehousing/dbrx-metric-views/0_IngestData.ipynb b/data-warehousing/dbrx-metric-views/0_IngestData.ipynb new file mode 100644 index 0000000..6f43fc7 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/0_IngestData.ipynb @@ -0,0 +1,275 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "318cb8e6-9c5e-4fc3-bf7f-c3222c1c47b6", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "!pip install kagglehub\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9918dd73-dce5-4f93-92d8-fefdcbcb26c8", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Define parameters\n", + "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\"s, \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "038ad156-d93b-4c82-81a2-415c23c1bb52", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "# You need to define this variable in order to download the Kaggle files to your Volume\n", + "os.environ[\"KAGGLEHUB_CACHE\"] = f\"/Volumes/pedroz_catalog/metric_views_schema/dimensional_model/kaggle_files\"" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9277a6c9-63b8-4280-9995-f392d718d481", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import kagglehub\n", + "\n", + "# Download latest version\n", + "path = kagglehub.dataset_download(\"shrinivasv/retail-store-star-schema-dataset\")\n", + "\n", + "print(\"Path to dataset files:\", path)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "80f1d37c-096a-4876-a7e4-1e782dc013f7", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import glob\n", + "\n", + "csv_folder = path # path variable from kagglehub.dataset_download\n", + "csv_files = glob.glob(f\"{csv_folder}/*.csv\")\n", + "\n", + "for csv_file in csv_files:\n", + " table_name = os.path.splitext(os.path.basename(csv_file))[0]\n", + " df = spark.read.csv(csv_file, header=True, inferSchema=True)\n", + " # Clean column names: replace spaces with underscores\n", + " for c in df.columns:\n", + " df = df.withColumnRenamed(c, c.replace(\" \", \"_\"))\n", + " full_table_name = f\"{CATALOG_NAME}.{SCHEMA_NAME}.{table_name}\"\n", + " spark.sql(f\"DROP TABLE IF EXISTS {full_table_name}\")\n", + " df.write.saveAsTable(full_table_name)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "e8dff81e-29b6-4bfc-988d-610d36b4012c", + "showTitle": false, + "tableResultSettingsMap": { + "0": { + "dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{\"database\":179},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1766428355279}", + "filterBlob": null, + "queryPlanFiltersBlob": null, + "tableResultIndex": 0 + } + }, + "title": "" + } + }, + "outputs": [], + "source": [ + "display(spark.sql(f\"SHOW TABLES IN {CATALOG_NAME}.{SCHEMA_NAME}\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c677244c-bf81-418a-bcac-06053e52f650", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "SELECT *\n", + "FROM $CATALOG_NAME.$SCHEMA_NAME.dim_campaigns\n", + "LIMIT 10" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": { + "hardware": { + "accelerator": null, + "gpuPoolId": null, + "memory": null + } + }, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 7680324554559970, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "0_IngestData", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "0f8987ce-14af-4a61-aec6-8f2bdf7e0859", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "widgetDisplayType": "Text", + "validationRegex": null + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "widgetType": "text", + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "4f108163-255b-4738-83a3-72a2e2d7dc19", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "widgetDisplayType": "Text", + "validationRegex": null + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "widgetType": "text", + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb b/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb new file mode 100644 index 0000000..109cb65 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb @@ -0,0 +1,581 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "ae146916-a24a-4973-bd09-ad7cc50c8ea0", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "The metric view below condenses the joins depicted in this ERD, and add calculated measures and columns on top of it:\n", + "\n", + "\n", + "Many advanced settings were explored to create this Metric View, such as:\n", + "- Using joins (nested and un-nested): https://docs.databricks.com/aws/en/metric-views/data-modeling/joins\n", + "- Adding semantic metadata: https://docs.databricks.com/aws/en/metric-views/data-modeling/semantic-metadata\n", + "- Using window measures: https://docs.databricks.com/aws/en/metric-views/data-modeling/window-measures\n", + "\n", + "Adding your semantic models directly in Databricks lets you benefit from using the Databricks compute for querying your data, despites also being integrated to the Unity Catalog, allowing for truly unified governance and optimal performance. " + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "89da16d1-c4f9-4e8d-8232-035e8263d083", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Define parameters\n", + "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c1749c4c-ed90-440e-be91-63a07dbb0993", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "CREATE OR REPLACE VIEW ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships WITH METRICS LANGUAGE YAML AS \n", + "$$\n", + "version: 1.1\n", + "\n", + "source: ${CATALOG_NAME}.${SCHEMA_NAME}.fact_sales_normalized\n", + "\n", + "joins:\n", + " # Star join between fact table and dim_campaigns\n", + " - name: dim_campaigns\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_campaigns\n", + " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", + " # Snowflake joins from dim_campaigns to campaign start/end dates\n", + " joins:\n", + " - name: campaign_start_date\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", + " - name: campaign_end_date\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", + " \n", + " # Star join between fact table and dim_customers\n", + " - name: dim_customers\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_customers\n", + " \"on\": source.customer_sk = dim_customers.customer_sk\n", + " \n", + " # Star join between fact table and dim_dates\n", + " - name: dim_dates\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": source.sales_date = dim_dates.full_date\n", + " \n", + " # Star join between fact table and dim_products\n", + " - name: dim_products\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_products\n", + " \"on\": source.product_sk = dim_products.product_sk\n", + " \n", + " # Star join between fact table and dim_salespersons\n", + " - name: dim_salespersons\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", + " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", + "\n", + " # Star join between fact table and dim_stores\n", + " - name: dim_stores\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_stores\n", + " \"on\": source.store_sk = dim_stores.store_sk\n", + " # Snowflake join from dim_stores to store_manager_salesperson\n", + " joins:\n", + " - name: store_manager_salesperson\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", + " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", + "\n", + "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", + "\n", + "dimensions:\n", + "\n", + " # Columns from fact table\n", + " - name: sales_date\n", + " expr: sales_date\n", + " comment: Sales Date\n", + " display_name: Sales Date\n", + " synonyms: ['date of sale']\n", + " - name: total_amount\n", + " expr: total_amount\n", + " comment: Sales amount\n", + " display_name: Sales amount\n", + " synonyms: ['total amount', 'sale amount']\n", + "\n", + " # Dimension columns from dim_customers\n", + " - name: first_name\n", + " expr: dim_customers.first_name\n", + " comment: Customer first name\n", + " display_name: First Name\n", + " synonyms: ['customer first', 'given name']\n", + " - name: last_name\n", + " expr: dim_customers.last_name\n", + " comment: Customer last name\n", + " display_name: Last Name\n", + " synonyms: ['customer last', 'surname']\n", + " - name: customer_segment\n", + " expr: dim_customers.customer_segment\n", + " comment: Customer segment\n", + " display_name: Customer Segment\n", + " synonyms: ['segment', 'customer type']\n", + " - name: customer_email\n", + " expr: dim_customers.email\n", + " comment: Customer email\n", + " display_name: Customer Email\n", + " synonyms: ['email', 'contact email']\n", + " - name: customer_residential_location\n", + " expr: dim_customers.residential_location\n", + " comment: Customer residential location\n", + " display_name: Customer Residential Location\n", + " synonyms: ['residence', 'home location']\n", + " # Calculated customer columns\n", + " - name: customer_name\n", + " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", + " comment: Customer name\n", + " display_name: Customer Name\n", + " synonyms: ['name', 'full name']\n", + "\n", + " # Dimension columns from dim_stores\n", + " - name: store_name\n", + " expr: dim_stores.store_name\n", + " comment: Store name\n", + " display_name: Store Name\n", + " synonyms: ['location name', 'retail name']\n", + " - name: store_type\n", + " expr: dim_stores.store_type\n", + " comment: Store type\n", + " display_name: Store Type\n", + " synonyms: ['type', 'retail type']\n", + " - name: store_location\n", + " expr: dim_stores.store_location\n", + " comment: Store location\n", + " display_name: Store Location\n", + " synonyms: ['location', 'address']\n", + "\n", + " # Dimension columns from dim_products\n", + " - name: product_name\n", + " expr: dim_products.product_name\n", + " comment: Product name\n", + " display_name: Product Name\n", + " synonyms: ['item name', 'sku name']\n", + " - name: product_category\n", + " expr: dim_products.category\n", + " comment: Product category\n", + " display_name: Product Category\n", + " synonyms: ['category', 'product type']\n", + " - name: product_brand\n", + " expr: dim_products.brand\n", + " comment: Product brand\n", + " display_name: Brand\n", + " synonyms: ['brand', 'manufacturer']\n", + " - name: product_origin_location\n", + " expr: dim_products.origin_location\n", + " comment: Product origin location\n", + " display_name: Origin Location\n", + " synonyms: ['origin', 'source location']\n", + "\n", + " # Dimension columns from dim_campaigns\n", + " - name: campaign_name\n", + " expr: dim_campaigns.campaign_name\n", + " comment: Campaign name\n", + " display_name: Campaign Name\n", + " synonyms: ['promotion name', 'marketing name']\n", + " - name: campaign_budget\n", + " expr: dim_campaigns.campaign_budget\n", + " comment: Campaign budget\n", + " display_name: Campaign Budget\n", + " synonyms: ['budget', 'promotion budget']\n", + "\n", + " # Dimension columns from dim_dates\n", + " - name: full_date\n", + " expr: dim_dates.full_date\n", + " comment: Full date\n", + " display_name: Full Date\n", + " synonyms: ['date', 'transaction date']\n", + " - name: year\n", + " expr: dim_dates.year\n", + " comment: Year\n", + " display_name: Year\n", + " synonyms: ['calendar year', 'fiscal year']\n", + " - name: month\n", + " expr: dim_dates.month\n", + " comment: Month\n", + " display_name: Month\n", + " synonyms: ['calendar month', 'fiscal month']\n", + " - name: day\n", + " expr: dim_dates.day\n", + " comment: Day\n", + " display_name: Day\n", + " synonyms: ['calendar day', 'date day']\n", + " - name: weekday\n", + " expr: dim_dates.weekday\n", + " comment: Weekday\n", + " display_name: Weekday\n", + " synonyms: ['day of week', 'weekday name']\n", + " - name: quarter\n", + " expr: dim_dates.quarter\n", + " comment: Quarter\n", + " display_name: Quarter\n", + " synonyms: ['fiscal quarter', 'calendar quarter']\n", + " # Calculated datetime columns\n", + " - name: week\n", + " expr: \"date_trunc('week', sales_date)\"\n", + " comment: Week of the sale\n", + " display_name: Week\n", + " format:\n", + " type: date\n", + " date_format: year_week\n", + " leading_zeros: false\n", + " synonyms: ['sales week', 'transaction week']\n", + " - name: dayOfWeek\n", + " expr: dayofweek(sales_date)\n", + " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", + " display_name: Day of Week\n", + " format:\n", + " type: number\n", + " synonyms: ['weekday number', 'day index']\n", + " - name: YearMonth\n", + " expr: \"date_trunc('month', sales_date)\"\n", + " comment: Year and month of the sale\n", + " display_name: Year Month\n", + " format:\n", + " type: date\n", + " date_format: locale_number_month\n", + " leading_zeros: false\n", + " synonyms: ['month', 'year and month']\n", + "\n", + " # Dimension columns from dim_salespersons\n", + " - name: salesperson_name\n", + " expr: dim_salespersons.salesperson_name\n", + " comment: Salesperson name\n", + " display_name: Salesperson Name\n", + " synonyms: ['rep name', 'employee name']\n", + " - name: salesperson_role\n", + " expr: dim_salespersons.salesperson_role\n", + " comment: Salesperson role\n", + " display_name: Salesperson Role\n", + " synonyms: ['role', 'job title']\n", + "\n", + "measures:\n", + " # Calculated measures\n", + " - name: sales_sum\n", + " expr: SUM(source.total_amount)\n", + " comment: Total sales amount\n", + " display_name: Total Sales\n", + " synonyms: ['revenue', 'total sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_avg\n", + " expr: AVG(source.total_amount)\n", + " comment: Average sales amount\n", + " display_name: Average Sales\n", + " synonyms: ['average revenue', 'mean sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_stddev\n", + " expr: STDDEV(source.total_amount)\n", + " comment: Standard deviation of sales amount\n", + " display_name: Sales Standard Deviation\n", + " synonyms: ['sales variability', 'sales stddev']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_median\n", + " expr: percentile(source.total_amount, 0.5)\n", + " comment: Median sales amount\n", + " display_name: Sales Median\n", + " synonyms: ['median revenue', 'median sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile1\n", + " expr: percentile(source.total_amount, 0.25)\n", + " comment: First quartile (Q1) of sales amount\n", + " display_name: Sales Quartile 1\n", + " synonyms: ['Q1 sales', 'first quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile2\n", + " expr: percentile(source.total_amount, 0.5)\n", + " comment: Second quartile (Q2/Median) of sales amount\n", + " display_name: Sales Quartile 2 (Median)\n", + " synonyms: ['Q2 sales', 'median']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile3\n", + " expr: percentile(source.total_amount, 0.75)\n", + " comment: Third quartile (Q3) of sales amount\n", + " display_name: Sales Quartile 3\n", + " synonyms: ['Q3 sales', 'third quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile4\n", + " expr: percentile(source.total_amount, 1.0)\n", + " comment: Fourth quartile (Q4/Max) of sales amount\n", + " display_name: Sales Quartile 4 (Max)\n", + " synonyms: ['Q4 sales', 'max sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_largest\n", + " expr: MAX(source.total_amount)\n", + " comment: Largest Sale\n", + " display_name: Largest Sale\n", + " synonyms: ['max sale', 'highest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_smallest\n", + " expr: MIN(source.total_amount)\n", + " comment: Smallest Sale\n", + " display_name: Smallest Sale\n", + " synonyms: ['min sale', 'lowest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_mode\n", + " expr: mode(source.total_amount)\n", + " comment: Mode of sales amount\n", + " display_name: Sales Mode\n", + " synonyms: ['most common sale', 'mode']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + "\n", + " # Window measures\n", + " - name: previous_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Previous Day Sales\n", + " display_name: Previous Day Sales\n", + " synonyms: ['last day sales', 'yesterday sales']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 1 day\n", + " semiadditive: last\n", + " - name: current_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Current Day Sales\n", + " display_name: Current Day Sales\n", + " synonyms: ['today sales']\n", + " window:\n", + " - order: sales_date\n", + " range: current\n", + " semiadditive: last\n", + " - name: day_over_day_growth\n", + " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", + "\n", + " - name: running_total_sales\n", + " expr: SUM(total_amount)\n", + " comment: Running Total Sales\n", + " display_name: Running Total Sales\n", + " synonyms: ['running sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + "\n", + " - name: ytd_sales\n", + " expr: SUM(total_amount)\n", + " comment: YTD Sales\n", + " display_name: YTD Sales\n", + " synonyms: ['year-to-date sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + " - order: year\n", + " range: current\n", + " semiadditive: last\n", + "\n", + " - name: t7d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 7 days\n", + " display_name: Customers last 7 days\n", + " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 7 day\n", + " semiadditive: last\n", + "\n", + " - name: t30d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 30 days\n", + " display_name: Customers last 30 days\n", + " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 30 day\n", + " semiadditive: last\n", + "\n", + "$$" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 7680324554526009, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "1_CreateMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "a1da4dd4-31bf-443a-957c-041e6fa5b700", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "27f37404-389a-4949-bb98-a07b86e3d7f0", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb b/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb new file mode 100644 index 0000000..780318f --- /dev/null +++ b/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb @@ -0,0 +1,354 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "b2f360c8-b4ec-44cf-81b4-67fa3e4be576", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "!pip install databricks-sdk -U\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c3a3034c-fa9b-4f1c-b84e-3accfd298a12", + "showTitle": false, + "tableResultSettingsMap": { + "0": { + "dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1766450269016}", + "filterBlob": null, + "queryPlanFiltersBlob": null, + "tableResultIndex": 0 + } + }, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "CREATE WIDGET TEXT CATALOG_NAME DEFAULT \"pedroz_catalog\";\n", + "CREATE WIDGET TEXT SCHEMA_NAME DEFAULT \"metric_views_schema\";\n", + "\n", + "-- This is just a simple query example, demonstrating that you can query Metric Views just like any other view!\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "101f839d-1f1a-44fd-8b94-a93e283a3c98", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "You can also consume Metric Views in Genie:\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "a90ba13a-b72b-462d-bc5f-c6374485adbc", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Check out the sample serialized Genie space [./dashboard_and_genie/genie_space.json](./dashboard_and_genie/dashboard.json). \n", + "You can use the code snippet below to automatically create it in your workspace, it uses the [Create Genie Space](https://docs.databricks.com/api/workspace/genie/createspace) API. " + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "78273a45-f363-404c-b7e8-1737e98d718c", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import json\n", + "from databricks.sdk import WorkspaceClient\n", + "\n", + "# Load the serialized Genie space from the JSON file\n", + "with open('./dashboard_and_genie/genie_space.json', 'r') as f:\n", + " genie_space_json_str = f.read()\n", + "\n", + "# Replace CATALOG_NAME and SCHEMA_NAME placeholders with parameter values\n", + "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", + "genie_space_json_str = genie_space_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", + "\n", + "# Specify the warehouse ID (replace with your actual warehouse ID)\n", + "dbutils.widgets.text(\"warehouse_id\", \"8baced1ff014912d\")\n", + "warehouse_id = dbutils.widgets.get(\"warehouse_id\")\n", + "\n", + "# Prepare the payload as required\n", + "payload = {\n", + " \"serialized_space\": genie_space_json_str,\n", + " \"warehouse_id\": warehouse_id,\n", + " \"title\": \"Sample Sales Genie Space (created via API)\"\n", + "}\n", + "\n", + "# Initialize WorkspaceClient (will use DATABRICKS_HOST and DATABRICKS_TOKEN from env)\n", + "w = WorkspaceClient()\n", + "workspace_url = w.config.host\n", + "pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()\n", + "\n", + "import requests\n", + "\n", + "headers = {\n", + " \"Authorization\": f\"Bearer {pat_token}\",\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "\n", + "# POST to Genie Create Space API\n", + "response = requests.post(\n", + " f\"{workspace_url}/api/2.0/genie/spaces\",\n", + " headers=headers,\n", + " data=json.dumps(payload)\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "space_info = response.json()\n", + "print(f\"Created Genie space with ID *{space_info['space_id']}* and name *{space_info['title']}*\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "8281f8e3-dd67-4639-be89-98a61f268eb4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "And create dashboards using it! \n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "07d7f356-cd20-4182-ac6f-f19c34aba167", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Check out the [./dashboard_and_genie/dashboard.lvdash.json](./dashboard_and_genie/dashboard.lvdash.json) dashboard for a simple dashboard that can be used as an example to show how you can consume Metric Views using AIBI Dashboards. \n", + "\n", + "**Note**: You will need to replace the catalog and schema names from the dashboard.lvdash.json file from **pedroz_catalog** and **metric_views_schema** to your desired catalog and schema names. The script below does that automatically, and creates another .lvdash.json file which you can edit called [./dashboard_and_genie/dashboard_parameterized.lvdash.json](./dashboard_and_genie/dashboard_parameterized.lvdash.json)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "27d714f9-39f9-4df3-8c7f-8d6b8f1ff6e3", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", + "\n", + "with open('./dashboard_and_genie/dashboard.lvdash.json', 'r') as f:\n", + " dashboard_json_str = f.read()\n", + "\n", + "dashboard_json_str = dashboard_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", + "\n", + "with open('./dashboard_and_genie/dashboard_parameterized.lvdash.json', 'w') as f:\n", + " f.write(dashboard_json_str)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": -1, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "2_QueryMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "06f74b0f-eecd-4def-b995-d03bad17de04", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": null, + "name": "CATALOG_NAME", + "options": { + "widgetDisplayType": "Text", + "validationRegex": null + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "widgetType": "text", + "defaultValue": "pedroz_catalog", + "label": null, + "name": "CATALOG_NAME", + "options": { + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "d3fbedb2-1ada-41bb-b5d0-168b130f970a", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": null, + "name": "SCHEMA_NAME", + "options": { + "widgetDisplayType": "Text", + "validationRegex": null + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "widgetType": "text", + "defaultValue": "metric_views_schema", + "label": null, + "name": "SCHEMA_NAME", + "options": { + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } + } + }, + "warehouse_id": { + "currentValue": "8baced1ff014912d", + "nuid": "7ed415c1-0a75-4920-9494-41bd4c6edfa7", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "8baced1ff014912d", + "label": null, + "name": "warehouse_id", + "options": { + "widgetDisplayType": "Text", + "validationRegex": null + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "widgetType": "text", + "defaultValue": "8baced1ff014912d", + "label": null, + "name": "warehouse_id", + "options": { + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb b/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb new file mode 100644 index 0000000..13e1702 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb @@ -0,0 +1,803 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "aaffdcfa-ecd7-444b-8e36-e3cdc6490ad2", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Materialization for metric views is an [experimental](https://docs.databricks.com/aws/en/release-notes/release-types) feature. The idea is that you can create a materialized view on top of a metric view definition, and that will improve query performance. \n", + "\n", + "Check out more details about it here: https://docs.databricks.com/aws/en/metric-views/materialization" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9c2362d4-df39-4726-a68a-0879a54f74a0", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Define parameters\n", + "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "a7022d9a-9c8f-453e-8797-e4113877d641", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Note that the metric view definition below is basically the same definition that we applied for the creation of the metric view from script ./1_CreateMetricView.ipynb.\n", + "# The main difference lies on the \"materialization\" key, which is introduced in this notebook, and shows how you can materialize a metric view (either unaggregated or aggregated) in a schedule." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "23ad13dc-894b-4c3f-9b26-4390697ebb59", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "CREATE OR REPLACE VIEW ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships WITH METRICS LANGUAGE YAML AS \n", + "$$\n", + "version: 1.1\n", + "\n", + "source: ${CATALOG_NAME}.${SCHEMA_NAME}.fact_sales_normalized\n", + "\n", + "joins:\n", + " # Star join between fact table and dim_campaigns\n", + " - name: dim_campaigns\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_campaigns\n", + " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", + " # Snowflake joins from dim_campaigns to campaign start/end dates\n", + " joins:\n", + " - name: campaign_start_date\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", + " - name: campaign_end_date\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", + " \n", + " # Star join between fact table and dim_customers\n", + " - name: dim_customers\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_customers\n", + " \"on\": source.customer_sk = dim_customers.customer_sk\n", + " \n", + " # Star join between fact table and dim_dates\n", + " - name: dim_dates\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", + " \"on\": source.sales_date = dim_dates.full_date\n", + " \n", + " # Star join between fact table and dim_products\n", + " - name: dim_products\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_products\n", + " \"on\": source.product_sk = dim_products.product_sk\n", + " \n", + " # Star join between fact table and dim_salespersons\n", + " - name: dim_salespersons\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", + " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", + "\n", + " # Star join between fact table and dim_stores\n", + " - name: dim_stores\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_stores\n", + " \"on\": source.store_sk = dim_stores.store_sk\n", + " # Snowflake join from dim_stores to store_manager_salesperson\n", + " joins:\n", + " - name: store_manager_salesperson\n", + " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", + " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", + "\n", + "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", + "\n", + "dimensions:\n", + "\n", + " # Columns from fact table\n", + " - name: sales_date\n", + " expr: sales_date\n", + " comment: Sales Date\n", + " display_name: Sales Date\n", + " synonyms: ['date of sale']\n", + " - name: total_amount\n", + " expr: total_amount\n", + " comment: Sales amount\n", + " display_name: Sales amount\n", + " synonyms: ['total amount', 'sale amount']\n", + "\n", + " # Dimension columns from dim_customers\n", + " - name: first_name\n", + " expr: dim_customers.first_name\n", + " comment: Customer first name\n", + " display_name: First Name\n", + " synonyms: ['customer first', 'given name']\n", + " - name: last_name\n", + " expr: dim_customers.last_name\n", + " comment: Customer last name\n", + " display_name: Last Name\n", + " synonyms: ['customer last', 'surname']\n", + " - name: customer_segment\n", + " expr: dim_customers.customer_segment\n", + " comment: Customer segment\n", + " display_name: Customer Segment\n", + " synonyms: ['segment', 'customer type']\n", + " - name: customer_email\n", + " expr: dim_customers.email\n", + " comment: Customer email\n", + " display_name: Customer Email\n", + " synonyms: ['email', 'contact email']\n", + " - name: customer_residential_location\n", + " expr: dim_customers.residential_location\n", + " comment: Customer residential location\n", + " display_name: Customer Residential Location\n", + " synonyms: ['residence', 'home location']\n", + " # Calculated customer columns\n", + " - name: customer_name\n", + " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", + " comment: Customer name\n", + " display_name: Customer Name\n", + " synonyms: ['name', 'full name']\n", + "\n", + " # Dimension columns from dim_stores\n", + " - name: store_name\n", + " expr: dim_stores.store_name\n", + " comment: Store name\n", + " display_name: Store Name\n", + " synonyms: ['location name', 'retail name']\n", + " - name: store_type\n", + " expr: dim_stores.store_type\n", + " comment: Store type\n", + " display_name: Store Type\n", + " synonyms: ['type', 'retail type']\n", + " - name: store_location\n", + " expr: dim_stores.store_location\n", + " comment: Store location\n", + " display_name: Store Location\n", + " synonyms: ['location', 'address']\n", + "\n", + " # Dimension columns from dim_products\n", + " - name: product_name\n", + " expr: dim_products.product_name\n", + " comment: Product name\n", + " display_name: Product Name\n", + " synonyms: ['item name', 'sku name']\n", + " - name: product_category\n", + " expr: dim_products.category\n", + " comment: Product category\n", + " display_name: Product Category\n", + " synonyms: ['category', 'product type']\n", + " - name: product_brand\n", + " expr: dim_products.brand\n", + " comment: Product brand\n", + " display_name: Brand\n", + " synonyms: ['brand', 'manufacturer']\n", + " - name: product_origin_location\n", + " expr: dim_products.origin_location\n", + " comment: Product origin location\n", + " display_name: Origin Location\n", + " synonyms: ['origin', 'source location']\n", + "\n", + " # Dimension columns from dim_campaigns\n", + " - name: campaign_name\n", + " expr: dim_campaigns.campaign_name\n", + " comment: Campaign name\n", + " display_name: Campaign Name\n", + " synonyms: ['promotion name', 'marketing name']\n", + " - name: campaign_budget\n", + " expr: dim_campaigns.campaign_budget\n", + " comment: Campaign budget\n", + " display_name: Campaign Budget\n", + " synonyms: ['budget', 'promotion budget']\n", + "\n", + " # Dimension columns from dim_dates\n", + " - name: full_date\n", + " expr: dim_dates.full_date\n", + " comment: Full date\n", + " display_name: Full Date\n", + " synonyms: ['date', 'transaction date']\n", + " - name: year\n", + " expr: dim_dates.year\n", + " comment: Year\n", + " display_name: Year\n", + " synonyms: ['calendar year', 'fiscal year']\n", + " - name: month\n", + " expr: dim_dates.month\n", + " comment: Month\n", + " display_name: Month\n", + " synonyms: ['calendar month', 'fiscal month']\n", + " - name: day\n", + " expr: dim_dates.day\n", + " comment: Day\n", + " display_name: Day\n", + " synonyms: ['calendar day', 'date day']\n", + " - name: weekday\n", + " expr: dim_dates.weekday\n", + " comment: Weekday\n", + " display_name: Weekday\n", + " synonyms: ['day of week', 'weekday name']\n", + " - name: quarter\n", + " expr: dim_dates.quarter\n", + " comment: Quarter\n", + " display_name: Quarter\n", + " synonyms: ['fiscal quarter', 'calendar quarter']\n", + " # Calculated datetime columns\n", + " - name: week\n", + " expr: \"date_trunc('week', sales_date)\"\n", + " comment: Week of the sale\n", + " display_name: Week\n", + " format:\n", + " type: date\n", + " date_format: year_week\n", + " leading_zeros: false\n", + " synonyms: ['sales week', 'transaction week']\n", + " - name: dayOfWeek\n", + " expr: dayofweek(sales_date)\n", + " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", + " display_name: Day of Week\n", + " format:\n", + " type: number\n", + " synonyms: ['weekday number', 'day index']\n", + " - name: YearMonth\n", + " expr: \"date_trunc('month', sales_date)\"\n", + " comment: Year and month of the sale\n", + " display_name: Year Month\n", + " format:\n", + " type: date\n", + " date_format: locale_number_month\n", + " leading_zeros: false\n", + " synonyms: ['month', 'year and month']\n", + "\n", + " # Dimension columns from dim_salespersons\n", + " - name: salesperson_name\n", + " expr: dim_salespersons.salesperson_name\n", + " comment: Salesperson name\n", + " display_name: Salesperson Name\n", + " synonyms: ['rep name', 'employee name']\n", + " - name: salesperson_role\n", + " expr: dim_salespersons.salesperson_role\n", + " comment: Salesperson role\n", + " display_name: Salesperson Role\n", + " synonyms: ['role', 'job title']\n", + "\n", + "measures:\n", + " # Calculated measures\n", + " - name: sales_sum\n", + " expr: SUM(total_amount)\n", + " comment: Total sales amount\n", + " display_name: Total Sales\n", + " synonyms: ['revenue', 'total sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_avg\n", + " expr: AVG(total_amount)\n", + " comment: Average sales amount\n", + " display_name: Average Sales\n", + " synonyms: ['average revenue', 'mean sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_stddev\n", + " expr: STDDEV(total_amount)\n", + " comment: Standard deviation of sales amount\n", + " display_name: Sales Standard Deviation\n", + " synonyms: ['sales variability', 'sales stddev']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_median\n", + " expr: percentile(total_amount, 0.5)\n", + " comment: Median sales amount\n", + " display_name: Sales Median\n", + " synonyms: ['median revenue', 'median sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile1\n", + " expr: percentile(total_amount, 0.25)\n", + " comment: First quartile (Q1) of sales amount\n", + " display_name: Sales Quartile 1\n", + " synonyms: ['Q1 sales', 'first quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile2\n", + " expr: percentile(total_amount, 0.5)\n", + " comment: Second quartile (Q2/Median) of sales amount\n", + " display_name: Sales Quartile 2 (Median)\n", + " synonyms: ['Q2 sales', 'median']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile3\n", + " expr: percentile(total_amount, 0.75)\n", + " comment: Third quartile (Q3) of sales amount\n", + " display_name: Sales Quartile 3\n", + " synonyms: ['Q3 sales', 'third quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile4\n", + " expr: percentile(total_amount, 1.0)\n", + " comment: Fourth quartile (Q4/Max) of sales amount\n", + " display_name: Sales Quartile 4 (Max)\n", + " synonyms: ['Q4 sales', 'max sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_largest\n", + " expr: MAX(total_amount)\n", + " comment: Largest Sale\n", + " display_name: Largest Sale\n", + " synonyms: ['max sale', 'highest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_smallest\n", + " expr: MIN(total_amount)\n", + " comment: Smallest Sale\n", + " display_name: Smallest Sale\n", + " synonyms: ['min sale', 'lowest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_mode\n", + " expr: mode(total_amount)\n", + " comment: Mode of sales amount\n", + " display_name: Sales Mode\n", + " synonyms: ['most common sale', 'mode']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + "\n", + " # Window measures\n", + " - name: previous_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Previous Day Sales\n", + " display_name: Previous Day Sales\n", + " synonyms: ['last day sales', 'yesterday sales']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 1 day\n", + " semiadditive: last\n", + " - name: current_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Current Day Sales\n", + " display_name: Current Day Sales\n", + " synonyms: ['today sales']\n", + " window:\n", + " - order: sales_date\n", + " range: current\n", + " semiadditive: last\n", + " - name: day_over_day_growth\n", + " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", + "\n", + " - name: running_total_sales\n", + " expr: SUM(total_amount)\n", + " comment: Running Total Sales\n", + " display_name: Running Total Sales\n", + " synonyms: ['running sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + "\n", + " - name: ytd_sales\n", + " expr: SUM(total_amount)\n", + " comment: YTD Sales\n", + " display_name: YTD Sales\n", + " synonyms: ['year-to-date sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + " - order: year\n", + " range: current\n", + " semiadditive: last\n", + "\n", + " - name: t7d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 7 days\n", + " display_name: Customers last 7 days\n", + " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 7 day\n", + " semiadditive: last\n", + "\n", + " - name: t30d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 30 days\n", + " display_name: Customers last 30 days\n", + " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 30 day\n", + " semiadditive: last\n", + "\n", + "materialization:\n", + " schedule: every 1 hours\n", + " mode: relaxed\n", + "\n", + " materialized_views:\n", + " - name: baseline\n", + " type: unaggregated\n", + "\n", + " - name: store_lvl_aggregation\n", + " type: aggregated\n", + " dimensions:\n", + " - sales_date\n", + " - store_type\n", + " - store_name\n", + " measures:\n", + " - sales_sum\n", + " - sales_avg\n", + " - ytd_sales\n", + "\n", + " - name: product_lvl_aggregation\n", + " type: aggregated\n", + " dimensions:\n", + " - sales_date\n", + " - product_brand\n", + " - product_category\n", + " measures:\n", + " - sales_sum\n", + " - sales_avg\n", + " - ytd_sales\n", + " \n", + " - name: day_of_week_aggregation\n", + " type: aggregated\n", + " dimensions:\n", + " - dayOfWeek\n", + " measures:\n", + " - sales_sum\n", + " - sales_avg\n", + " - sales_stddev\n", + " - sales_quartile1\n", + " - sales_quartile2\n", + " - sales_quartile3\n", + " - sales_quartile4\n", + " - sales_largest\n", + " - sales_smallest\n", + "\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "4ae59ecf-2b57-4763-b0eb-0c13349ab7c4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "DESCRIBE EXTENDED ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "a191f22e-2e5b-4d0a-9fe3-bb0186d52e58", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "-- QUERY METRIC VIEW DIRECLTY\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "dcac9bae-2a84-471a-b1dd-76d6fbb5db00", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "-- QUERY MATERIALIZED METRIC VIEW\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "6bc68710-a09e-4238-9a88-d6a658968530", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Queries like the one below should run much faster, as the query engine will understand that it can use the materialized results!\n", + "\n", + "# To check if a query is using a materialized view, run EXPLAIN EXTENDED on your query to see the query plan. If the query is using materialized views, the leaf node includes __materialization_mat and the name of the materialization from the YAML file." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "4e43fede-1398-43b1-843f-bc33305dd6c9", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "%sql\n", + "\n", + "-- QUERY MATERIALIZED METRIC VIEW\n", + "EXPLAIN EXTENDED\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 5175179492167482, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "3_MaterializeMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "85e74c7a-766e-4e9e-a772-155cf1597384", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "de4765bb-0385-4c48-aeaf-8b41fdb96113", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data-warehousing/dbrx-metric-views/README.md b/data-warehousing/dbrx-metric-views/README.md new file mode 100644 index 0000000..08802c9 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/README.md @@ -0,0 +1,13 @@ +## Databricks Metric Views - Retail Store Dimensional Model (demo) + +dimensional model + +This is a demo on how you can use Metric Views in Databricks to create your semantic models directly in our platform. +This demo is using the [Retail Store Star Schema Dataset](https://www.kaggle.com/datasets/shrinivasv/retail-store-star-schema-dataset?select=fact_sales_denormalized.csv). + +Adding your semantic models directly in Databricks lets you benefit from using the Databricks compute for querying your data, despites also being integrated to the Unity Catalog, allowing for truly unified governance and optimal performance. + +For more info on Metric Views, make sure to also check our public-facing materials: +- [Docs - Unity Catalog metric views](https://docs.databricks.com/aws/en/metric-views/) +- [Video - Unity Catalog Metric Views Overview](https://www.databricks.com/resources/demos/videos/unity-catalog-metric-views-overview) +- [Video - Understanding Your Business With Unity Catalog Metric Views](https://www.databricks.com/resources/demos/videos/understanding-your-business-with-unity-catalog-metric-view) \ No newline at end of file diff --git a/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard.lvdash.json b/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard.lvdash.json new file mode 100644 index 0000000..0adbfb9 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard.lvdash.json @@ -0,0 +1,989 @@ +{ + "datasets": [ + { + "name": "1b4ef37c", + "displayName": "sales_relationships", + "asset_name": "CATALOG_NAME.SCHEMA_NAME.sales_relationships" + } + ], + "pages": [ + { + "name": "5abd0258", + "displayName": "Main", + "layout": [ + { + "widget": { + "name": "sales-by-store-type", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "store_name", + "expression": "`store_name`" + }, + { + "name": "sum(total_amount)", + "expression": "SUM(`total_amount`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 3, + "widgetType": "bar", + "encodings": { + "x": { + "fieldName": "store_name", + "scale": { + "type": "categorical", + "sort": { + "by": "y-reversed" + } + } + }, + "y": { + "fieldName": "sum(total_amount)", + "scale": { + "type": "quantitative" + } + } + }, + "frame": { + "title": "Sales by Store", + "showTitle": true + } + } + }, + "position": { + "x": 0, + "y": 1, + "width": 6, + "height": 6 + } + }, + { + "widget": { + "name": "product-categories-breakdown", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "sum(total_amount)", + "expression": "SUM(`total_amount`)" + }, + { + "name": "product_category", + "expression": "`product_category`" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 3, + "widgetType": "pie", + "encodings": { + "angle": { + "fieldName": "sum(total_amount)", + "scale": { + "type": "quantitative" + } + }, + "color": { + "fieldName": "product_category", + "scale": { + "type": "categorical" + } + }, + "label": { + "show": true + } + }, + "frame": { + "title": "Product Categories Breakdown", + "showTitle": true + } + } + }, + "position": { + "x": 0, + "y": 7, + "width": 3, + "height": 8 + } + }, + { + "widget": { + "name": "salesperson-performance", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "salesperson_name", + "expression": "`salesperson_name`" + }, + { + "name": "total_amount", + "expression": "`total_amount`" + } + ], + "disaggregated": true + } + } + ], + "spec": { + "version": 1, + "widgetType": "table", + "encodings": { + "columns": [ + { + "fieldName": "salesperson_name", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "type": "string", + "displayAs": "string", + "visible": true, + "order": 25, + "title": "salesperson_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "fieldName": "total_amount", + "numberFormat": "0.00", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "type": "float", + "displayAs": "number", + "visible": true, + "order": 27, + "title": "total_amount", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + } + ] + }, + "invisibleColumns": [ + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "sales_date", + "type": "datetime", + "displayAs": "datetime", + "order": 0, + "title": "sales_date", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "first_name", + "type": "string", + "displayAs": "string", + "order": 1, + "title": "first_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "last_name", + "type": "string", + "displayAs": "string", + "order": 2, + "title": "last_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_segment", + "type": "string", + "displayAs": "string", + "order": 3, + "title": "customer_segment", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_email", + "type": "string", + "displayAs": "string", + "order": 4, + "title": "customer_email", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_residential_location", + "type": "string", + "displayAs": "string", + "order": 5, + "title": "customer_residential_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_name", + "type": "string", + "displayAs": "string", + "order": 6, + "title": "customer_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_name", + "type": "string", + "displayAs": "string", + "order": 7, + "title": "store_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_type", + "type": "string", + "displayAs": "string", + "order": 8, + "title": "store_type", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_location", + "type": "string", + "displayAs": "string", + "order": 9, + "title": "store_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_name", + "type": "string", + "displayAs": "string", + "order": 10, + "title": "product_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_category", + "type": "string", + "displayAs": "string", + "order": 11, + "title": "product_category", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_brand", + "type": "string", + "displayAs": "string", + "order": 12, + "title": "product_brand", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_origin_location", + "type": "string", + "displayAs": "string", + "order": 13, + "title": "product_origin_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "campaign_name", + "type": "string", + "displayAs": "string", + "order": 14, + "title": "campaign_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "campaign_budget", + "type": "integer", + "displayAs": "number", + "order": 15, + "title": "campaign_budget", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "full_date", + "type": "date", + "displayAs": "datetime", + "order": 16, + "title": "full_date", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "year", + "type": "integer", + "displayAs": "number", + "order": 17, + "title": "year", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "month", + "type": "integer", + "displayAs": "number", + "order": 18, + "title": "month", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "day", + "type": "integer", + "displayAs": "number", + "order": 19, + "title": "day", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "weekday", + "type": "integer", + "displayAs": "number", + "order": 20, + "title": "weekday", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "quarter", + "type": "integer", + "displayAs": "number", + "order": 21, + "title": "quarter", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "week", + "type": "datetime", + "displayAs": "datetime", + "order": 22, + "title": "week", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "dayOfWeek", + "type": "integer", + "displayAs": "number", + "order": 23, + "title": "dayOfWeek", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "YearMonth", + "type": "datetime", + "displayAs": "datetime", + "order": 24, + "title": "YearMonth", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "salesperson_role", + "type": "string", + "displayAs": "string", + "order": 26, + "title": "salesperson_role", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + } + ], + "allowHTMLByDefault": false, + "itemsPerPage": 10, + "paginationSize": "default", + "condensed": true, + "withRowNumber": false, + "frame": { + "title": "Top 10 Salespersons", + "showTitle": true + } + } + }, + "position": { + "x": 3, + "y": 7, + "width": 3, + "height": 8 + } + }, + { + "widget": { + "name": "product-brand", + "queries": [ + { + "name": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_brand", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "product_brand", + "expression": "`product_brand`" + }, + { + "name": "product_brand_associativity", + "expression": "COUNT_IF(`associative_filter_predicate_group`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 2, + "widgetType": "filter-multi-select", + "encodings": { + "fields": [ + { + "fieldName": "product_brand", + "queryName": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_brand" + } + ] + }, + "frame": { + "showTitle": true, + "title": "Product Brand" + } + } + }, + "position": { + "x": 0, + "y": 0, + "width": 3, + "height": 1 + } + }, + { + "widget": { + "name": "product-category", + "queries": [ + { + "name": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_category", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "product_category", + "expression": "`product_category`" + }, + { + "name": "product_category_associativity", + "expression": "COUNT_IF(`associative_filter_predicate_group`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 2, + "widgetType": "filter-single-select", + "encodings": { + "fields": [ + { + "fieldName": "product_category", + "queryName": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_category" + } + ] + }, + "frame": { + "showTitle": true, + "title": "Product Category" + } + } + }, + "position": { + "x": 3, + "y": 0, + "width": 3, + "height": 1 + } + } + ], + "pageType": "PAGE_TYPE_CANVAS" + } + ], + "uiSettings": { + "theme": { + "widgetHeaderAlignment": "ALIGNMENT_UNSPECIFIED" + }, + "applyModeEnabled": false + } +} diff --git a/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard_parameterized.lvdash.json b/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard_parameterized.lvdash.json new file mode 100644 index 0000000..a0befe8 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/dashboard_and_genie/dashboard_parameterized.lvdash.json @@ -0,0 +1,989 @@ +{ + "datasets": [ + { + "name": "1b4ef37c", + "displayName": "sales_relationships", + "asset_name": "pedroz_catalog.metric_views_schema.sales_relationships" + } + ], + "pages": [ + { + "name": "5abd0258", + "displayName": "Main", + "layout": [ + { + "widget": { + "name": "sales-by-store-type", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "store_name", + "expression": "`store_name`" + }, + { + "name": "sum(total_amount)", + "expression": "SUM(`total_amount`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 3, + "widgetType": "bar", + "encodings": { + "x": { + "fieldName": "store_name", + "scale": { + "type": "categorical", + "sort": { + "by": "y-reversed" + } + } + }, + "y": { + "fieldName": "sum(total_amount)", + "scale": { + "type": "quantitative" + } + } + }, + "frame": { + "title": "Sales by Store", + "showTitle": true + } + } + }, + "position": { + "x": 0, + "y": 1, + "width": 6, + "height": 6 + } + }, + { + "widget": { + "name": "product-categories-breakdown", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "sum(total_amount)", + "expression": "SUM(`total_amount`)" + }, + { + "name": "product_category", + "expression": "`product_category`" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 3, + "widgetType": "pie", + "encodings": { + "angle": { + "fieldName": "sum(total_amount)", + "scale": { + "type": "quantitative" + } + }, + "color": { + "fieldName": "product_category", + "scale": { + "type": "categorical" + } + }, + "label": { + "show": true + } + }, + "frame": { + "title": "Product Categories Breakdown", + "showTitle": true + } + } + }, + "position": { + "x": 0, + "y": 7, + "width": 3, + "height": 8 + } + }, + { + "widget": { + "name": "salesperson-performance", + "queries": [ + { + "name": "main_query", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "salesperson_name", + "expression": "`salesperson_name`" + }, + { + "name": "total_amount", + "expression": "`total_amount`" + } + ], + "disaggregated": true + } + } + ], + "spec": { + "version": 1, + "widgetType": "table", + "encodings": { + "columns": [ + { + "fieldName": "salesperson_name", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "type": "string", + "displayAs": "string", + "visible": true, + "order": 25, + "title": "salesperson_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "fieldName": "total_amount", + "numberFormat": "0.00", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "type": "float", + "displayAs": "number", + "visible": true, + "order": 27, + "title": "total_amount", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + } + ] + }, + "invisibleColumns": [ + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "sales_date", + "type": "datetime", + "displayAs": "datetime", + "order": 0, + "title": "sales_date", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "first_name", + "type": "string", + "displayAs": "string", + "order": 1, + "title": "first_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "last_name", + "type": "string", + "displayAs": "string", + "order": 2, + "title": "last_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_segment", + "type": "string", + "displayAs": "string", + "order": 3, + "title": "customer_segment", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_email", + "type": "string", + "displayAs": "string", + "order": 4, + "title": "customer_email", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_residential_location", + "type": "string", + "displayAs": "string", + "order": 5, + "title": "customer_residential_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "customer_name", + "type": "string", + "displayAs": "string", + "order": 6, + "title": "customer_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_name", + "type": "string", + "displayAs": "string", + "order": 7, + "title": "store_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_type", + "type": "string", + "displayAs": "string", + "order": 8, + "title": "store_type", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "store_location", + "type": "string", + "displayAs": "string", + "order": 9, + "title": "store_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_name", + "type": "string", + "displayAs": "string", + "order": 10, + "title": "product_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_category", + "type": "string", + "displayAs": "string", + "order": 11, + "title": "product_category", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_brand", + "type": "string", + "displayAs": "string", + "order": 12, + "title": "product_brand", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "product_origin_location", + "type": "string", + "displayAs": "string", + "order": 13, + "title": "product_origin_location", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "campaign_name", + "type": "string", + "displayAs": "string", + "order": 14, + "title": "campaign_name", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "campaign_budget", + "type": "integer", + "displayAs": "number", + "order": 15, + "title": "campaign_budget", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "full_date", + "type": "date", + "displayAs": "datetime", + "order": 16, + "title": "full_date", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "year", + "type": "integer", + "displayAs": "number", + "order": 17, + "title": "year", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "month", + "type": "integer", + "displayAs": "number", + "order": 18, + "title": "month", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "day", + "type": "integer", + "displayAs": "number", + "order": 19, + "title": "day", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "weekday", + "type": "integer", + "displayAs": "number", + "order": 20, + "title": "weekday", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "quarter", + "type": "integer", + "displayAs": "number", + "order": 21, + "title": "quarter", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "week", + "type": "datetime", + "displayAs": "datetime", + "order": 22, + "title": "week", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "numberFormat": "0", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "dayOfWeek", + "type": "integer", + "displayAs": "number", + "order": 23, + "title": "dayOfWeek", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "dateTimeFormat": "DD/MM/YYYY HH:mm:ss.SSS", + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "YearMonth", + "type": "datetime", + "displayAs": "datetime", + "order": 24, + "title": "YearMonth", + "allowSearch": false, + "alignContent": "right", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + }, + { + "booleanValues": [ + "false", + "true" + ], + "imageUrlTemplate": "{{ @ }}", + "imageTitleTemplate": "{{ @ }}", + "imageWidth": "", + "imageHeight": "", + "linkUrlTemplate": "{{ @ }}", + "linkTextTemplate": "{{ @ }}", + "linkTitleTemplate": "{{ @ }}", + "linkOpenInNewTab": true, + "name": "salesperson_role", + "type": "string", + "displayAs": "string", + "order": 26, + "title": "salesperson_role", + "allowSearch": false, + "alignContent": "left", + "allowHTML": false, + "highlightLinks": false, + "useMonospaceFont": false, + "preserveWhitespace": false + } + ], + "allowHTMLByDefault": false, + "itemsPerPage": 10, + "paginationSize": "default", + "condensed": true, + "withRowNumber": false, + "frame": { + "title": "Top 10 Salespersons", + "showTitle": true + } + } + }, + "position": { + "x": 3, + "y": 7, + "width": 3, + "height": 8 + } + }, + { + "widget": { + "name": "product-brand", + "queries": [ + { + "name": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_brand", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "product_brand", + "expression": "`product_brand`" + }, + { + "name": "product_brand_associativity", + "expression": "COUNT_IF(`associative_filter_predicate_group`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 2, + "widgetType": "filter-multi-select", + "encodings": { + "fields": [ + { + "fieldName": "product_brand", + "queryName": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_brand" + } + ] + }, + "frame": { + "showTitle": true, + "title": "Product Brand" + } + } + }, + "position": { + "x": 0, + "y": 0, + "width": 3, + "height": 1 + } + }, + { + "widget": { + "name": "product-category", + "queries": [ + { + "name": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_category", + "query": { + "datasetName": "1b4ef37c", + "fields": [ + { + "name": "product_category", + "expression": "`product_category`" + }, + { + "name": "product_category_associativity", + "expression": "COUNT_IF(`associative_filter_predicate_group`)" + } + ], + "disaggregated": false + } + } + ], + "spec": { + "version": 2, + "widgetType": "filter-single-select", + "encodings": { + "fields": [ + { + "fieldName": "product_category", + "queryName": "dashboards/01f0e0376f8d1dceb14d5659f8f1e298/datasets/01f0e0377c9a18b7a1625c6032cf7d3a_product_category" + } + ] + }, + "frame": { + "showTitle": true, + "title": "Product Category" + } + } + }, + "position": { + "x": 3, + "y": 0, + "width": 3, + "height": 1 + } + } + ], + "pageType": "PAGE_TYPE_CANVAS" + } + ], + "uiSettings": { + "theme": { + "widgetHeaderAlignment": "ALIGNMENT_UNSPECIFIED" + }, + "applyModeEnabled": false + } +} diff --git a/data-warehousing/dbrx-metric-views/dashboard_and_genie/genie_space.json b/data-warehousing/dbrx-metric-views/dashboard_and_genie/genie_space.json new file mode 100644 index 0000000..7145c20 --- /dev/null +++ b/data-warehousing/dbrx-metric-views/dashboard_and_genie/genie_space.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "data_sources": { + "metric_views": [ + { + "identifier": "CATALOG_NAME.SCHEMA_NAME.sales_relationships", + "column_configs": [ + { + "column_name": "YearMonth", + "get_example_values": true + }, + { + "column_name": "campaign_budget", + "get_example_values": true + }, + { + "column_name": "campaign_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "current_day_sales" + }, + { + "column_name": "customer_email", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "customer_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "customer_residential_location", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "customer_segment", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "day", + "get_example_values": true + }, + { + "column_name": "dayOfWeek", + "get_example_values": true + }, + { + "column_name": "day_over_day_growth" + }, + { + "column_name": "first_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "full_date", + "get_example_values": true + }, + { + "column_name": "last_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "month", + "get_example_values": true + }, + { + "column_name": "previous_day_sales" + }, + { + "column_name": "product_brand", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "product_category", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "product_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "product_origin_location", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "quarter", + "get_example_values": true + }, + { + "column_name": "running_total_sales" + }, + { + "column_name": "sales_avg" + }, + { + "column_name": "sales_date", + "get_example_values": true + }, + { + "column_name": "sales_largest" + }, + { + "column_name": "sales_median" + }, + { + "column_name": "sales_mode" + }, + { + "column_name": "sales_quartile1" + }, + { + "column_name": "sales_quartile2" + }, + { + "column_name": "sales_quartile3" + }, + { + "column_name": "sales_quartile4" + }, + { + "column_name": "sales_smallest" + }, + { + "column_name": "sales_stddev" + }, + { + "column_name": "sales_sum" + }, + { + "column_name": "salesperson_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "salesperson_role", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "store_location", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "store_name", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "store_type", + "get_example_values": true, + "build_value_dictionary": true + }, + { + "column_name": "t30d_customers" + }, + { + "column_name": "t7d_customers" + }, + { + "column_name": "total_amount", + "get_example_values": true + }, + { + "column_name": "week", + "get_example_values": true + }, + { + "column_name": "weekday", + "get_example_values": true + }, + { + "column_name": "year", + "get_example_values": true + }, + { + "column_name": "ytd_sales" + } + ] + } + ] + }, + "instructions": { + "text_instructions": [ + { + "id": "01f0e27a754a1a85aa25fdb8f17c51a6", + "content": [ + "* Only display currencies in US Dollars." + ] + } + ], + "example_question_sqls": [ + { + "id": "01f0e034f31e1e5f95d6589791837873", + "question": [ + "What are the sales statistics by day of the week?" + ], + "sql": [ + "-- This is just a simple query example, demonstrating that you can query Metric Views just like any other view!\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + }, + { + "id": "01f0e034f32015eda08110633923590b", + "question": [ + "What are the sales statistics by year and month?" + ], + "sql": [ + "SELECT\n", + " YearMonth,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`) AS `sales_avg`,\n", + " MEASURE(`sales_stddev`) AS `sales_stddev`,\n", + " MEASURE(`sales_median`) AS `sales_median`,\n", + " MEASURE(`sales_quartile1`) AS `sales_quartile1`,\n", + " MEASURE(`sales_quartile2`) AS `sales_quartile2`,\n", + " MEASURE(`sales_quartile3`) AS `sales_quartile3`,\n", + " MEASURE(`sales_quartile4`) AS `sales_quartile4`,\n", + " MEASURE(`sales_largest`) AS `sales_largest`,\n", + " MEASURE(`sales_smallest`) AS `sales_smallest`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL" + ] + }, + { + "id": "01f0e034f3211da6b78032d63bbb8411", + "question": [ + "What are the total sales and percentage of relevance of sales by year and month?" + ], + "sql": [ + "SELECT\n", + " YearMonth,\n", + " MEASURE(`total_sales`) AS `total_sales`, \n", + " MEASURE(`pct_of_relevance_of_sales`) AS `pct_of_relevance_of_sales`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships GROUP BY ALL" + ] + }, + { + "id": "01f0e034f32313bc89ccc7adcb6b3c66", + "question": [ + "What are the sales statistics by day of the week?" + ], + "sql": [ + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`) AS `sales_avg`,\n", + " MEASURE(`sales_stddev`) AS `sales_stddev`,\n", + " MEASURE(`sales_median`) AS `sales_median`,\n", + " MEASURE(`sales_quartile1`) AS `sales_quartile1`,\n", + " MEASURE(`sales_quartile2`) AS `sales_quartile2`,\n", + " MEASURE(`sales_quartile3`) AS `sales_quartile3`,\n", + " MEASURE(`sales_quartile4`) AS `sales_quartile4`,\n", + " MEASURE(`sales_largest`) AS `sales_largest`,\n", + " MEASURE(`sales_smallest`) AS `sales_smallest`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL" + ] + }, + { + "id": "01f0e034f3241beea1b46f27a8cb57da", + "question": [ + "What are the total sales and percentage of relevance of sales overall?" + ], + "sql": [ + "SELECT MEASURE(`total_sales`) AS `total_sales`, MEASURE(`pct_of_relevance_of_sales`) AS `pct_of_relevance_of_sales`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships" + ] + }, + { + "id": "01f0e034f3261044846c08976a7ce277", + "question": [ + "What are the sales sum, average, stddev, and median by year and month?" + ], + "sql": [ + "SELECT\n", + " YearMonth,\n", + " MEASURE(`sales_sum`) AS `total_sales`, \n", + " MEASURE(`sales_avg`) AS `avg_sales`, \n", + " MEASURE(`sales_stddev`) AS `stddev_sales`, \n", + " MEASURE(`sales_median`) AS `pct_of_relevance_of_sales`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships GROUP BY ALL" + ] + }, + { + "id": "01f0e034f327148d9cedb3741dc1a8bb", + "question": [ + "What are the sales statistics by year and month?" + ], + "sql": [ + "SELECT\n", + " YearMonth,\n", + " MEASURE(`sales_sum`) AS `sales_sum`,\n", + " MEASURE(`sales_avg`) AS `sales_avg`,\n", + " MEASURE(`sales_stddev`) AS `sales_stddev`,\n", + " MEASURE(`sales_median`) AS `sales_median`,\n", + " MEASURE(`sales_quartile1`) AS `sales_quartile1`,\n", + " MEASURE(`sales_quartile2`) AS `sales_quartile2`,\n", + " MEASURE(`sales_quartile3`) AS `sales_quartile3`,\n", + " MEASURE(`sales_quartile4`) AS `sales_quartile4`,\n", + " MEASURE(`sales_largest`) AS `sales_largest`,\n", + " MEASURE(`sales_smallest`) AS `sales_smallest`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL" + ] + }, + { + "id": "01f0e034f32819f0996e63738565d3cb", + "question": [ + "What are the sales statistics by day of the week?" + ], + "sql": [ + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`) AS `sales_avg`,\n", + " MEASURE(`sales_stddev`) AS `sales_stddev`,\n", + " MEASURE(`sales_median`) AS `sales_median`,\n", + " MEASURE(`sales_quartile1`) AS `sales_quartile1`,\n", + " MEASURE(`sales_quartile2`) AS `sales_quartile2`,\n", + " MEASURE(`sales_quartile3`) AS `sales_quartile3`,\n", + " MEASURE(`sales_quartile4`) AS `sales_quartile4`,\n", + " MEASURE(`sales_largest`) AS `sales_largest`,\n", + " MEASURE(`sales_smallest`) AS `sales_smallest`\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + }, + { + "id": "01f0e034f3291e7d975ad11ee97a866b", + "question": [ + "What are the sales statistics by day of the week?" + ], + "sql": [ + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_median`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM CATALOG_NAME.SCHEMA_NAME.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek" + ] + } + ] + } +} diff --git a/data-warehousing/dbrx-metric-views/figures/dimensional_model.png b/data-warehousing/dbrx-metric-views/figures/dimensional_model.png new file mode 100644 index 0000000000000000000000000000000000000000..606b696938eba955abe91094d2167aa8452111f5 GIT binary patch literal 355159 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

m;%-HyEsX70y#{Qj@=F!UKCo zfXig!QHg$!=r&vyYOo$JCngCrTO(DSW}D|{RP!1i?O|357nd4VIHwt^l(pJOsZxlO zZvfHIt9Law`-JH%RP~R9KVddx^Kv(nU;Egz@YaxE`gj}D-i7{sG$kLr#iE+V)kvhK zjqY+3JE0eLz&hh}HYcu(k2wKf*=KQ08{VLS_iBFh%2EuqAUT0?wA!UBipg(R%I;RT z_)QmnQ7i0h28pfc1z~ zp^7Z-QwC->vuV>SrQCm`$498JT2z~ugZxOh`N2N)#=1?-yos!sA!ff9$rp-$-Bak- z+eeoso~PXC_LT!rgLSy}@fC|}YAts33Qk(K#u@#MMPm;_RC+xsF~|l!7YEa+SYQ5< zb`n05R3FdjRYXiz%~O_ADi$fV&dsZ|j~`M7OSCI!lyKfP>2%ZMWp=I#u}MQq(-RHGh8L+q-33R z>8!7tof+4vNzU_=2kVB=g8Oo`_GlmyT$)A$`^hh*&|i%kJX&95SE|m(eS0Q&K&{_+Yos@FKpEYmgDB|1RdV66+^ zCsim|egd;UE8Zv~lA`lQ4iyHz{7J-itaGy9t^H)!!cc+80CHF{qjnc}92bpST0BEF z*^st0-+8_pe~@&I=rf-M0wid1cEm4CeHyIy1i=y&5-BP;6(mobUl2WBd^?(B{rf~< zr(o!{2B*}ss`FkJi>(h%$VYi#{WVi4AWEB2tp0mU#RO8 zKDbO+UWoEfo)dVg4+8LskaNW5h`6q;a7~*?NFb)6?{*=q5?LU03)!y5`qdCP){g5- zy$cUu%yu|G9_CbqV9bXkSIZwlO%tKlkf|JM#N%$@_PHT##e`^D^2BTWHus*!J2nF&rxgP^f#7!HgUw6SsexO=; z37j@y(NnE8O2J+cJ0$68$@GyY7>)bWdia}gK5in)1V~WCqCv{`snC#i&y@_hgOBPuM%pS-s1Q?>9f^)zIDfC>Lw(AEz z#3ml;Ni8|H=PD?`vTO(;p%)Lj`L>{CHCv{@MllK^uz5b5dT-$8iDglbvMTKhWkXwX zZ~*hO8_~@h0(%X&u8EIJ2+N#)jCb>rP#}i?Pn(RZdFoLkO%-6w9Pr;>CfLp|*bcI9 zEXm0p6G$=~=^*0@zDA-b!C>~A(72fVmK$0TR>mSDL>Sv$#D|D**Z`l!lv?z~3v0G6 z{T=V?OKMK@Ge_Y8{Wvyj<8tG;2fU}W{4~aTkXqzzJOA{e(84QpxgOq2YO-u%SxI1z zhGZrp*JY*QNOEPt8mN~STISNQ5^Dm6kf~V(FfWvYpJ=icYe%iLC16NN5ZwNxGgUrV zDI8#Eu>2bODjVOX2i4yKCe4Y&Xn*b9%GsnPM+ggrfXvlO4x0_ldYVv#rNAMQB(p*`ECg6<)sK=eqX6@*E3k-Z zz@=DP+|`JKabfUmxvn8zF#P&+uXD=rn2D6Asu#Vm<>By!e8Dq~niyCnG=15Eae4#+ z6RHwH5^?%d8$60)(XWzoP9rqvanSVym>|DEQNu-X;6m_!xE}zV=jtDN@I^HqpoA;g zEAi3jx7fi<6^#tBh41%X(y2?8EAAe{k;AkVF#bDIFf-hS8o$Hg5@N^UWAxC7oO;8{ zqvO@MG>WGzYyvO-*@UnVt}MP_&V ztF9}1uQtv^MNutwX~6lqiw-YG{TU@A7mhrl&Z>Jb(p-iTpB0&|_wkkWAR^v*Al*k^ z5$QBbUBgl5Z&Ed)uL0$`{z49e{`k!Ivr(4gDAbTFV$m(c$=AV1vpNO>DXtJ8Xq85m zS?&YO!9)XrOAQ@~3b=8LejM_em&N-#teo8f3%3!fV-|cNL=)ZFA5WL>XejM1!B>PG@5t2-Is!D0-lqkE@hmB4%EAKBiPq(BoZ5aj>Cv{ze7q*zzR3p<7K1lK(l7gy!b*i^8r1>$UZnUhEfOI77^)wGXe zi0=_KEx6a7B*_!78G$&w;>G#O`T7$v#0)yI)F91~xPs%D3AjXwl3|fokR0Z4>+VA} zAyGrB<+^yKSSQO4 zgE@^8_bk2p!zm2%TMyVAjXhLZyT;Edd*d!=K1&ya*NUw#36)NvLm%S4pKo-VW_gHw zs5+l+DH@P!Z7c#t!$l2N6BaL#`lNJqNjm0HN-77xIDZ=6qZLJx+)eRil|UYW#~EVZ zR~nPzgIOuko0_+mIYG_@e+{TX>Sq?Q;B%DQ`<%!pzf9g1Y zBWAi`G1>M0CkK<2Zv(^?)M0poSF_ATZHlkV=o*rMiuU5Kmwh0&iOPusqsk+%;K?%n zXaa1a;g@6u+}b^1+*$_ujA|Mw5i&w_4nz`jjjJkj{)i-84&5I#klkKs!Pn~2Yotq) zUEtwvKCX*A((z6cxSdxexv9KKG34h6YKaoqj4VO@+uo*fdzWfd^>h@P(25(J194A& zANzbaSDU!9zv z&-WSW?q(6Sa$P>Gj0b8E2AeWBjp3?5ItQXnKrwpmL`ZgL-Z6Q@WMfS9PRxx&5dY09 zOF5Ri@p&txzIi6kE#GK+OR8n`153J^FDW8yV)qiVu%*0LJGoPZPx}lr+SeULU9{q| zt*+z~E&9&W_;f#Y-OgnG6spMF`pQGg_= z91VN=-knY*3NUBm)_51H;$|*s9g4y^W6+CwZx7a2SX|TVuds;g1n64tkM&D0$a6js zs^0-G1EQ_~V#co!F~cpqVl6TF80qUiZf|w3<2 zu5!9qc{ke`Sw`9NA&9ThNEwkkDTf;z2U{ZCsbd#00i~LEATts7D^Fw9bVF*w`+OVL z-Fe1USDqL|M-VD4sO{>==NiU2xoy0lH!nEzM<7*}l*-u~ma=qByKfC^^QzqP60wYbSyr#}TzZJMu_iE)3O%a4^Ho6kBmz3jhO_?W)lqxNrCN@!9Y78uIwEV80NTDlQ$00ZNvTmN@=9STFU3qChrb=+HrX`g z(u|{DTWH*2O)t)Y`PVrO7aiaUc6)M#2v|n>WvR=bXQCT4U+F0O;#MZ24eXz)HY{4* z?pF^AC2^72Lnp+E0w~Nxu9B<}bD)#)KCe(13kX={@;chMwvI0a;Oc`aVQe#zs`<(- z%EKe3jRQe{h(Ku7)l55q!0GAfphVY!?B&l3QafXY zCacdEi+_=(fbdw4D@t=}@(4{W$cp>$I`uQAd+|-DX6zs^)zs&dgn_Nue&QaDv^0(;8a_4*HjJ@Ub__DZ!rnI!N5H(jBg50$nhTk&q`_1%+t)!3BBfI?L8t~cT6H=dH+7pgDNqhK)VL1tqK>d=CqfN=>>~oR;7^JzjAfX_q%! znvm?R8rJT`lQ==fLK9J~Y3;e?IuMohp-L_N_~HFKw1qNVZOp&C-mXU(n0P`=^rAj2 zoUB}b{B#VZD5LGM_EIhJIMcf@oHsfDRK*O}mu(|VgI11dm)i)J9WQ2*1;%alABlA2 z6~x{j#tUPiQAccE&WzgK1A(D_vRqTc4A$gS;axj2;Rf8ir6a|A+})tcI5V=@rR7?S zOPWZ|S=F%1a~*7~h+m@o!7{dvYqF`EtzLpvt~V|ow!H9g+1;tODyn`RiW`S;bFWV- z3WNh6khaUb9fCxZV+2FLJ*yROj=sR@+IP1QaOi3wVu}f~yyG3#4lymW&RfP(MWp8v z_JeE?^rb8hPt#rp_pLj({g{JQx*-6UxKoJ?q<`y4gA|ST$ z$rxi}^EL)DQ-94(oO#~clJJlcONk1vtZ#oqp94?v_>6j`#Hv+^mkgT}Fo0w5V{+?L zYP*>R<^XLAu%y}~iTi{v-r15!OhF0C7?t?J&$k;*$5boOPy#K&o&uY)_M2QrX zWoun=OqQSOx-~Rr>g;J0>cZBjS73KwIE+>>o84aus|tzlcS&pWMamwxp#t1DNh`w+ z7AOP>-ZahiN~4%OjzLR3sU4`>2--|M{Wt+QSm6Nnt9{@;TUZaZFNJd(zPuU{JyLZZ zFq_Ir2?(0%Q&FKf$O97QvUnQt2M_c$b!i|e5kl17-Ft(A-e6+7Q$F*g4t;hRihXXq zv-MM0o8fc(2HgapcNluKK(;Ux;rZti0SpKo_a^CIbS{B19}Nq*^6jr<(B}v2h|pV1O#BxBzW5Qy53S zDMpOj-mNBEoKIT$ca3WkWZcE|=o?jlYDSREOelq*gPr55)V3Is-+r}?AtCf4>8ZO29X6vWe8FLkO^CkgereM|h4an`_{ zZQ@&``?vZHJr8dPWCd&TmdU$)*1b#HaW-|c+VEaoE;-2FWn2OJ{qY*(Dtb$!8Tc{9 zWU+th7}Lw!3^czhI_tJt5W$WhNj{VWu!x_BFbAXeIA@H#N=Yk~;VQvHnQB{8bNf8D zLyX=FyJRwA=;4j^$=J??+dAXG2}WD%Ut-}WZZ?Ci`}rNhGV$7i z(5u8ekkMdVSxQI*r}NGhcdA0KS8R8Kk;&k#PrF-bEtz~xzT)Eq*5;5Zh#N|P=ky+pdS1PdTF zQUeHyf=Os0h5#X?-F;9;-|~I;ciZ{H0?9f1?0wE!Yp?Y@&r0dE#L}~l{vhCJH@1PZ zb?VEMH_yqp1NDxMv_^l5g*ZP2!4lTqA<*{hUhdUpaKXgz568gdWh+T<4lC+#%iBl4 zc%UOnL6TG8p%wYChURE%Q{&3IJR!1R4gBa|90GU^;^eLW`UpZwZ)Qz)(c-~oPRC`1 zP(mbK7Kw|=W*8+D|5ZFy z#6A%uAfUB!Kc9J5Qo;sAG8e=m2Ft+^Iui2}wbaDJKR)-u5=ie5i6yZ{(b+*$%HUU- za@gL^4+NY>bM|_42=jesy=;sc>q8Ol< z$zN|$ewJpF<$mIF;jmwU!Dv!EnJ$t2;gehc5?^zo)8GJ&2tjR~8}`EUAWqM{W&bzB zC@y*$&bhB~3RjLu`v0q7gPvHXubg~08_DFgmKfG3>t9*P8(IEqf;q7={;0MUQS zgc{a+zlt&-0j+bb*AFK4_V!gnhUz2Ytcd@gNa#^(StxJXTh1t`ed` zwq0PRp{kD(#-AyxwNntEcMYQ!_SCtNw-fM1%L?8 z4hsv@`oxxWRL@nP&+DEchR;8VI=v<&a8Uy?;Hvhl-ywF-5@~w}l*0!8C44=SsZX!# zlmOo9DDRzfXNR?f^-ltCyd|e1JxTOC{V;e`^wrN+7<~SZoQ=1tz)@>~tS>NrZR>O< zx)Ka8KsoO{ydm3av2a~Tr0Xz37 z>9cbM7rG5#2c`NytxYXBf(W|p+0&j6Q%?L=p)w8k&2lF=@xhc|7907I5c9|P@?d3i zhl9O+3Z;C`-!5BmGm zKa|C9e=6$w*|2{5LxH$|IFjG~Sm%GLALsv1bx@NpB+743&?fc8SbqCc$K?O#!~N{j zzn)gqKdk;*^c@5>K{->U{RXzlT`miG7R*BASG@D*Pe&<`3s!yFCFJ>+%jd>xsqX%T zhOw@a**0uona3JF2OeKf?F^bT+poRj6DmQcYjm1M0Al4@C>%T%?Ejj|Hc^x0^Q+g! zFEK+>fuaJi)DfRu)YsEF?!02Q+dO0=9uJm)|JP@<}U%z*% zNIp+h478EUQkVbVqmUZWgALbqCC$v=!h%;b?z5cu*J}tk?(?V<^BC{K?%m!$sR+&@ z@ej@(eCpyUCC+`p z-sXFiZSJuhpGbqNJbFq+`PTk>o~S?WzcWMMaCA2PhSBR!CVA66aDHUsPy$iWh2uCB zWE_a>*pxc7c_e)TsUXIBsSOPLrmF$zrho@T{`Ufp_Uh=vk|9OVU|@WY@VRe+5hiNR zF9)AAe0@_Q{Np*QN!Hk(o9PoMEw#Cmgv@AUaKLA2=uc@C&i!7AtD|2$$nJONw@d7& zvkvu02*hV04OqxOFr96GTv=h!`tT~9b^A5#kpNhAFoE;_-)KNY8tTPt?OL?t3{4CB zWM#{n*Ly7^>sB;>B|1Mc1tT?E1~eroPr-6t*i7L>wtgky2*e?q4dch0g9LWkVD2Qh zCVoKfjN2@c2~Do)O`_h;PcXr9#QE5U5u$;+J|J*&b!j57fOd=}zBT()2DFI)P=k}0 zx&JGh|9>Mag|h(bw{6{m#vm>?<6n`A;0KA#mq}04&VOYoZ4!0BjeaK(r<-3T)(y1_ z0z2UJ|Fsit3;KpGcs@aoRj$FJ8Z#hHG32-{)+p@w;G#5wBW-;_x z$5AMyQ~UeZSGd+OaeNO*aE=9fyh<*S;D!4ey_!ggNaSD+yWtYYkdX*Ce%3C}W20zl z&q3)>S`7+T&znIay@-I|F`(k=@8D8*8l<4?i&7LUXnXW+C3ROHev&HZA7_21r4Qqhu%2jxNkCCChx zef1t^w^~;(1HMP1v;k+FD;F0E%CEX*)lpC62vJ^*axlG3-~1Vqp^l| z(e8eOP*isKVU-88Bdp?s{&}XfV~sd?=w-8nW6bQoq~=2*6OL3ZFHeDpOm8Bss|O=+ zTj|TKL}KN?iY}%u^lHw%n#eb|9%am*?{TK?g?m3tA)QPQdSLuD%Xv`|A}KQUywB!qlu73F`5!a#6Y)f4}5ch!GWHtphi5rzTx zK-479m!R#j=da>&aEA|eI@t4bZhP8yf6zkCtJUe4P z!wtYoSA4JFH|yPs1-IZexd4(_a#18l$+YPK9>-8bTU(Es?tAXisIPTfKY8`68gu@bjE2In&MF7?0c!TS3{mg+pemsZ!={{ZNW~5!PYE5 z4c2d|Y)967S8IBrT+GJ%KB}~Ow=X6C{^Phgb-Yfw{efeJ{Uf7o9TTs>z4Ae2irKC$A#h5DWz7BA}mt<4sA_!HMd=t|GS!#w0|{$)>{~hu$Ww~NF^WH z<<{Th^5fuM1Z#eG`=6_)bJx2C>)7faIK)_s+9vcwC?HKOi`x!#1$HTikg-$4X3tHI zFx|AOrRMJm_Iv7&nl$s45PW9ejAuQ-vbLbZBl8C{ zvM7SL&j@KZn&!jMg8=o9f)U($QkTW=RHHMdOyesDx*g_Lnm)in6G4atI4S|f$X}Fg zcbi}7Bpiy73u$t+_Cy9hY9W>$EqeZ%?sC;UMQ-%cZfz74EmgM8&P|+$OgXSmRUq#G8*I#m$Ov zP*!AO{pa2=&8v#GsawKEEtaZ4^%@qx_GgXt`SkqoNWl2HCB}4Q5{zqYHq4L5w%xw8 zZ4{wMlK|?zp!Y^p288K?pnMSZ5OTv{7@}I%$q#PHo=-V`w(dn4b@%74HR8}Pj6Tlo_ES} za;W*KkWi&lpai49QJj~In%QC*S#$&E?Le&<-#Es1xlvw=&>%nGg@ms^y8`Y+F6OSc z{h+FR#g&5f;-rPs$xi67+oyHUOWSs{&u~86l^`BIJk*;(#>lOW0-6m1AKD5Sml1?* z9xJ^2>_wvUTB~+W@RlKeeh2qA~%c*?DEXifMj2czdZcZ8h{X-qAQv1Rt%jV z9`k>GM4^P~nS=Eum5yDyv?HlN0mo^`oE|IVU%BJlx9?}F3KIRW1xfVT;dRA0B#Cr# zdlp72C{tN>;{6=jo@kbCoZ#z;YcBA=x2z`5?PE^gW1xIGom>6KB52Hfy?z!j>4YGj zEe>OxJ^~zrFEIN$HT7$iL*VxPmi)t!C(qO_(d`x>^YT70BfaPG-PykvDod!(Ek2yd z7y%Z8Le|_>CsukY8Fo-_{1RcNOy~rv!`suRCwC27Xb6NDno7U3cEK)&Wqb@n8 z_9-d!Q1Jk}^F}T!K7CRr>owXA!*oWe;3UqRQ%UNGOeQ1iPHB0#Va;(>Zfx{2%=%u^%;Y5F{f0$~M1h!5>(Qq=17^Qk$r7Ktm%x*UAX74q# zj8tvMY`}hvuvNiJcSh3i!E*7kYZk3YX@a}Wlr1-6`NcdlF)KIEE|)$7Z7B>uZ1^c1 za+adOdea0Yc12Me_)e+ljHpp9o*9XLUjB^Fol8kJ(!E4p?%?Cph8$#`MeiW?dI9?0 z>4 zS@sRtt%?i6mB0^>3;*o(#=3cm2Kbx9uxhK1)8_o{5Ky$#8qu zIVFkk+D@l^1cpuzCKrKSkEWkRuXavVt-n(2A1!9^KtB%U0?xT}J70!6lYWiXb@ma#eC|*ICs| zR%zk*C6{C{dc%UJG6N|`^}SUB&=Yx^H{BpRZ2d+xAuFl$anYnYOZ4G5U~b-NS-);X zjp*&1iI&CM1aICvk#mZeu(|5&R}+DLk==Tk z)ya!(xGY%lf6TI7(lN`; zd1+$`Yg`m+`GP+1Y~lSc(Jgk!Cot2Z_D(n2-rNk7V|c)57KpBCwc;fJjbCS&`TQxDXzPcuxyb4k+Xq|@o97Vl0w2kjhx-kGw0=>u0uCb&eV zs?;*4Mz{UpAz=-YRf09={n!TTuvO%6T$roDtroNx(wx=T_E)h6wvnI-t{FjOk|n};p@I7L z^(4+{biofMuG+8)EB33Tx~kzMSIzit`%=B~`4kF>v`wB5k>^f#la6TeZl>MUfGOPK8NY#|*?u#(IL^<}ud$i0}qit=oRYNRpP zWlEi{iO6c>4-#b&LIQ2CzK{XIYqYIc#;ogTrd+(VtWnpC6rFb1t(Fc)eJetl=uEN- zCp+$Df-HRW+JIq>rNu-No`%4f2EwgRuP{1$@W*>@SN~FcxOBAs9uq)|NeqprO2wrY ziql(?0b9e*OkR;v4M5Vpo^^61IYE^@&xP415JvG!=#Z(DzCZ_T3bG&84MSh5!w&V1 z-;|Z|G#~MljLnTd07&?B(z(XrYm8A+uNBw~WEMLdz^cG}jUUwOa zjdEJ*0^sGx)z=G5d<~DpdX>i9D7{!I6)}FvWPYd|^42S3H*&95UXjEhA3r%u0VZLh zGTeQ6xPf1Cf+Qo{xs>7K>NuTO&2s zTZRKCil#|O@#0KY$Ba>(*-t4yXjY^i9~tTow0_$x(fwheWPm&35PV0%#%8Q`P1mSC z00-0EzS19>Qp(LH*r)wqQn5d|u5`Zjm!ACU@Urq*8B(M-Sjvi6cZ{#|96bvU9_Wj5 zL%-2}&a7{dpblf@=3jAl-z93UKV6?K2Xx%F^)FRtuzGLDjZGXL{2*n$gV7~e7K^%V zO6INIQYc@`K}0T63{v-)r?l;C;T;mzR;xkcG*Q-wbA#7$ti&bna6^%!=6%l>w=gY~ z$!?U>ial$tBQ_&LdPj^UM~~~H-7F{1n>U)EL3t_b}=~6p+M5=WpKzho1)WL85=^a#MefjV>LOXtjZ< zK=Mz=6G1Aa&%-TIRpu{GT@zcy(oreb%cfeRT67nE|2L(ROcuc^kf_To>PbFdmAw@e zh!Zsw!Y=#St-Xt=`jE$-E?O7`<=UAv{^~y!`6;5l34tssOY6C5>dwrSj5O#qx-fq;{ zgjWH$g*VpCM!EYa_P)la=)GD?#j_YDyP&h?*HU&4+cQzgnb%_TXHOiVbA|BFExGC& z8PS;7yTSNYYuVtgqdD(S0xkSEAs8#FoFt@ z`kUB2L{SaSK48z79(my0sMTnZRJg|djdnZcyP`B6x%usy$uU}`J$?|^Q+w&nP;}t< z8?K*iM>FO99W!xUm0>P%5~cC57U@qRjV(7FlkR*9e$!!#OHB)C-FWk|PS-b*+6oLJ zK$SL*m7O2BA|Vm>JhYCfJ4+Mn%n{u`#fLi&r81q*a9yYwHYUTJZnzTH{`Ash2?58J zZylk_RlU>;hr{jsDelh=v|?U7lC$mdSM+toH>fLnw&dN4PL7(dI;}U}KL%uXTMAilJ3jkPrrn@=s$tOqBCcTbqY_G|svWE;Xy7mWJp3Yd*?8Zn{vKUH!4h3XjIbzt@0d0ak7KFAQ zKI4x|NWD-%LvunoF4P5j;}5zWMPvye%@`N)k2s3J)0=Xcjjmm9VlP#jN%jP4VV?2m zasge_$pe>mD?g|{GdoIv@##|vzrrZF*eZ1Ll_zmUt71kAr*lZikzn-UFcT|`B+yXd zB0~u8Nwk~BP`S;QAiTYO5Sf66b{ztz!mF>5Rnr_4KRiyBTM7lSYJ3_<9WBx2?uCK$ zM?!{Q@%`iWgQ z$dtZU{DfHns~2_2x@o!h=AP|`_xpbIjW{lOlinqGY_u}YYIX4ryytP2oby#35eqM? zw@i*|7@FZgL&LcRq9XA-+%||W9Z7b>Nlezw%wv%O!4N5rj9lZ0CKEAFeaibp$SyZb znw2us8BZH`p@c}SYdrhZ!*L&)Tue+9{fCR+TzN*hq7*`>V{|bMVkzu25>Ku+ zcN!byG}-Pfx^I^zCzGKR=&_e#p5|weqqY(%PIZ$&22k(QPOx%TNBw1;dVYz?0h?}N zDAD5KNiek5Qf5EP&u~EgmiqWtkFJ}{_QKzGWIEXJE$oO$-f&m*t6+z4E%DG*Qb?=2 zY3+P}uI8a0#9RWXcOUe>ZF~kKLtcNuj)A4z<&xe7K-fr^alO={565~e-TJ*TQj$F; z-t6TyY~_P?Ggh(XQKhlRrEW?xgL5dMm&YkBQbh+AvnY(}-s15GnR0hM>f?${BKffL z44m9AJ-_ExIh`3L#ixu=aI>vT`0pmv;>_W~(8>4C(Ttfym4?yG9uT zsK$hVvXH@klFNbNDod1AWwNWZIaHscngA-Ov3JrqP!G7@UuDTP+1ZfAc%0?-)E`s8 z43#JPqd;yVbjq#guAiLw#(ovobbK@2ZHlp5gVJl0hqF=;TR07TcQ=F41YE8|lFoS2 zZ=c8CsAV0Q>RFqIG^gVGl63-^l>;|&VKpWA^C;_IEG?d-dGdQv%_Yo;>+8hxqM0_* z(cLp?t2t@MO;FcARMmAF;VYum5#d^?*g=~cQyDo1z5`soBIf$!3#&8CD6pkm{Kk`> zcwL<=ceYDcM5jPbv+MU{x$sh%k~x$d4)^=x)7Fn395{A_rVty|-H`^z&18dY6AV84 z3ovOtnC~}x^-9muk(0hE_1-z-y=~je1it?Ow3^HzP@fxE`53X3{fJ|1#+ek z9K-b=xRJo^Ut|41Mg(k8TxG0tOp^=EQpP_hA57V2aFvSkn5tHl=?i<9GPSc#7L8Y~LDtx0Jm6&g4`YRp}wfaF%<$6yxf&PmoqsRe8A`MxrnY zW@Ib+Zl#_qI#({d`>*0GN=r}*AT2(7Be-n>at;ILcRGM`NIb8l1t1&(vsrS`d=p!i zGP+NvoY16Qll{I_rl!kNNk+OG1eQwqWi9vIse6q&{s0{%LpLl@JcJYOWe=rv=p3fs z*^iHzEv;SN0M%;XN^9zKbUE*}Qz)403kWaEhugObA2$Kpt-+6zkAIz)7{%6og4)Q7 z2Rm_A=iEC%#29ViQZ=la%l;F1xB9P@a>vZjJIs{tscLoTzojLbdCN5OmezXTyl$KX z`s9HyTH0}C^B;`ThhAS#QzAtq3p2z3qi}rtA&^3`1BQdBxt~IA1*r%PDgC-jdUnW@&xb)F?qc)~|HOgG(Z-oTao4a>1ActO%B7eKv)p zK?NDvE|{$B&Th{S`5p#-Q>8oZY^&@Fd4R4mONI#}{3|d>uhkY(m0gcT?C|^?;_p;^ zpC*gmPNGmEF@e$3CvDQSO%P4=*I$CoDgbZ+j{GcR(_F3Qk*ey7iY#VpSFw|LP~074 z1^Q{2lL-Y zc3b~suF{be3!;b(7T_7;Kj6iD6oO$(a`EGVZNzBNN|=vXiA)mE{Oo}N za?bpN9J%hRW^a-h_PzQFk}w1;we`?qTHfq%lakD{jevGB67En+kgN4bh0AnsM0*v;6qA7P^36s}zCKV+xYAxG#LcyVT}mCi zX4P0~k@Fz&adDyE2>tP!qIJwgk!|K(GoTG6_1fm$zmpEnR&7&oxCa?>ce?%k zcgHsNH1-WXyzzteOJ#~8*>b=9i0L7wynfKOusI*h+v`j2LQ;1#hMPx`;tmdjN!l>i z&|AU{;j$_#l}J9Ui`5fSqhc2aOt>yQ%4!d`eW)1+cWlg zCZnr#T-{*7fV8hj#>GBY`>2>(Df}YEjY-C=sE*9s1aZd12m6CLw#gT`FE<*3&eRt# zw5`iS0J@2Cx#$hDKO7*&JGOnTF}^VpVVR|iN^|Byjoug?1~uZ|R7*?ADgc)+3; zp&~9;oB|-8sE#$e>sPKSTmsDl!+tntiwyH{m9vgCD@6Ie0Rf4Oro3RN!^uWN9w!d%vHW^&(?FK{Wz+F2ci&6qmxop= zM+Lq8CQ(cYp7RM++VP%XKQBhkLE$BrJtnPnnjaP2Ey$!ghSo;fFC?z(dn554O_LOu z7^sRg5}QCU6c(9!n9C(05`-IgBlSN&k<;s0eVuEWB9>Co6=G7ygIT)Xa&IS;R#W~u z@ATBqAaVU=tPHM;*`uTF{HF3jF_h5WpQx??L2Xq6E1vucg#H#kVlM&&?B)@*rMg!# z_6nfdWysmFsDv3$%gFVb12qludNR%4c_wr{GQXosB6Y>(dC$2{<^C&0a*GG7Y=#j) z73Zk1_V0ah@`7F)`-Ox_XI)A9+Wp3qmIJWV>5NdC?gh{8WxvA=@tzp$wtf;)bEH7` z)_w^In`omHL$p3mju|o@v7h8@e*D^2R|T^&q+_}Cn)!GZevRH0;c3>gcrQTZj=s#lpM^ra@%Pso)4L;Io#8Hb1~p|sYDGNc9# zMww10&?JqfTGwjaI#eOM`zJT%PR!}j>g9r??#2FuIJpZG%RMj30>$fo#`JT3O#cS44}Z^N8L?gRx}JAx_o}yW z!2Yj9P0KiS*u~o5NRM%~lyt0ZcW(}nSuBaJTNr+SBCcD3utoyP2+I9egT$;wP0>$_ zOb(deAL!2FzavvAE%!B4@lVQsD!G5d(~cIBfW2lQXqsV%?*%Xzh4S0Z_T6M@=3AiG zc7~a;wzx1IRY&uW;;Qhh)n zXCwk4-A=8D6SMXZ31cf6c<~e|h!HXu-7{KkVVv+>^1Al^hS- zwZPN}(yGn)R%erbTk{h8yv5chIYAVhIlS)^an@s2aZvIXnO`*fERcUs$b2>Fs3oL}EX zpK5xd=@05OkfdbQbj}2fV(qQ;kWyiP;6#s8iOwyxcFo=7jjbe&I)6;}&Q4IoG3_@{ zU!H*BozE?;1_`SPBR%~O5fMwQuvL1Zymy7m&W$oA%jf+x%y$(bu@~~VFZ({BNB`kA zNAi=_&P)rPtW0@QdtRhsSXO&pw)?8)u~?t#XIBS@r+@%!W516>uz@Z4XipvlKnhG0 zb~U4BF}51A&1z+GRr433QghSVFRhL~!%k>AaCL7s@y^1GA{fdoB;A))C(Rj3AY)Mf zK^T3%g>d0sK~Ve}q9&#_#gljv1jX$soy{OqQ}96Hx5|HapBq0ITmM|Q_{7xN1drBL z#H_6^gYxs$JGtyn`u#jk)#@hm1na>2M_OHA@sX6y!HZqSM+7aZe<~?|=6dQloO*Kc zs*Xax+_{5sVhlj1wo_9a&f?)k^{o4YE4{oT6&DC-)nIP||AhW+70iAKAH-El#TfkW zARLg2?q-X{$sO&X8v;$c->Zb~RLd`Oz0a&!RBGqf!Ks6HrA@a^xH0FFrh9<|`acP& zr>$}X*!w2W#|tak3Rc#al5YLs+I}K^z~g|SNx0%<`&q8=Oz+Q6p1)SuOdb0@DIHAD zBd^#yTbyv0a)s%xRa(n>J}A(Q-*J6MC?DInl5r&72bjT1YM&wX#&q4Al0a#_$IDvV zkHx;O9=`TC`MhvU#F=Ejig4_q1TeP)SEx`J41(ybe7sOcOAr9vD`P??vDbh$F1ilX z7#}-s=wyp8TCDtDirhi-Yr-Qw#4LuT3-^pXM_I5DJDOY5Nj&svnVcgLOGH zv~J75qbKCnoV)H4i#-$0L9EpptJzzmJ$%oruWZq4+{K4ruOKAnJl@Q7o(0yjM2B<& z)}IR}1p7#Ls+By?HNZVcm&@u>*pKsk^7=q;ma6GJQ)Qv_?3ojo!fNHN)evesrserQ zNm7VyV`neBi@OKKh94DYdlMt2lknZGCWX&BEnEo3qog~kx}52eD-%fUBn`lHk^Yfh z*m(vUtxHz+N9krwHeg(5yxnjXt=s%DYW9~>LK`uxgRgy4rVyxh!bYw>o802zvx^kz zuf?cSUA0^QDBq<<1W{Dp`lz%h9Qg*lxCyXe5M&X(4rDACgvM@@Z^8o z_|lUCOfl4Rfzg<2CQkI{Z{tt*7uPXPCOM;zp^lMrR^*)*)M+bPg!l?gno_uf$Z$Y5 zuf)c>XN9%hEJqz+eXEFnN{&_&?3uBH3+`QmT7vLB686j66#}sl9&jX!z}CmXKV}($ zvRC|6nG@La>ZISG;19WrtO0OHULC?`>F@&FXZ#W?OD?_ZMS9|D0*vzHfOfwlS%a2m za?Wr>!zHNFmWbEhqpm%d@gb~NW4-OnG(V93C??6T1!$9#`)mXJ#5hRGE9@D6UoUKO zmnVrJWjg6Bd)h~8!EYAWZBxq9p}uZ9DG~={;Wg11!aI%-{um>p5o^g`dk-b6OjMSf z(3T}(yU5{vS3Yj|H1zhgW}hnLFg{GjihT zLJRz=WgB4qd2rNEo&D*}RQFFB3%uD4Cha|kVuS)*1l|7ER1!LK_j?ZVTkW zu(a%x2R%BjV@0+dT%Qo_FAq{=tl;)@;AX;SH)-CH?|fvMMU7M{?SyGi#=~KJ5H01}Fpjm5 zbxjBGp^F|>;YC;o2F08RA6jSN$;DJ9@B z_Jt*|Al^ggmBA79FLANTtdA{u=*@ef_yHFaR?`HMRiO$KJDHxBAKgI5zwh-Zf}Htg z&RNV4Yth>8fyOPR1wU+X@}V}qds+`*=phap>`s|PfNo_eEIM29E#yK!Vr+a(k3nT@ zd~Uc0XQNkhK^*5P7YbszISHaiNJUG(u6y5)0&3_1EGl?97v47enO+JOGpexSFu6KM z?%Dy_m@3SA$j-95V|Mq3qm>WLA;sbh6GP=%RdizeG|9WR**ps|6!Tl@ea5dJp#wnS zwcu+&JHe)W{Wed z!o1={tTS8*qPX2zjqY;ltl>gn(AQmCDJdxzTyG3lCmF`a()hXbFkB%>w~fyTbs|n~ zG$_ps7@{T$GSwfw59G0HjKB=#zXXK6 zFURe6MIoJXph4J#hOn=E_W=X;8|T0%JiW?&*}UcGN_y%)BomHb|%SvY91(>2qnD*vWN8k z90mzx`bXKaX;X&K_IG=e(;y^rf4Zz;i z8T~pJ4}T#nM28@~xX!L{Fiilj1mgR3EwC+p z(a4ZN(?NoE+PQ}E%4oDwT2nHyVs3n&e;9f@7|J)Sn2VwSPYV&6z?pqEizi#!UKuA} zh;U^I&8+4ayp7Bu8AI`KW>W`bJfAH-XUpJNyzX3l|5gDojLvbFp5Fnp z&FfAB>FN7<|Fn?#`~iXAijDf<#mno3Cup7El>ouetj7O14fL>+FJ@YV_7C~AfIcw+ zIbYcgpHKC$&2TK(fkglGBK+?UOwyu&riOJH7>47o|2>mGF5=yntV6>g*nk195ER~P zz5;PSU#9JQ6|d!!3hooN-TqJ+3qn@zE#(y*EYo*Yg;uRt&O!3Z<9*$149a zm{n0*^2IV<9G~2sCK(R8^_|jkp_6RO5G5Lvwsd4iNIi3DB$un=1+hzK%l~Pk)poB} zJtV9g8R$PpN3?MD0Gj*Mp2a#`G8kM(;!QW6P5F3j$;$fezy%K>Ky!5LAEw*igL|df z%Ov`QK}|%@7JcPR?CjD_ARGf1@L&0}2ADfhc%(DB72-`pZ~4r4ZP%_HkL#huo2~t` zU3CGE2C(*}2_|5YEBKRpXMY9ze!z;{jFJCmW`OtiC(h%i%{0x52Pt1baDM>%-vx%Z z=|;eI?JM{Gb1EVCAuD%d|8|i6Wk;U|wXYX%-REnql=yA4`%t_-3JM}=LX7yf|5wPE z35Mf9Bxn8qjHnMDM*6K8kxdpnsQl|l#;;It_sI+(Pp~ZM@s;7e$yo&p5_JR_JOl@2 z)e8-8YY`w3>c|4tMk5RW-m*^*=E8L|aD4E=+~Q9XOpva?{M;Pt7cg)z zbZYol>E!M)xWFkoB<~LOpMaXSHl|64#`eDj&t??;JsYIy@#3g60s?o}Zzdi-sZ+{m7R5?ZN&BPw)S#_e;9Qc7-j~nm_HdIWIeW{>eS>Dk+ih zO7Yj*7FMkUZ3W#gpV}41H$43InHm53)1lzdnCL>h;+bY?WTlcI_*-W~{O7@YIW=++{YA&*wYr_9rszD=6IkuN6;z3S@z~ z{3Vfp9ke}tgx{!>hlukl>vN+ZREl!Ij;)0Q0~&NN7nGN8WUB`kqPTdJfhWGw0LvlC z4~6!lN@B9P}!!!E?PRX={zIYPQTRtPW^>Mvs10*h#uWS9U7kfIzP5{LTQQ;1W zuq$fS`T3`QnP+)#VF5m98nI=I!1;MBw}GDudPAX)gNmo)!f3@Dn!kY_0=;@I1wlt% zV004xbqN@b69gsi-@*T1U$_V0qgNEXIho-8c1q6tEYS87Yu*wo16?NxbT&c{|8@Gy zB7pCMWBFgez}$WnjA3NkoC4pr5O_{|L{p&WcLJgdN5$q5{8a?BI$w{oi0>W?MAakT-PjJs*$P_2 zRe>n#o8t|B{d<8oZnh2HC+zqVe7eLOkNSuGoi(VDD&<7R3Ggr8<7wVj|G?^ca|-e?LSQ zzK2+p|8eY81VjI?NkILDSb_n6 z!pZYn1>QJB^2`xjLm-rn;3_cLLNlO&a5i|}F&j%LftHgm@=mVX(eS;!q0)UYg@P2z zAEUq1sVs%_D-i5UO$%j*JQ1-Ra--#tw~R@3@mg#8WwveiVnumf7udcSAVWNoLYzX(67I& zUILvBI%Rgr)a@p~*`tyu2xz#V=QZu3b3FJG_!soe@6V!-OK6@Fli7>T=9awr*IKmg za@xPP+#IM}q+qEy>Ys>bA1HMNa$+8*=7m%~pTZKWSeLmm&*nF>mA(s^zYC#F54>Z|vcf+xN|;_7O*`w&<_4qQD{;UkP5{Hy$(9K5A-egGcU&U9z2K2bq4l;M1s!ul3Dc{b@CZ2D)Ql4*xSOOUW1AUtDzC_zsqrnXD**3 zIcqmF*W&Dt?Jc~hc4g6ty??Y^^HEUN%pS>JpRP0R2eX}3M*Ff5dVSy@3G!Nvk$g|x ztTWh4ebt_M<3anQgD~sE8#%mjLbZ)=xrV|W_Pn|d_i*m>OG-<512EykWuV9nw!Ls@ z`A?N!%vP%tc`+<89%=oD$@jabg5G*v9Vs=hqh1 zl1+$CsPV-R^8MtT7A(^?of5;1S&NTwB35Hq zuTHQQFn)7~>hg0VQLMHFQuIvc&s%4e~gcjFVOQs;;RXb<9`tS6RXe@ z==2tw~K51lJ%R>_Z_`j+}er3T$@8nEoCA)rWUf_*^+a( zH*6jmHNSXVz1EIDx<_X(_xd7>vR3Bh%c&637#^Y}n$I(=WA_&{QshqTT9|7I4*X=D zRH1iUgg1V?ju!0m)+PNW{9u~KfNE88Uqg9f#(_kMi0S3YK#BDN#&}+9# zWN54%qwKyKGAQUNj*fRfHqb$2cgMTlDGrE`VBZ%S**E~gtYRpjavY9%mjz7w<~z!M zdAoF?%2_u<#mmNNHY=DATGv+mubB<9DmMMm0nl{W8kkP_Pa4}G1F_S6&#y^8{AQkV ztN&G`EV@)&%2cF!=(TUr+Q~g)jGMw+1<}z>5*rso9SubunxVY+XqoLhn-ab1jw)q( ze!sNy6+100QQrbRUUm0P0es_P-Mz|-+-JINrhosq>-J(+cSlKNv&;=s?jC=#kk*L$ z_MZQPw)c!`YHPcOK~bZK7^zZ3gGv`rI#NWiAt2I0snVrM6A%JO4NZ^IOX$7#jv_^o z-XRnb>D>^JK$355^ql+L&v?G^{&>f`emDSkcJ^L-udB>!UUQ9~Bb;;0igjQ-O{nQE zZDg_drv0|mK0BLW_gX0Y(GcV*ko9Iy$9E=@fVY(OSY26H29HhBd1|*Ib0@?;a_VB@ z32UF*8b_=VZx(}*)fGaptSPXbt$hUG#B(Wpgp=vHxnnyDG2O$3Q}$@HBc`c6=wCkz zmi&dS)ovK?YaeGCr~Uqf-H?m_Eay9a24Uuyfz^7{#msz7o^F2mZ>kjJ8bj+2!QSOD z7{T^D#!%@~eF3R&iqB%xu~Qlq*wD=a7ypWi$2T0W&vy^A5nr|>0YFUPXBhCK0v!sE z)csmt?bb~fcp50EUR3q_+IvAzf5ZUkS$pvFD~%BQ{KKioIN;^MFyxfy>{JjHVK_77 zN>Z8VXGW=A^)*6lS{Td7Oh_Ja&!rHe+at`)rQD9?J)2A1H?tCDt`+Vj#9Nw#j>zJ# z=Lx^T@<_T2Ih=Bk7OXmcyE7I{q&p#&r$DH8C12V;KQfj2YjX-h+giod_fiR=Mrw&N z`k=lN76_tZ3$*UNUSYJI1WT^IAJ>p?fP1)xZk~CaS#!#n(I#sTzR#JlAJAs<+C3^o z)w$DaA+oV(G?=v2=&Pf%R%ix$v=Nu?k=2*Iugr%+m4$nK~BFG=S1rOaK zcw5ag>|>zqZH?{?R*dNDF7UW%Yqvz(0Lo4;cVz}dCJnTK!sqJ9H7)^@qXEy69 zzm&?09=y?*c8B}Y+H9!Ew0aRNtp}G?kQz(q(fQpIXD_O65WdD!zQ|2&a=hM_Gh`FI z*T0%@Qs?vIIt4vFx>eeCOAX{53*$C?BW?ytW3-Z z+lKBi$qR+GFxR`SLsCCEib_t>Hm+lgKnPaC*9T4=O?(G`HN+jLd|rF>u^&%s>E4$? z5skvK!mtJt<^@q}eFtRw&4Z2%OW9n%D1xECJ!inbk{zZ8)Kl1%@gwYgKXPUV-Y1#% z8_ilz_aw>)H_X`tX0lI<2zJFtft+N$7_50W5IPqeYoU!5!hUvYIoUqa7;!d^0sSPp z&c?6JX{t_w)q_}bq9E_wJ=%(^0RPx&DCJpOoKUZ}p`h!M_Poy|WBQG26})v;}@sMU(od6|P$Ttm;&COJe~na2#3hwWAtTvRV}5QNrTT>?<_U z>hTomTYUZK5(jvtiRVD_`ypt{si!N8jz^Pa8xOX3A6OkLv%aMa?PLns<{1aX<>g^L zJ0&0j?!}EQLlg2V1qAv6wVpV%-YRO>ZhbN3wve$~zaUjn@`VQTC;URm+yXREFz%%K zn{QuJK#b0pcszDDnq@Y+u0SsB_EBCTMHsG4gOPC~`Fwobo;c3D^G=IrSst_VgS4jn zX~$H!%pIl7FGcpfZO1ZlRh%%|?MGOgj>p%wYeh)orc}o; z&(s3ke(Mf$JN6(sTl3f@g~U?qDV2$7y*yRqLzZ9Dvuh0Pxib2Lq4pWPExg?|`TCu+ zF303qU9GSt%*KWFG921G;iA1IVKr)lg%)a|T;&5h3p?q0AgTp9H5d6&8ggsgC2P;3 zJXjd&P4-?EOA>v;Pjvr*LLivS&-KM-HtV&p+Y(CyNUuk~6#e@0n+Vo5`?j?k9w&~; zD_m4oJv)@&8q(jaq950$68oe^*-yNocz!F>_wCR3{#pwAh}E1%egvaAVa+w2m6`d3 z&YVA|4Z+AuMqX?fe5k*;2T5#=e{s7kjw&cuW`uE}W+5Rq)48(%N9qoXS6lGRbFUnW zszYuQ0_-Lt=MAR*a!Ex40!mZ6ByDbWM`RGd(mHhJ(oxVS!ea z$}hLR;EtXN;-)N;*kNar;N0YvpFZfuq4WH;ou}%SlW~32iMxf;7SoL%2RI$ zee1%#SGM=m^*ME7Q_1pE-&CGmVLIkd#W5yEt7E_AZ@E6kCibmjF=CV-U(d@)31SO@ z-*I8^*_@#~t>3Wkk;nzGIp9~SAnsGqsN`JjWu+=A}lu4g-U zWr+A&oX7UlPM^kE5X^h^>_jvo@k?1etZBI)S!Ppfo|+QraIQlp+Zuya4)vPldHRD( z7-|g+>wYUsg0v@|=%zkBrP*_6-3-AFL*IixL^Xok6SlM$&7bbn7Z&#E<@X9P7y49M zQn-EMOTN5VPqvgBPmhtSlt?en`4ci~9le)#W^rYwQzuO1GA%>+&A^K&g!F-0wVni|3&WR z#N)XuZ`;8NuVePVJruIj1WaB4`Stkq{i$2~yH!2x0u~2F<7qO#W2k-9}**V;^ zx?{)Ln^BW;-$5T(6=~5<&NjjE$85bCv@L3y{PF@Cq0VU^3hx*xY6zVoT0Sdo%h+gC zFnTtV-c-+96@j>HwJvTxf84b-W_595LZCDE9>rtf<&l?sZO`v2lW7JCE~$v=NYXu> zy)^GW#ggOijoa=~@xUirKwEI0J`SNDp%37_FXke(GEKt8GwJ91?@=`Hf;~VBbe%V| z$^qIyRkJ_&ayASC8YI3|qzdH1q&j>(zsHO`aa7_1?Tw@BD4s$KMomY^IRcs;;79G} zYnLDn^WJonLx^LLbO+6X0o!}^!QH-SI3xYXTM*V#`|EoM^>`-dORlz+&Ko`XtWCVH zIK$x;KjqpxTDDAHrG+UNnF#LU_1F)7aL9alswJa^l_yQREhN^gMDyzWRr!4EuZ|WR z!-8&x9lI0PymOyh^s(llkd?ZkR2R{KVS(Nn$SaeDN}1le=?1;F;asOEQDnKRjBwuf z3@-+4`!Z9L6U4IWW#eHNxlg6J&%gaHkYJ`D$zGmyZ`+!;Z#t|qVTAceMb`cYPy9;n zEh2M#Jr>rtUg~z<-nf%xKV@pjgzDE*fYbxT*FUBKiP8uB2l_Ql9un9|V2I9O$HhD=*D zg$C8&Fx&iz9pEg1T+8Y}w9x6b9DgI+N#QsF(+9S_5B*Ni;oS0hbf-g2WM0@>PPd6z zzc`ZG+^uUr!c4BJaO&#^y$`6pC1NlI= z-3ozPnC`4_Ue=_7ut}#xw|?9(h=C_;c3d_t43n$!ODD<%vRCIz|H$7Gxtlq*A;||N zeh_Y|48eJ!#_+SWDYxC2jvc3pf^nh@6YIUR&ics1zYT~kUOi%C%mo(wbA&dRmHNq& z^Mzmw)Th`SA6L(iFsR=7Hsu=%DUA>l^wj0 zkvN-ewV}o^H#E+sPgsC4&c>SY^OM7e+m@+={W+rWSvgW59@g!)xDpo4Ad*QQVweV- zj2&%mTH&cdArz^4z9%fdA^6m%>e=QaQJU98}=zLnDf!gL|lEz`J3L&NkMbu?Ld zsyO3FABXMzrBxN&4zA_afk%#*m#U#=x#OJ1iR00?Bw5`CTZ9%^1Fsmq9D_i-Ve8=x zo*p+bDW@JRs5q7w>9$WyID?gZjj%`)odsstT?&>>NTt$4{+boi-f`Y|ASoguU3F6J zYIFeZSqHvEU-i*2rSe@i3-1k)p+kVYbZ;*7%>8n+0jQvf8TE zeITn=yV2o`T&^&AVtnn#F-d>!wSr@RHSio4!f6j;)br%N1U#4$z7Q^E|$w-`B?$Y*Oen z8z!nb-Z5k}o*wn67V)_k39D-MJno4)tD#ZHR z4l89AMX|@gCV`)9jq7}l&&uEHDvxdO(Fojmh5XeiN|f?6v#QZLarPe8D*n^++~cf~ zVINbJD9BsuKet_MY-<#x-`WU%eL%iy+FryYF}z%yS$N9Xfc5IFyKrv$6h#Hkn$6Iu zD=jq&n>yP%uh`V2_c`dkPI4o@v_1e!|3T^0m52_j0z?R^UizbO5s-+s&;=q zZ0R+q1x4|Cfa;^+HtJh6tm#WxowbLq>;A|NsZLbDLOE_+(3LdegJOc$(tH%JtMhv2 zVi$sR9oC=5H1JSmvR*Ngu`VRO$~B%YJTO>paT^Sgg;FQ2Y66WxW5$lBpSr0ht0&tn zk%C36*zhl|A+MR2EnAc?j=JCjSl4)A_Tal%Et6ert*#~HJoweej5$NB-cF<>*x0GY zXbg^y+_h;rHX=Ve2#tg z*%S>ZE#;e7{vN`w+=Y4+PmTQbse;g6y4Y^kTydP~j0QiY1NW)xO!pdKji}`Gw}`e> z4NvA2OZa8_ksZTerlThVJ6hcCasp&KQF!r|6SNvXd{(D#8PE_6%4(WVi0OC8%G};j zJHbI=Ri4c>s77C|HrOu6psX`2c@=&}c=XaEg)=sN^%H^tuLF&{Z-SECR8#%!v;cCJYSDURtx#HFcI+ zU9t`At(BdPj-Pa~+g5XvXLR_#HKV<@h=Un;y2;fB8kG$}~{?CRd z|xWpTds}8o)z^&K*ttULPXA_*et}*U-c1yPR4)M?$Z|uhTlNEM=i>tEJ`A z@p}C8jx5M@Xj=)r@hU;h4Ns6{U2)7$H zYwW(LZlby!BYaNZ=DS@O;&N_maRDzQcU17F9~(}(!u-3Zr=~5!U=fq=`e$x{TaG|na<2^fdJ?zP5)>?Mx9^HD* zE)bzLOWTbGd>KNX7i%<*8N5f`eg4esV~sHf000lGe;c&WbO}?5c_PJY)BK*x(iKYn z$;u<33VNF#WC2BAF8a|Z-+P_YXiL#?6Eb)k)7Ye4+JFvuvPYiT8idBac?jU53pQyd zzJ@2?i0L?zYRtRuk-r!+DnofXkD3=HTada1gCKi=`ZQ`t-dSbC+`Xr!x~ZBE%q5oE zU1}$oEDzDw4cl90mVdt%&EPIFAwM0JXq_;NqT{hL(sj_+k=4})z8jaKST*UQXY>3z zgtplhtQ6K=lfn(Eov5z_n=TQiqy29`^;oN@aL1LN&7S+pj6D6a{=$A}`3f9*;Eag~ z+WA!GKo!P5ZF&>?j|-3E#QCXs=I^Y?|LUh?_PCuCck)bL^s(C35g5uU16BkAox^&d zw%E_?;H74s>7*!q`-c!P~HSO%hGOBe32JWrVv%ARzj|gR*Mt1QF(`zLQsW~vVe@7scbu&lJ3v~ zf4)wVMd_#&<1w2J}QB+MU&@Z!?3}tphLO zTUDBz^)SI?djs-%%oB7eiep|l6Sb>T)Tnt?Rf{Lv$Z23aXK5XIcWefyc(-$9uz+U> z9sx#|b@1J>a~e|XU!OL76olIkRBVO4VfraNAk)-T?=Geusu21qyl_eu4PivDFImwA z@0DdWPqW7IG$d8aWEkK=$1o~utYzXHnO?zfau#>n*YESujo{XzwV2f`qG1U&KgN$) ze&ix?O?qP6%GYY7PBO;8!sD72H^z)AVjX$Z3m?O$b?oYFqjIa!(d0V@zjksZIUze|E!1vM=iX z4YPExB-3L-wIz{RG|RaP$yb5#OWILcv-~8h^i}+hC;Bd_9#qB3>#X&xhSv+%mbUo8 z*2*4)g)@s-L>I;B)~&o40n-;VcuQ8tfnT3cRa`V!<6^40YIV91owq07ofz&(yFZpN z)?nk&*$&`ymco^~iq@N-_gKhhH*Fq3Q|Ls}G<6_}S5 zUTVEf6=|;z);0a8`017(f(~axaScZm*zwGB{~h`u-Duh@MX{?p_`2IHBjQQ!XMlFs zk=&OyMZybg0r&+<3KH*+Z9TMh_@GQNNbA2NN4tq`N6gK7Iq2b+t#t23%b z5JX(g=KRJ*c?2aGY+u+oBlVi@44ppT9wthx$3hG6d+dU?LXxw!;U0nc%EZ(@-LM@ z-Z4-aNz%AZu}!%Y%`Cl1EJG?}+a(S6XKV%9G8PX^FrHGLT2~%& z%MEmlD+_B(8yKHCJ?{aGmMl9|?KXU)Al50`wAVF(gA>(h&(e`gxFMXl<(yDQYyw_e z82AYYpPRV_HW(}@;FpZ3znFr6kG^9le=ojKk9{%H+Gy%*5)ZK4AIC*Z7wApsz9)Q@ zd)G0}a!FOtE?|F@0cR7mS%By>cOd+D%KjRDHZn|&osGB|Xg%_L>X*D8qWW-eyX5n5 z;yZ?k7ZW){&4$KxFr?MxBbKECXji_kGIyT4PDh`k0?-A8d1UO6yzHPu7QG#yQ>0KX zxf_{m;TI#g$yHyUHx}+!AmP?N@e1WuVfr|Z zAVDO5%jS!`Y)6Pnfg*FGgO-u3@<^KXE{G?xm6Pt@FdvkQ3E=KE>kmC&vw}FAIeEN) zp+srOJKL-|2-Td9-!TZCoeB#(nu_3jo_?I6!s-d?$QL;Zm7$T((}kSn)^{=-Sb2=Q z>5fIOah}9T@%Nz?Qiw$(TAzg2o*R6^!KIPc#SF;KsB*ch#f)?*J|Wrrj;>WDuT+5|u+6 zpJ{6PHrzjkez3Ij_3MK8=}1`Omm|+@3GvRLM~VMRa>a5{nc3@95gF_QJVp_jL|l$~ z=Ld29;qc1q9`lx#!`~I4!f_8(ZVt7{n9kV`{SG_*{k_Ss@8@~p2Q)b5p;1gj9{nk` zE5+slL%Vw_h4tK`q1l{5*>3@PY=e3WLO%vco<}3X#k_8fmy|e2f(MbkUmA(OaSfiW zL8}QC)CnG(s;YJ$U?ixpSXlMk^xXQ=<~fX8G_f?;J(iK83wcjqe8!a^wArK?DqcJq zt8p}6E~Efnb=%76&q9JvM;uxL3^Uw)-Re-Y8H;_sP;*CCOLbE-bQ+Mm8c5TEg@P)84y&~Z`sxw)s8{8p zKdz|wwf^wG?GLi+$8Zrfda-x@8es|=ZI^(o`;oVZ^en4Q<;YF64z@oTwKLz9$4%JU z2Wp`6+O!L-gm<0>B;oh|0#fcO4zlVumT!MS4Dz%I*(Kd!CVf-m^4zC98BhUB+Uw-w z81l7VZ*(&`1eD7)JwfqSTBD)cSn?7;s@T>1`VM_gQC%Ht&41GT{TqDHnyV+a3LX5YQ)@dkTe=ssE~tg+z@^uWAwnW z>GR~EW5Sp@Z;n6xoZI)WRkRn<>|**l)l|A|3=)7a8v z^a`HNp2N`l)3x42^%kZI2D@p}jtj@hRqI}nEBlGR+2;01be)@J7WM;G0^%WyD!@4< zYxAz}P1=M=NC8E>EV(kX>Q@r-c=K~&i_xjFMR*AXtYEmRFyr&f6!5SXYyKnXQh_4w zDZ;wz$dL>PPuZT_@Di2UYN1(zidyDLZf0O%gMBR!zAsTnd=Q*hDdU%Tjywg$24bUz zFS>M=)?cQz7H|fb28>yL%6TB{7j~l=Hb^amoKhgR7eoD;wUO3HP9c?FdOP+t2JQ)W zEafbJUhYu=Qej?7s*o#qF1??H3lCL$wXo9uOCn%8$lEYX9VZh=U0s=q1XERHJ9KJD3L!rs(ut4tReV7gEO|d&%nYL(QxNaU> zVX_eHTp`jh#o@XC!obyQbX1n=*%O!N9n=q2B(Jr5{g_a{Z1+%Z>{VzZTPRt<+d^I; zo_S6EruEecb*A@#!XcnN0Y5=z_)v`aYu0hZW~}sz;7x^lJ#<=61dZkDQxn~M)WE*C zDjMokfmSYz#hn3bww~umg`|a0sCj#4Bpt9gc>dQ)j%pdw@7o#(9_^6jmcJX+v}>}lJJ^04C+G<`lhr|-F%cZDDii=yM3=%cv59h z_-k$amBGEmjV3Gv9a<4h;q3wo(o2Jv$Xj7Di*EexGe3QXd_d#oEVkeB>r~Wwt(%Ga zV$uRlultxY{YMoHH-(JpB~_&J*ZUQ3xB&US3HFx`08N+*zc#-PCwvY(b1EVDESk!7 z>M3P6mxPO%ZhJzxuz8)*t|xz&w8@uSK95z?uv0^pAQMbHjsbO=eo#-envo5YXGRor zbmvH0T&1K&IgZBDJfZcGIxHQ5?O&Kr^gZ)z+xO`VO z;4osXi`G^ro=6roTrqk$w&STl_EYc>4+-M}xdh9>P$YzT3BGpz2^ z?Hs&gxCZSpn8x{N26QL&x)p7zb4xJgi`_46m+=<5JrgXTQfNbL`1J$dzmmfH$||3G z1$)-B4i_k+%xaEIHrH3qZ5XbY-7qn}2B0^!v3r@!cZCDjc37S>+iJ$+!M&VMA7DcI#XVdk~}0wZ=gSXc7u$h?s%r~1`- zt8Ic|kob7FgU+v}r*U5Ha~d^RzLhjHA;}YMan_L8^Y_bHUiWRL;))Socq$)8=iCT2|%^@BEDO$kS-sy0uCtsHl>m z7(IMs0Y8ghDN+IP*!x}PfCMyhNUKQ=qGlsI3B*so{^5r2vxR~^QF25dU2XQ!oiS*% z-?Rp*SxMQfiu&0qeq*7nfO<9nGW`wULri_hu`%Z3K0J$$#3kU%hml3>Or9l zN+j1s;C|ZxxC3}t%VV}5YV;`D@4wuHJ9cdREjI3>iCA6OqgZaEJD2bx{45q-fGlN+ z=0EsxCFi`Ffs%_vkG-DiCut??V5W?$UXuQvLyqb5*)^km;3~YU>@IC zz*_nr=J&E|rVH~jzV{3~8K6e>9Il>z^i){_seRnOzJ=A_QO$D@Ef=B#jZ0rJy>zF{ zyhmAs?wH6BTB}d|j;#97n{3S!^1?I$8XA2yJEG5XCXK^e4sJpVzuBL10PMDHKpBn_ zC^I{PMm#$e5C=VN=)D4T`Y>VW$_{^(qzSzY&o29!J5_YFB&$yJ;7YS6zC+F$&n_2k zOe*2*u2cQ27W@1mbFc%xia*2a3uPkHY52Wu0$sye0e5AXcd1YJ+}msT0u3K!!4vHE zc^bK$DKG(R4MWz`nRjGJd?5RDnv`kc@!XtcwJhG-(<7845qBhf9A{4i0 zeChr4O=lh{_&nW4y(uZJ!Q2a-ohXxelbqOw??HMIp@|~w?)E}&nasg*1jGVFJ%uoz zOA_#V6bhGAITGyUa=(M%2y}PhFQ$|}%7vi5id3_*Oyxw~TBWiSbp`SV8v7#n*#Kr+ zi)!_?Jk8(_d9WzG5@UthAAc$C1m02jtTR^a_3IOxGUTMmOcCXCJ74$NxM@-z!SAV; zBmIVjn9tE+s(9X5RHLwVnbe5hEZ)tP*t_oSY3IintJFe~LvH66STQ1}IGIBb`F!(T zNnTztuT~ixFSor?36Xgt-B!W5ZS(#8dw}Em!mWP}ZdII(XI}SI;S)GzQINrK;a$|V zqMi1ifJXfopx=x{khBshvg#c|&szebR2P+Mtc0ENfX}V{*LG&*SL<_85SlYxLv$pZ zIf*h%hJA@MICt<4*Pfr`PM}K>K6<{&?9<0m$FG!)%RKW#9v=7?7qQ&FmE-5V2G<>8 zF^*nMyOGTMQq!r(DZTij=9FC2x58XUF?m@XigpmQp7tk@tFp4PF1@*ZCWmj!v+keP z64t}klGByeg*BN1Z>}^yX$0L2SG6mwGyosuBE-DnhKk2@g+As|=g{yD> zYcUVjg(}i`T?RPN`$hWWuafm{7*C+4OrRz33iI8G9=+B_bLv2MuM@DHSqQ}_-urr$^;5(1cE6(I?T?61Zr>_IXO7oN2dSv8Sy(~sOaSwX5m6?Z zwg3pe@?Sx2g&15W3qZ?=@A)+2NT31rCoU}$o01+krN7o#b1HL!8YyvT+6 z6>lnOwz_06qLq?4?*t_khr^lZ$+u0?z9j)x;dEiUvMqZpZgj!cw)oDY?c&cyoIlt;NMTXJ8c;ps^- zMmOaq>`pVTo!DJRlZF9=y8#F!1Q_psx-*0d($eUk-+1%wJp)=-EAK6Xq+EX&w&8X2v3BTcD`9_GP?XKQ_Jzh|I2+j^ulMsvs>|x=+kI&oEc*`Msr3%Y zo?dk2VfOv3R-YOMDlmgD;PULDnQl*CpB*n>z`e<7G*V~R@C&DNb0#y=W!G`(3X5_G zcx(2hv?_Bis z;)p0fWy=m5Sd8VxzEX)!ygAM-X9@)~6gWh3wuKk8j4L+LFlCfDZPc}=x|B*Clu@Su zt^Ps%!4rbE&mIXXpomNgglQ*4nxvfSY80ZR{*$Gs4 z5o!^WdbZ%}wYq%z4yOSn(F{Jl%E55}CUOkoD>*j{IDhc@CjH#$YFmY7MleL6) zl;gGWDphaI&vNCc<|^oV!4T+wn9$GsQ^;EX!GQVBwJpM~mO7i%StD(aHVau= zf$i{{R>rlP9aSUE$%uTj{i5A;z{Szrcg;T<$B?3eL1W%ss9o4=UPH()g94{x!QqL? zWEBqEveXdy3jko7X4^a(Yv;M5S7DD%-OPXqqB714PBR6cO$9LYpqxKS{-QdsTRZ2e zM^=}+Z&*dGF|07-6#Q6PYt7`+5Z}0c3x9UAw`?I|a&xN#W}p0&mkenuZ8S*p)cK}1 zR=rKt+o2z_6OFT^Fg^VC5BIi+b6km~`CGMRGLiiqd5_&|c#tI6JKdjs2e>Bp%jBnP zVA)V%=p?A*>hI5uNB37Q?9ke}t_ZIj`kCK1K{nS0s2_~%h)xADS_SBlMs-Jk_UFpY zm!Ry3@m_A-il-yLcl0DT6x=*Ume<+Ei?`24$Pm4e?bXj_RNP9*3bc($+%u1+z&15t zFy2q%g4v@svp~~PfAbCZrXtXVX(uqKAbO#`aEfM^gUs-K>`mua_&h!3Tu;7I&@)$Y zh$@niaf(UG_;I_7!Y5u7dMb<#E)V5VR_%@Tcxmb(KIA;~lVo-56tw&r#kY@Px}{xU zVIAaE2OP=ocEixi@#s~mV2Sm?wiWgRh}z>tdNJZt6dgRDv5M;vZ^59r8Q3acgV*KQfsDP64eHkQrQPk z9YKotY0Z)_9t~s#KyS`AWZns*a#JLYAvJ6pF_*<8H%`yk8r5e(@1~0zmnoywxZy26L3ks^f|4q_aQy z9fzrc!q}lMyhwM$L*%~5IGYXs%E+iKsMJvz6roROjK@`ob_*WK^aHzXf+6tN+LE&6 zoJK>6azSqeki|br7Et6!a?)QCah^L7_u?ZbEAIoX{@u;ECa@<8O|LH0 zp@ZKHlu0;#n_@H6|7-$yAEhBQyP_x-QgVQdMR!x=t!FxkpwV&-$!Dcb#km}j9XS+w z1eNpc_7DoCOXy#Ud&DMv`(8Jg~q zot8nq_<7WSg|xIaK=VTo2~={q_DLiKY>)DX%^fY*g`$v0XFIY5LnrMzVq-ISv&bhL2u1zNk*z%vPhPC~mIM9-4VgfF;(r=z4S$W>FFb{y ztx5YyI0x^&kfQzPN5082d+8pyUZ+k#sxozTcoCV`z&_*Z^`s+iZBX6ufkMzDUO?wj ze$Ce$aQw#U+_$_F7M$gIc6tusI(mnb$><51+J6K+$^x~+r9O|xagN3hD0>zOx|J#; zZSMh`pTV)gaQYaTNgu?=fXrRF^+Mx>&4q*RqGQ04ez+J9DzipNtv%}oznH|Nr=$70$jV5gy52m$ z#7%HnuT9p)6|JFHTHrdQ=-O$V1ICMg4l@}8>JDU~5YtJyM|%G`)9KgFzqx_nvv(R5vU=|2 zY0b+RoSS(B5mdSioL>I9h%=X=+iUZN1)=_&3)EM*e9^`_O*e92WZ^Ac<}p^AAJ7!tKYv0SX@{pE9S%@o8|X8z*9=rweLW3KWPH~ z|4)0h{Y8jP@y|G&3wgR~FQ`fk1Q-4sw0TJW{ntUz{EBaIo(Ue`?(7Cr3XS^1=7!%t zgMVM!b~}J;!Bnl^|NXZQ%>R8yi}UqqVi&Ex-kAI|T`yn%qgvs8YiEO0!Vd~-^hN8F zkz{z2j=_`uD|N2xN`N_rW!pa>(vUGq?KI%6fM&}Kq!IGxOUOVkQi(kwiXrJ-I(XEl z_K7BT?f{NzwwbS=EvD%G3uDYQ4lQhFDdh#)N{{FDWR}Npx{4p#Z zzu@4S#x4Jm5ipdUXAu>)!NidQJDc40#>Rni6FtjbW$?-5w_nsk*bJr{91RXn$VQCX zKHw?(Q8-;%OHM=VaMU$yF!8D`BXO@44Fz zp8vM)bq`xei)I`d_9$;mAEWk|Vy)EwqFKQNyMcb(p&wpLrsCG2Ad8e z%cXh~wSOUB3laabaU~D|vU%XB<2UEGm(-#! zLr1A7i*Z#9JR%*44;~yq@(K|{_}g6o)Ff`^$^2)I4eJc{c7Ytiu#&{85_p=x;EmOR z4);)JwW*tzK>-Nhb(hIH6cU+$ zzRxw?1>$?2Bs0w4Z*S5;Lqa3tt^c{~x4$nt9!FaGf->F~|(G^oS@-ZH2pD1`EvahsQx6 z24qVOhpk`W>e^MRYyqmZjc=`70DmtZIF!$U`xZN|3?J2J7TxOIo+rI}6(_K;xSgqU zqrZA-07wH_Y;N#BS0ruy4By6>6PuQXNIe553S^eE(;$N*@bmw%m{O%)xrJ&iiMYQ@ z+V5&781%n4HP5_#MoI|09U^eA^I!dv&~8@~ch<}IKcZRB(mJ=DH~)S6nEzXSrIBh# zUWhc;bP#>mue1A(WY-jZM$#_Uo)gpo8AUyH<6d;fRwQQ&cwoJlrH+w%SBBVULu5eD9gJ&c@P-6%0inY1v%FAKjMN?$T1}o?Zv!9i zPECXN>0iUU5wh(zK)``&X>T3)mJiyy9aGbp8$^;06$xP@!{xi5Y8DM0x7{dP)%}P5(CQ!QOfg9TX9%VidUT9N; zdH!;#m4Ynv8V1>rWly;LU%pND7-&L}jgR!d$l}o12b4p+RgDf(KnJU&#HlK`#{Ed> zgOidw^o3~N{{%DOGO}fXe-T*yx5kw~<#Vr0F|rrk4uSuUJiM>}?b>xMfMWydD6cRr zfBfU&{XF_xgGrY1_e;)hPWfN=+VOYXV{xc`(be=S!#*Bl@qfaC-;-kcwLGdCF@8ge_??o34Mj<#7iBbPGZ;^ju18;I&z-|MN2xN@9|No~chWh0{ZXDFw zGtWHw*QNZ1EucS~{xDhP6lGiXgL)cDgZ>$Dm;OBaWHf}ZO8rVSV6eRb+Bh=)=UsI{ z1zKqIssKDzr?#t~GW`BO=K()-F`+%N{fhh<-QC^eyAa&H`3bXse;Bxt-{MTfm^^Br zl5hw`OCCBOJzXR;*RQAdoM%Mr+*aZTjM{IaiS4A9`XtEtH1iW% z^tXe{)P&eg`n6qL<|@61vO|!Hl-e|bnlTSBKpvp0GqwN;F4*WB;VZU%@xAHEWP^i) zyhB%cs1604y@~YfIp$DkiY9vDTFC`6i?9+R7L6uBH%cN%2|*5(x(N^U$U{S^22}qb zvZ_C(Q_RX(g4keJIGF(A*yGdNu?>psfy(z!9~C^~W+K$b2t~J{jB?4)=f=&S>?qy6 zdspJeo7+~3ucmE(d+9?lrK*&|eW z-oLUpVELYXQbB4~6MeA!5B@uCH0gl^3Wfmt7UC~8ug#-hyu<@i(-n|Ra_;Xr^c|GZ z2tdVm08@$R18(7C_wU4(vy%I24df5QKnui_Y4+32nuCkkGyQiMuMHPA71=jTqsiS4 zh^%CHF7zPP>|957w$oIeB-Igj8()|}xf%r-`Oum4G8vYp;{#(FM7zQ02 zgotJUMk-U`irD^9OOPhgnDk_NXk~QoH;#bJxSb6RiMoJe$FDS}*w)N1J-~Qv_Wvyq z7y67QD_zL(H{=&9HOaNM_+Tj`DZ|>tDp-t|pQHooU?d;!Y28pBbYCPZha{ ziZY~jmCXy=VjuOmfjdcVfVANN_KgM-V=6#rVh!op{Qiq&e<%9@#8yc^f8#OF>gvRM zm**3MYL2_)6`2ZQ*+YV&R6v#jbP1J_Di#A5U$ZM~ztO#dm#`9E#%2o_n1IIfjPLv* z`ZD@SizDuWQ<4&*S%81NQN&7^?f^R{gW|Xfo51kVShcQ%S-=LB{B~eWfcR}1RO#|TiAOKBx!9>7MfdDToUXxO$9y7= zwd{`Leh|%qmPAz}wqR((Mq%UtQblr?1{!Lg-a!W1@bl_q16`+KHx~6N=kCe?>s;Le!^!YJ{F6U4cu4U%-XBSc2>NYb#Lx1485qb?)n8+Qql%-02x z8$6=J^U9%fG$ea#KKZPodWqM<*W6NV940kl?YegQYB5?nEW7PgBYchPW%~;@6vqnc z*1`h_?}Ovk>d#3+J30t~VqYQVY}z zq9(+dFs*@XqD(~=u21&eHgFDWEI`cwXRS;c`JIBhv)P@+%za1bU9ZmlwYEgJP8?v0)mR?9zv}gNBpp{Z`Bq|MUw>|`>`jc>Cr60m zJpBdTm~W6G5({&1I|xA!Gfdq3zJG+Rd{Jsak8eLaI1Jx9l<&SW9lg7``WmW+PtqDC$*q165barQ}aDH zvzx2A+_>IkA}^P%3RbeLlKiAWOu0TfYUrR3O>8Ak(Ggr2p7gp~fJC(j(=0GzfC!^Z z(LoYs6?cOX3n)VtO^`|UHUfssO7uMwuc;^s{OU7S;b?$ww;t9y6By?(*s{HVtP%h? z94J={F}y0QNltAysdt*N8D^di{4u;bId;5C0w!d9i&Rsw4gVL+C-PG6h17k zfMkhgh!ZdAzYTVZwTWvieO;BXy9xx4LiJW<-Z

3kW;d$UoBDX`~(TykWwy0f!_z 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≠RM4Id7BlKBD1;+o+;r}d`7Zr9I&%KjsA4c$+ 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 H*~>R literal 0 HcmV?d00001 diff --git a/data-warehousing/dbrx-metric-views/figures/metric_view_in_dashboards.png b/data-warehousing/dbrx-metric-views/figures/metric_view_in_dashboards.png new file mode 100644 index 0000000000000000000000000000000000000000..e10a7e1b439fe388f907aada2efb6663f08c3833 GIT binary patch literal 199787 zcma&O1z4O-vNnucf&>Zf?g4@`cyMySqzpcXxODCujHU+5bB^ z@4H;jT+?({TXj9vT~&8ah=QCrG7=sV1Ox=Kq=cvv1O!|p1O(Iz0vtG}Fk1Z%0s`{0 zg@}lPq=*QKf}@?Og|!I;1Wgn$5+Ko~fcaIvS}96`u$$PvpTz&y0|tHljkqWcx+N@7 zdLkLg=0SpNBkxDH!Y?7t0um;kgN?PlJQA+pU@NnV(0Gu3cCD&s#Lzw0k_WfWk54MN zL-!C{vVBscqPab}CIk9`!Fq*?)kTdXWZ$BHy!W)aEaDSfb0^+tf=bhVhBw>o+Ws|i z67oLc_1Mmxa6hah##>>4r;0!jhg@xju-7f7elbg-`!N+cLY~`-NPpU0X#nS(&>lLCz1L%6HgFoGVx0Qrtw1&f&oG7K}M3j4OJi%4##K3 zHa`Y}{ zCK{5ava%3#;4}gRWRL{}3^)Y|{@{T>5D?JOfe`TEZ*=fS^as>`m%>H|fh z(#FKufCOY?ZR^AX0+9U|1rIp=JDZt|ivI-<3c8(?_984dWK9KPvk&uw^ zIU1YtD2a;wvpV=c0GYY7vpo+pv#YBslPepOoue5u3pY16^9NRDR#rwZ1*4Ojt+N4$ z(bkFlAC3HXJEA5|MvfNt&K7pIB){7=Fth_Y1IWmJcl58ne~i-vWbr>e**g7mTHpyX z|1M!>Vfw)QueQNe`F`i}C|H0@tTja~Y{2XR_rcG}!NK=m^#7~me|r44ni~I8lZAup z!@pPkx1#^Is;ZNTqlldixKC&P|5=)UR{r4P z_>rKa@s1%N1R*3vg;YS0M`^I0nCjR)%qShpgj&_HSv^RYv|39w3N(5I{6Athwhk ze*+$&FG1Z1%iY3Kb_Jiu$?{#XA7k%%lUagBt8EpTUm|`otjlSMtb@_QQ7z z8iy(d0&xzZ{Sje(!n`8_qVx@4)L#nnnk|%HB^-JuT^hhc4uu#%7lc9>zvyZ!-8d$Y z@OFPvy7%oqrRi{@Ev|TmH}uw76nSGQPmPu2dDf>TrPD_h$E`h<2G9G-Njfs|aE9~E zo*2;(bg3K(AzsopyH`kDE>Q4^SpdR270z$@O$_;rj4d7brM%-<0`T;q&&v^o`y}%enSe;wj!xwc@yJ z>ahb`6@-J)X7NXyKH=-ae9>}L(ts9mbI2VlK#b_sn@e%= zsTrIHgiXFM($3?ba_yc1ETd~TgwGmtP3!^76`Osz{jRy5SP>9AyS2wT+P6f+Z?XmV zcbD!jbIk{oSWOnL1Pe0aydPlB$RRj8BF4i&vHUht&*X3VKK@x9-OV9f;qgnpVFyWY z)DPSJAl}1%FeVc2ecuO~ww_lVqczY&RJ7%vxzCL_uIha820`sShQyDUy>{JhY}$^O z5J{vpI>!{vmM(-$6{t#o!(^ghF%(U}pq3k4Gw3?rrIt$~L&l#<*cynQzx1)>MZ}

d%Z-9e%~OqP^OB> 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�IL)8QGCztWYM&Bv>kUOpBt+qK9egU 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 YC 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�YxSD+GCsaujWz~A93iS{)!^oF^H|O41V`(sX3Qr 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 z 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 str: + """ + Replace catalog and schema names in a text string. + + Handles both formats: + - Without backticks: catalog.schema.table + - With backticks: `catalog`.`schema`.`table` + + Args: + text: The text to search and replace in + source_catalog: The catalog name to find + target_catalog: The catalog name to replace with + source_schema: Optional schema name to find + target_schema: Optional schema name to replace with + + Returns: + The text with replacements applied + """ + # Implementation... +``` + +### YAML Guidelines (databricks.yml) + +1. Use 2-space indentation +2. Include comments for all TODO items +3. Group related variables together +4. Document all parameters + +--- + +## Pull Request Process + +### Before Submitting + +1. **Update documentation** if you changed functionality +2. **Test your changes** using the checklist above +3. **Update DOCUMENTATION.md** if you modified source code +4. **Rebase on main** to ensure clean history: + ```bash + git fetch upstream + git rebase upstream/main + ``` + +### PR Template + +When creating a PR, include: + +```markdown +## Description +Brief description of changes + +## Type of Change +- [ ] Bug fix +- [ ] New feature +- [ ] Documentation update +- [ ] Refactoring + +## Testing Done +- [ ] Validated bundle configuration +- [ ] Tested export functionality +- [ ] Tested deploy functionality +- [ ] Tested catalog/schema replacement + +## Documentation +- [ ] Updated README.md (if needed) +- [ ] Updated SETUP.md (if needed) +- [ ] Updated src/DOCUMENTATION.md (if needed) +``` + +### Review Process + +1. Submit PR to `main` branch +2. Ensure all checks pass +3. Request review from maintainers +4. Address any feedback +5. Once approved, maintainer will merge + +--- + +## Areas for Contribution + +### Good First Issues + +- Improve error messages +- Add more examples to documentation +- Add support for additional JSON paths in catalog replacement +- Create unit tests for replacement functions + +### Feature Ideas + +- Support for multiple catalog/schema mappings +- Dry-run mode for deployment +- Diff preview before deployment +- Support for Genie space permissions management +- GitHub Actions workflow template +- Azure DevOps pipeline template + +--- + +## Questions? + +If you have questions about contributing: + +1. Check existing documentation +2. Review closed issues and PRs +3. Open a new issue with the `question` label + +Thank you for contributing! diff --git a/data-warehousing/genie-cicd/README.md b/data-warehousing/genie-cicd/README.md new file mode 100644 index 0000000..c4a0905 --- /dev/null +++ b/data-warehousing/genie-cicd/README.md @@ -0,0 +1,313 @@ +# Genie Space CI/CD + +Automated CI/CD pipeline for Databricks AI/BI Genie spaces. Export from Dev, version control in Git, and deploy to Prod with automatic catalog/schema replacement. + +## Table of Contents + +- [Overview](#overview) +- [Architecture](#architecture) +- [File Structure](#file-structure) +- [Quick Start](#quick-start) +- [Jobs Available](#jobs-available) +- [Catalog/Schema Replacement](#catalogschema-replacement) +- [Parameters Reference](#parameters-reference) +- [Prerequisites](#prerequisites) +- [Troubleshooting](#troubleshooting) +- [API Reference](#api-reference) +- [Additional Documentation](#additional-documentation) + +--- + +## Overview + +This project provides a complete CI/CD solution for managing Databricks AI/BI Genie spaces across environments. It enables teams to: + +- **Export** Genie space configurations from Development workspaces +- **Version control** configurations in Git for audit trails and collaboration +- **Deploy** to Production with automatic Unity Catalog reference replacement +- **Maintain** consistency between Dev and Prod environments + +### Key Features + +- **Serverless compute by default** - Jobs run on serverless for faster startup and no cluster management +- Automatic catalog/schema replacement during deployment +- Support for both backtick-quoted and plain Unity Catalog identifiers +- Create new or update existing Genie spaces +- Configurable via Databricks Asset Bundles (DABs) +- CI/CD ready for integration with GitHub Actions, Azure DevOps, etc. + +--- + +## Architecture + +``` +┌────────────────────────┐ ┌────────────────────────┐ ┌────────────────────────┐ +│ Dev Workspace │ │ Git / CI/CD │ │ Prod Workspace │ +│ │ │ │ │ │ +│ Genie Space ──Task1 ┼──►───│ genie_space_dev.json. │──►───┼ Task2─► Genie Space │ +│ (source catalog) │ │ │ │ (target catalog) │ +└────────────────────────┘ └────────────────────────┘ └────────────────────────┘ +``` + +### Pipeline Flow + +**Job: `promote_genie_to_prod`** + +| Task | Description | Input | Output | +|------|-------------|-------|--------| +| **Task 1** (Export) | Export Genie space from Dev | Dev Space ID | `genie_definition/genie_space.json` | +| **Task 2** (Deploy) | Deploy to Prod with replacements | JSON file | New/Updated Prod Genie Space | + +--- + +## File Structure + +``` +genie-cicd/ +├── databricks.yml # DAB configuration (customize this!) +├── SETUP.md # Step-by-step setup guide +├── README.md # This file +├── .gitignore # Git ignore patterns +├── src/ +│ ├── export_genie_definition.py # Task 1: Export from Dev +│ ├── deploy_genie_space.py # Task 2: Deploy to Prod +│ └── DOCUMENTATION.md # Detailed source code documentation +└── genie_definition/ + ├── genie_space.json # Exported from Dev (version controlled) + └── genie_space_prod.json # Generated for Prod (auto-created) +``` + +### Key Files + +| File | Purpose | +|------|---------| +| `databricks.yml` | Main configuration file - define variables, jobs, and targets | +| `src/export_genie_definition.py` | Databricks notebook to export Genie space definitions | +| `src/deploy_genie_space.py` | Databricks notebook to deploy with catalog/schema replacement | +| `genie_definition/*.json` | Exported space definitions (keep in version control) | + +--- + +## Quick Start + +> **Detailed instructions**: See [SETUP.md](./SETUP.md) for comprehensive step-by-step guide. + +### 1. Install Prerequisites + +```bash +# Install Databricks CLI +pip install databricks-cli + +# Configure authentication +databricks configure --token +``` + +### 2. Configure `databricks.yml` + +Find and update all `# <-- TODO` comments: + +```bash +grep -n "TODO" databricks.yml +``` + +**Required variables:** + +| Variable | Description | Example | +|----------|-------------|---------| +| `dev_space_id` | Your Dev Genie Space ID (source to export) | `01f0fd2cfa1c16c185ec2ee3b4ea29d7` | +| `prod_space_id` | Your Prod Space ID (empty for first run) | `""` or Space ID | +| `prod_warehouse_id` | Prod SQL Warehouse ID | `81b975e2ee32b916` | +| `source_catalog` | Dev catalog name | `main_th` | +| `source_schema` | Dev schema name | `schema_dev` | +| `target_catalog` | Prod catalog name | `main_prod` | +| `target_schema` | Prod schema name | `schema_prod` | +| Workspace URLs | Dev and Prod workspace URLs | `https://xxx.cloud.databricks.com` | + +### 3. Deploy + +```bash +# Validate configuration +databricks bundle validate --target prod + +# Deploy bundle (first time) +databricks bundle deploy --target prod + +# Run the pipeline +databricks bundle run promote_genie_to_prod --target prod + +# ⚠️ IMPORTANT: Save the prod space_id from output, add to databricks.yml + +# Subsequent runs (updates existing Prod space) +databricks bundle run promote_genie_to_prod --target prod +``` + +--- + +## Jobs Available + +| Job | Description | Use Case | +|-----|-------------|----------| +| `promote_genie_to_prod` | Full pipeline: Export from Dev → Deploy to Prod | Regular deployments | +| `deploy_genie_only` | Deploy only: Uses existing `genie_space.json` (skip export) | Quick deploys without re-export | + +### Run Commands + +```bash +# Full pipeline (export + deploy) +databricks bundle run promote_genie_to_prod --target prod + +# Deploy only (if you already have the JSON) # it is availbale on the the databricks.yml file +databricks bundle run deploy_genie_only --target prod +``` + +--- + +## Catalog/Schema Replacement + +The pipeline automatically replaces Unity Catalog references when deploying to Prod, ensuring your Dev configurations work seamlessly in Production. + +### How It Works + +The deployment script scans the Genie space JSON and replaces all occurrences of your source catalog/schema with the target values. + +### Supported Formats + +| Format | Example | Replaced With | +|--------|---------|---------------| +| Plain | `main_th.schema_dev.table_example` | `main_prod.schema_prod.table_example` | +| Backtick-quoted | `` `main_th`.`schema_dev`.`table_example` `` | `` `main_prod`.`schema_prod`.`table_example` `` | + +### What Gets Replaced + +The following JSON paths are scanned and updated: + +| JSON Path | Description | +|-----------|-------------| +| `data_sources.tables[].identifier` | Table references | +| `data_sources.metric_views[].identifier` | Metric view references | +| `instructions.example_question_sqls[].sql[]` | Example SQL queries | +| `benchmarks.questions[].answer[].content[]` | Benchmark answer SQL | + +--- + +## Parameters Reference + +### Export Task (`export_genie_definition.py`) + +| Parameter | Required | Default | Description | +|-----------|----------|---------|-------------| +| `space_id` | **Yes** | - | Dev Genie Space ID to export | +| `output_file` | Yes | `../genie_definition/genie_space.json` | Path to save the exported JSON | + +### Deploy Task (`deploy_genie_space.py`) + +| Parameter | Required | Default | Description | +|-----------|----------|---------|-------------| +| `space_id` | No | `""` (empty) | Prod Space ID. Empty = create new, filled = update existing | +| `input_file` | **Yes** | `./genie_definition/genie_space.json` | Path to the Dev JSON file | +| `output_file` | No | Auto-generated `_prod` suffix | Path for Prod JSON backup | +| `warehouse_id` | **Yes*** | - | SQL Warehouse ID (*required for create) | +| `title` | **Yes*** | - | Space title (*required for create) | +| `source_catalog` | No | - | Dev catalog to replace (enables replacement) | +| `target_catalog` | No | - | Prod catalog | +| `source_schema` | No | - | Dev schema to replace | +| `target_schema` | No | - | Prod schema | + +--- + +## Compute Options + +By default, jobs run on **serverless compute** which provides: +- Faster startup times (no cluster provisioning) +- No cluster management overhead +- Cost-effective for short-running tasks +- Automatic scaling + +### Alternative Compute Options + +If serverless is not available or you need specific configurations, you can use: + +| Option | Use Case | Configuration | +|--------|----------|---------------| +| **Serverless** (default) | Recommended for most use cases | No cluster config needed | +| **Existing Cluster** | Reuse an all-purpose cluster | `existing_cluster_id: ""` | +| **New Job Cluster** | Dedicated compute per job | `new_cluster: { ... }` | + +To switch from serverless, uncomment the appropriate section in `databricks.yml`. + +--- + +## Prerequisites + +### Software Requirements + +- **Databricks CLI** v0.200+ installed and configured +- **Python 3.8+** (for local development/testing) + +### Permissions + +| Operation | Required Permission | Scope | +|-----------|---------------------|-------| +| Export | `CAN EDIT` | Dev Genie space | +| Create Space | `CAN MANAGE` | Prod workspace | +| Update Space | `CAN EDIT` | Prod Genie space | + +### Infrastructure + +- **Serverless compute** enabled in the workspace (for default configuration) +- **SQL Warehouse** running in Prod workspace +- **Unity Catalog** configured in both workspaces +- **Network connectivity** between workspaces (if different) + +--- + +## Troubleshooting + +| Error | Cause | Solution | +|-------|-------|----------| +| `space_id parameter is required` | Export task missing space ID | Set `dev_space_id` in `databricks.yml` | +| `warehouse_id is required` | Creating new space without warehouse | Set `prod_warehouse_id` in `databricks.yml` | +| `Permission denied` | Insufficient access | Check permissions (see Prerequisites) | +| `Space not found` | Invalid space ID | Verify space ID exists and is accessible | + +### Debugging Commands + +```bash +# Validate configuration +databricks bundle validate --target prod + +# Check job status +databricks bundle run promote_genie_to_prod --target prod +# Watch the job in Databricks UI for detailed logs + +# List available jobs +databricks bundle summary --target prod +``` + +--- + +## API Reference + +This project uses the Databricks Genie Space REST APIs: + +| Operation | API | Documentation | +|-----------|-----|---------------| +| Export | GET `/api/2.0/genie/spaces/{space_id}` | [Get Space API](https://docs.databricks.com/api/workspace/genie/getspace) | +| Create | POST `/api/2.0/genie/spaces` | [Create Space API](https://docs.databricks.com/api/workspace/genie/createspace) | +| Update | PATCH `/api/2.0/genie/spaces/{space_id}` | [Update Space API](https://docs.databricks.com/api/workspace/genie/updatespace) | + +--- + +## Additional Documentation + +| Document | Description | +|----------|-------------| +| [SETUP.md](./SETUP.md) | Detailed step-by-step setup guide | +| [src/DOCUMENTATION.md](./src/DOCUMENTATION.md) | Source code documentation and API details | +| [CONTRIBUTING.md](./CONTRIBUTING.md) | Guidelines for contributing to this project | + +--- + +## License + +This project is provided as-is for educational and internal use purposes. diff --git a/data-warehousing/genie-cicd/SETUP.md b/data-warehousing/genie-cicd/SETUP.md new file mode 100644 index 0000000..31ef02b --- /dev/null +++ b/data-warehousing/genie-cicd/SETUP.md @@ -0,0 +1,491 @@ +# Setup Guide + +Complete step-by-step instructions to configure and run your Genie Space CI/CD pipeline. + +## Table of Contents + +- [Prerequisites](#prerequisites) +- [Step 1: Configure databricks.yml](#step-1-configure-databricksyml) +- [Step 2: First Deployment](#step-2-first-deployment) +- [Step 3: Subsequent Deployments](#step-3-subsequent-deployments) +- [Available Jobs](#available-jobs) +- [Configuration Examples](#configuration-examples) +- [Troubleshooting](#troubleshooting) +- [Quick Reference](#quick-reference) + +--- + +## Prerequisites + +### 1. Install Databricks CLI + +Choose your preferred installation method: + +```bash +# Option 1: Install using pip (recommended) +pip install databricks-cli + +# Option 2: Install using Homebrew (macOS) +brew install databricks-cli + +# Option 3: Install using curl (Linux/macOS) +curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh +``` + +### 2. Verify Installation + +```bash +databricks --version +# Expected output: Databricks CLI v0.200.0 or higher +``` + +### 3. Configure Authentication + +You can authenticate using one of these methods: + +**Option A: Personal Access Token (PAT)** +```bash +# Interactive configuration +databricks configure --token + +# When prompted: +# Databricks Host: https://your-workspace.cloud.databricks.com +# Personal Access Token: dapi...your-token... +``` + +**Option B: Using Environment Variables** +```bash +export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com" +export DATABRICKS_TOKEN="dapi...your-token..." +``` + +**Option C: Using Databricks CLI Profiles** +```bash +# Configure a named profile +databricks configure --token --profile prod + +# Use the profile +databricks bundle deploy --target prod --profile prod +``` + +### 4. Verify Connection + +```bash +databricks workspace list / +# Should list your workspace root directories +``` + +--- + +## Step 1: Configure databricks.yml + +Open `databricks.yml` and update all values marked with `# <-- TODO`. + +### Quick Find: All TODOs + +```bash +grep -n "TODO" databricks.yml +``` + +### Required Configuration Items + +Below is a checklist of all items you need to configure: + +--- + +#### 1.1 Dev Space ID (Source) + +**What it is**: The ID of your Genie space in the Development workspace that you want to export. + +```yaml +variables: + dev_space_id: + default: "your-dev-genie-space-id" # <-- TODO: Add your Dev Space ID +``` + +**How to find it**: +1. Open your Databricks Dev workspace +2. Navigate to your Genie space +3. Copy the ID from the URL: `https://your-workspace.cloud.databricks.com/genie/spaces/{THIS_IS_YOUR_SPACE_ID}` + +--- + +#### 1.2 Prod Warehouse ID + +**What it is**: The SQL Warehouse ID in your Production workspace where queries will run. + +```yaml +variables: + prod_warehouse_id: + default: "your-warehouse-id" # <-- TODO: Add your Prod Warehouse ID +``` + +**How to find it**: +1. Open your Databricks Prod workspace +2. Go to **SQL** → **SQL Warehouses** +3. Click on your warehouse +4. Copy the ID from the URL: `https://your-workspace.cloud.databricks.com/sql/warehouses/{THIS_IS_YOUR_WAREHOUSE_ID}` + +--- + +#### 1.3 Catalog/Schema Mapping + +**What it is**: The mapping from your Dev Unity Catalog references to Prod. + +```yaml +variables: + # Source (Dev) - what to find and replace + source_catalog: + default: "main_th" # <-- TODO: Your Dev catalog name + source_schema: + default: "schema_dev" # <-- TODO: Your Dev schema name + + # Target (Prod) - replacement values + target_catalog: + default: "prod_catalog" # <-- TODO: Your Prod catalog name + target_schema: + default: "schema_prod" # <-- TODO: Your Prod schema name +``` + +**Example**: +| Environment | Catalog | Schema | Full Reference | +|-------------|---------|--------|----------------| +| Dev | `main_th` | `schema_dev` | `main_th.schema_dev.customers` | +| Prod | `main_prod` | `schema_prod` | `main_prod.schema_prod.customers` | + +--- + +#### 1.4 Workspace URLs + +**What it is**: The URLs for your Dev and Prod Databricks workspaces. + +```yaml +targets: + dev: + workspace: + host: https://your-dev-workspace.cloud.databricks.com # <-- TODO: Dev URL + prod: + workspace: + host: https://your-prod-workspace.cloud.databricks.com # <-- TODO: Prod URL +``` + +**Note**: If Dev and Prod are on the same workspace, use the same URL for both. + +--- + +#### 1.5 Compute Configuration + +**What it is**: The compute resources used to run the export and deploy tasks. + +**Default: Serverless** (recommended) + +By default, jobs run on **serverless compute**. No configuration needed - just leave the cluster settings commented out. + +Benefits of serverless: +- Instant startup (no cluster provisioning wait) +- No cluster management overhead +- Automatic scaling and resource optimization +- Cost-effective for short-running tasks + +**Alternative Options**: + +If serverless is not available in your workspace, choose one of the following: + +**Option A: Existing Cluster** (shared resources, requires cluster to be running) +```yaml +existing_cluster_id: "your-cluster-id" # Uncomment and set +``` + +**How to find cluster ID**: +- Go to **Compute** → Select your cluster → Copy ID from URL + +**Option B: New Job Cluster** (isolated, auto-terminates after job) +```yaml +new_cluster: + spark_version: "14.3.x-scala2.12" + num_workers: 0 + node_type_id: "i3.xlarge" # Adjust for your cloud provider + spark_conf: + "spark.databricks.cluster.profile": "singleNode" + "spark.master": "local[*]" + custom_tags: + "ResourceClass": "SingleNode" +``` + +**Node types by cloud**: +| Cloud | Recommended Node Type | +|-------|----------------------| +| AWS | `i3.xlarge`, `m5.xlarge` | +| Azure | `Standard_DS3_v2`, `Standard_D4s_v3` | +| GCP | `n1-standard-4` | + +--- + +## Step 2: First Deployment + +### 2.1 Validate Configuration + +Before deploying, validate your configuration: + +```bash +databricks bundle validate --target prod +``` + +**Expected output**: No errors, shows bundle summary. + +### 2.2 Deploy Bundle + +Deploy the bundle to your workspace: + +```bash +databricks bundle deploy --target prod +``` + +This uploads the notebooks and creates the job definitions. + +### 2.3 Run the Pipeline + +Execute the full pipeline: + +```bash +databricks bundle run promote_genie_to_prod --target prod +``` + +**What happens**: +1. **Task 1 (Export)**: Exports your Dev Genie space → `genie_definition/genie_space.json` +2. **Task 2 (Deploy)**: Creates a new Prod Genie space with catalog/schema replaced + +### 2.4 Save the Prod Space ID + +After the job completes successfully, check the output for: + +``` +⚠️ IMPORTANT: Save this Space ID for future updates: + space_id = "01f0e034e6cb118695218a38adc4176d" +``` + +**Critical**: Add this ID to your `databricks.yml`: + +```yaml +variables: + prod_space_id: + default: "01f0e034e6cb118695218a38adc4176d" # <-- Paste your new Prod Space ID here +``` + +--- + +## Step 3: Subsequent Deployments + +After you've saved the `prod_space_id`, subsequent deployments are simple: + +```bash +# Deploy any bundle changes first (if you modified databricks.yml) +databricks bundle deploy --target prod + +# Run the pipeline to sync changes from Dev to Prod +databricks bundle run promote_genie_to_prod --target prod +``` + +**What happens**: +1. **Export**: Fresh definition exported from Dev +2. **Update**: Existing Prod space is updated (not recreated) + +--- + +## Available Jobs + +| Job | Description | When to Use | +|-----|-------------|-------------| +| `promote_genie_to_prod` | Full pipeline: Export from Dev + Deploy to Prod | Regular sync/deployment | +| `deploy_genie_only` | Deploy only: Use existing `genie_space.json` | Quick deploy without re-export | + +### Run Commands + +```bash +# Full pipeline (recommended for most cases) +databricks bundle run promote_genie_to_prod --target prod + +# Deploy only (skip export step) +databricks bundle run deploy_genie_only --target prod +``` + +--- + +## Configuration Examples + +### Example 1: Same Workspace (Different Catalogs) + +When Dev and Prod are in the same Databricks workspace but use different Unity Catalog schemas: + +```yaml +variables: + source_catalog: + default: "main" + source_schema: + default: "dev" + target_catalog: + default: "main" + target_schema: + default: "prod" + +targets: + dev: + workspace: + host: https://mycompany.cloud.databricks.com + prod: + workspace: + host: https://mycompany.cloud.databricks.com # Same workspace +``` + +### Example 2: Different Workspaces + +When Dev and Prod are separate Databricks workspaces: + +```yaml +variables: + source_catalog: + default: "catalog_dev" + source_schema: + default: "analytics" + target_catalog: + default: "catalog_prod" + target_schema: + default: "analytics" + +targets: + dev: + workspace: + host: https://mycompany-dev.cloud.databricks.com + prod: + workspace: + host: https://mycompany-prod.cloud.databricks.com # Different workspace +``` + +### Example 3: Using Serverless (Default) + +Serverless is the default - simply leave cluster configuration commented out: + +```yaml +tasks: + - task_key: export_from_dev + notebook_task: + notebook_path: ./src/export_genie_definition.ipynb + base_parameters: + space_id: ${var.dev_space_id} + output_file: "../genie_definition/genie_space.json" + # No cluster config = serverless compute +``` + +### Example 4: Using Job Clusters + +If serverless is not available, use job clusters: + +```yaml +tasks: + - task_key: export_from_dev + notebook_task: + notebook_path: ./src/export_genie_definition.ipynb + base_parameters: + space_id: ${var.dev_space_id} + output_file: "../genie_definition/genie_space.json" + + new_cluster: + spark_version: "14.3.x-scala2.12" + num_workers: 0 + node_type_id: "i3.xlarge" + spark_conf: + "spark.databricks.cluster.profile": "singleNode" + "spark.master": "local[*]" + custom_tags: + "ResourceClass": "SingleNode" +``` + +--- + +## Troubleshooting + +### Common Errors + +| Error Message | Cause | Solution | +|---------------|-------|----------| +| `space_id parameter is required` | Export task missing space ID | Set `dev_space_id` in databricks.yml | +| `warehouse_id is required` | Creating new space without warehouse | Set `prod_warehouse_id` in databricks.yml | +| `title is required` | Creating new space without title | Set `genie_space_title` in databricks.yml | +| `Permission denied` | Insufficient workspace access | See [Permissions](#permissions) section below | +| `Space not found` | Invalid or inaccessible space ID | Verify the space ID exists and you have access | +| `Cluster not found` | Invalid existing cluster ID | Verify cluster exists or use job cluster instead | +| `Serverless compute not available` | Serverless not enabled | Enable serverless in workspace settings or configure `existing_cluster_id` or `new_cluster` | + +### Permissions + +Ensure you have the correct permissions: + +| Operation | Required Permission | Where | +|-----------|---------------------|-------| +| Export | `CAN EDIT` | Dev Genie Space | +| Create Space | `CAN MANAGE` | Prod Workspace | +| Update Space | `CAN EDIT` | Prod Genie Space | +| Run Jobs | `CAN MANAGE RUN` | Job in Prod Workspace | + +### Debugging Commands + +```bash +# Validate bundle configuration +databricks bundle validate --target prod + +# Show bundle summary +databricks bundle summary --target prod + +# View job runs +databricks jobs list --output JSON + +# Check workspace connectivity +databricks workspace list / +``` + +### Logs and Monitoring + +1. Run the job and note the run ID +2. In Databricks UI: **Workflows** → **Job Runs** → Select your run +3. Click on each task to view detailed logs and output + +--- + +## Quick Reference + +### Where to Find Things + +| Item | Location | +|------|----------| +| Dev Space ID | Dev Genie Space URL: `/genie/spaces/{SPACE_ID}` | +| Prod Warehouse ID | SQL Warehouses page URL: `/sql/warehouses/{WAREHOUSE_ID}` | +| Prod Space ID | Job output after first successful run | +| Cluster ID (optional) | Compute page URL: `/compute/clusters/{CLUSTER_ID}` | +| Workspace URL | Browser URL when logged in | + +**Note**: Cluster ID is only needed if you're not using serverless (the default). + +### Command Cheat Sheet + +```bash +# Setup +databricks configure --token # Configure authentication +databricks workspace list / # Verify connection + +# Bundle operations +databricks bundle validate --target prod # Validate config +databricks bundle deploy --target prod # Deploy to workspace +databricks bundle summary --target prod # Show bundle info + +# Run jobs +databricks bundle run promote_genie_to_prod --target prod # Full pipeline +databricks bundle run deploy_genie_only --target prod # Deploy only +``` + +### Configuration File Locations + +| File | Purpose | +|------|---------| +| `databricks.yml` | Main bundle configuration | +| `~/.databrickscfg` | CLI authentication profiles | +| `.env` | Environment variables (optional) | diff --git a/data-warehousing/genie-cicd/databricks.yml.template b/data-warehousing/genie-cicd/databricks.yml.template new file mode 100644 index 0000000..e47edc0 --- /dev/null +++ b/data-warehousing/genie-cicd/databricks.yml.template @@ -0,0 +1,247 @@ +# Databricks Asset Bundle Configuration +# ===================================== +# This bundle exports Genie spaces from Dev and deploys them to Prod with catalog/schema replacement. +# +# Workflow: +# Task 1: Export Genie space definition from Dev +# Task 2: Deploy (create/update) Genie space to Prod +# +# Usage: +# databricks bundle deploy --target prod +# databricks bundle run promote_genie_to_prod --target prod + +bundle: + name: genie-space-cicd + +# ============================================================ +# VARIABLES - Customize these for your environment +# ============================================================ +variables: + # ------------------------------ + # TODO: Set your Dev Space ID (source to export) + # ------------------------------ + dev_space_id: + description: "" + default: "" # <-- TODO: Add your Dev Genie Space ID + + # ------------------------------ + # TODO: Set your Prod Space ID (target to update) + # ------------------------------ + # Leave empty ("") for first deployment - the job will create a new space + # After first run, copy the space_id from the output and paste here + prod_space_id: + description: "" + default: "" # <-- TODO: After first deployment, add your Prod space_id here + + # ------------------------------ + # TODO: Set your Prod Warehouse ID + # ------------------------------ + prod_warehouse_id: + description: "" + default: "" # <-- TODO: Add your Prod SQL Warehouse ID + + # ------------------------------ + # TODO: Set your Genie Space Title + # ------------------------------ + genie_space_title: + description: "" + default: "" # <-- TODO: Change to your desired title + + # ------------------------------ + # TODO: Set your Dev catalog/schema names (source) + # ------------------------------ + source_catalog: + description: "" + default: "" # <-- TODO: Change to your Dev catalog name + + source_schema: + description: "" + default: "" # <-- TODO: Change to your Dev schema name + + # ------------------------------ + # TODO: Set your Prod catalog/schema names (target) + # ------------------------------ + target_catalog: + description: "" + default: "" # <-- TODO: Change to your Prod catalog name + + target_schema: + description: "" + default: "" # <-- TODO: Change to your Prod schema name + +# ============================================================ +# RESOURCES - Job definitions +# ============================================================ +resources: + jobs: + # ---------------------------------------------------------- + # Main CI/CD Job: Export from Dev → Deploy to Prod + # ---------------------------------------------------------- + promote_genie_to_prod: + name: "Promote Genie Space: Dev → Prod" + description: "Exports Genie space from Dev and deploys to Prod with catalog/schema replacement" + + # ------------------------------ + # TODO: Set job schedule (optional) + # ------------------------------ + # Uncomment below to run on a schedule + # schedule: + # quartz_cron_expression: "0 0 9 * * ?" # Daily at 9 AM + # timezone_id: "America/Los_Angeles" + + tasks: + # ---------------------------------------- + # Task 1: Export Genie Space from Dev + # ---------------------------------------- + - task_key: export_from_dev + description: "Export Genie space definition from Dev workspace" + + notebook_task: + notebook_path: ./src/export_genie_definition.ipynb + base_parameters: + space_id: ${var.dev_space_id} + output_file: "../genie_definition/genie_space_dev.json" + + # ------------------------------ + # Compute Configuration + # ------------------------------ + # Default: Serverless (no cluster config needed) + # The task runs on serverless compute when no cluster is specified. + # This is the recommended option for most use cases. + + # ------------------------------ + # Alternative: Use an existing cluster + # ------------------------------ + # Uncomment below to run on an existing all-purpose cluster + # existing_cluster_id: "" # <-- TODO: Set your cluster ID + + # ------------------------------ + # Alternative: Create a new job cluster + # ------------------------------ + # Uncomment below to create a dedicated job cluster for this task + # new_cluster: + # spark_version: "14.3.x-scala2.12" + # num_workers: 0 + # node_type_id: "i3.xlarge" # <-- TODO: Adjust for your cloud (AWS: i3.xlarge, Azure: Standard_DS3_v2, GCP: n1-standard-4) + # spark_conf: + # "spark.databricks.cluster.profile": "singleNode" + # "spark.master": "local[*]" + # custom_tags: + # "ResourceClass": "SingleNode" + + # ---------------------------------------- + # Task 2: Deploy Genie Space to Prod + # ---------------------------------------- + - task_key: deploy_to_prod + description: "Deploy Genie space to Prod (create or update)" + depends_on: + - task_key: export_from_dev + + notebook_task: + notebook_path: ./src/deploy_genie_space.ipynb + base_parameters: + space_id: ${var.prod_space_id} + input_file: "../genie_definition/genie_space_dev.json" + output_file: "../genie_definition/genie_space_prod.json" + warehouse_id: ${var.prod_warehouse_id} + title: ${var.genie_space_title} + source_catalog: ${var.source_catalog} + target_catalog: ${var.target_catalog} + source_schema: ${var.source_schema} + target_schema: ${var.target_schema} + + # ------------------------------ + # Compute Configuration + # ------------------------------ + # Default: Serverless (no cluster config needed) + # The task runs on serverless compute when no cluster is specified. + # This is the recommended option for most use cases. + + # ------------------------------ + # Alternative: Use an existing cluster + # ------------------------------ + # Uncomment below to run on an existing all-purpose cluster + # existing_cluster_id: "" # <-- TODO: Set your cluster ID + + # ------------------------------ + # Alternative: Create a new job cluster + # ------------------------------ + # Uncomment below to create a dedicated job cluster for this task + # new_cluster: + # spark_version: "14.3.x-scala2.12" + # num_workers: 0 + # node_type_id: "i3.xlarge" # <-- TODO: Adjust for your cloud (AWS: i3.xlarge, Azure: Standard_DS3_v2, GCP: n1-standard-4) + # spark_conf: + # "spark.databricks.cluster.profile": "singleNode" + # "spark.master": "local[*]" + # custom_tags: + # "ResourceClass": "SingleNode" + + # # ---------------------------------------------------------- + # # Standalone Job: Deploy Only (without export) + # # ---------------------------------------------------------- + # deploy_genie_only: + # name: "Deploy Genie Space to Prod (Deploy Only)" + # description: "Deploys existing genie_space.json to Prod without re-exporting from Dev" + + # tasks: + # - task_key: deploy_to_prod + # description: "Deploy Genie space to Prod (create or update)" + + # notebook_task: + # notebook_path: ./src/deploy_genie_space + # base_parameters: + # space_id: ${var.prod_space_id} + # input_file: "./genie_definition/genie_space.json" + # output_file: "./genie_definition/genie_space_prod.json" + # warehouse_id: ${var.prod_warehouse_id} + # title: ${var.genie_space_title} + # source_catalog: ${var.source_catalog} + # target_catalog: ${var.target_catalog} + # source_schema: ${var.source_schema} + # target_schema: ${var.target_schema} + # + # # Default: Serverless (no cluster config needed) + # # Uncomment one of the alternatives below if needed: + # + # # Alternative: Use an existing cluster + # # existing_cluster_id: "" + # + # # Alternative: Create a new job cluster + # # new_cluster: + # # spark_version: "14.3.x-scala2.12" + # # num_workers: 0 + # # node_type_id: "i3.xlarge" + # # spark_conf: + # # "spark.databricks.cluster.profile": "singleNode" + # # "spark.master": "local[*]" + # # custom_tags: + # # "ResourceClass": "SingleNode" + +# ============================================================ +# TARGETS - Environment configurations +# ============================================================ +targets: + # Development target (for testing the bundle) + dev: + mode: development + default: true + workspace: + # ------------------------------ + # TODO: Set your Dev workspace URL + # ------------------------------ + host: https://.cloud.databricks.com # <-- TODO: Change this + + # Production target (for actual deployment) + prod: + mode: production + workspace: + # ------------------------------ + # TODO: Set your Prod workspace URL + # ------------------------------ + host: https://.cloud.databricks.com # <-- TODO: Change this + + # Override variables for Prod (optional) + # variables: + # prod_space_id: "" + # prod_warehouse_id: "" diff --git a/data-warehousing/genie-cicd/genie_definition/genie_space_dev.json b/data-warehousing/genie-cicd/genie_definition/genie_space_dev.json new file mode 100644 index 0000000..2c1e953 --- /dev/null +++ b/data-warehousing/genie-cicd/genie_definition/genie_space_dev.json @@ -0,0 +1,129 @@ +{ + "version": 2, + "config": { + "sample_questions": [ + { + "id": "01f0fd2d918317eb9aa652fd17e86579", + "question": [ + "What is the total number of customer?" + ] + } + ] + }, + "data_sources": { + "tables": [ + { + "identifier": "main_th.schema_dev.table_example", + "column_configs": [ + { + "column_name": "c_acctbal", + "enable_format_assistance": true + }, + { + "column_name": "c_address", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_comment", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_custkey", + "enable_format_assistance": true + }, + { + "column_name": "c_mktsegment", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_name", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_nationkey", + "enable_format_assistance": true + }, + { + "column_name": "c_phone", + "enable_format_assistance": true, + "enable_entity_matching": true + } + ] + } + ] + }, + "instructions": { + "text_instructions": [ + { + "id": "01f0fd2d0816128598c487ad7cde4be4", + "content": [ + "You are a responsible to answer question about the customer using the Table table_example as source.\n", + "\n", + "I updated the instruction on Dev and need to see them on Prod" + ] + } + ], + "example_question_sqls": [ + { + "id": "01f0fd3cb0541e37b9a8cb3ee3eec240", + "question": [ + "What is the total number of customer?" + ], + "sql": [ + "SELECT\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_dev`.`table_example`\n", + "WHERE\n", + " `c_custkey` IS NOT NULL;" + ] + }, + { + "id": "01f0fd3cc01b1fa3839f30ccde15a8cb", + "question": [ + "What is the total number of customers in each market segment?" + ], + "sql": [ + "SELECT\n", + " `c_mktsegment`,\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_dev`.`table_example`\n", + "WHERE\n", + " `c_mktsegment` IS NOT NULL\n", + "GROUP BY\n", + " `c_mktsegment`\n", + "ORDER BY\n", + " total_customers DESC;" + ] + } + ] + }, + "benchmarks": { + "questions": [ + { + "id": "01f0fd3cd6a61691a33b3d01d69d63a6", + "question": [ + "What is the total number of customer?" + ], + "answer": [ + { + "format": "SQL", + "content": [ + "SELECT\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_dev`.`table_example`\n", + "WHERE\n", + " `c_custkey` IS NOT NULL;" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/data-warehousing/genie-cicd/genie_definition/genie_space_prod.json b/data-warehousing/genie-cicd/genie_definition/genie_space_prod.json new file mode 100644 index 0000000..d3d9756 --- /dev/null +++ b/data-warehousing/genie-cicd/genie_definition/genie_space_prod.json @@ -0,0 +1,129 @@ +{ + "version": 2, + "config": { + "sample_questions": [ + { + "id": "01f0fd2d918317eb9aa652fd17e86579", + "question": [ + "What is the total number of customer?" + ] + } + ] + }, + "data_sources": { + "tables": [ + { + "identifier": "main_th.schema_prod.table_example", + "column_configs": [ + { + "column_name": "c_acctbal", + "enable_format_assistance": true + }, + { + "column_name": "c_address", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_comment", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_custkey", + "enable_format_assistance": true + }, + { + "column_name": "c_mktsegment", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_name", + "enable_format_assistance": true, + "enable_entity_matching": true + }, + { + "column_name": "c_nationkey", + "enable_format_assistance": true + }, + { + "column_name": "c_phone", + "enable_format_assistance": true, + "enable_entity_matching": true + } + ] + } + ] + }, + "instructions": { + "text_instructions": [ + { + "id": "01f0fd2d0816128598c487ad7cde4be4", + "content": [ + "You are a responsible to answer question about the customer using the Table table_example as source.\n", + "\n", + "I updated the instruction on Dev and need to see them on Prod" + ] + } + ], + "example_question_sqls": [ + { + "id": "01f0fd3cb0541e37b9a8cb3ee3eec240", + "question": [ + "What is the total number of customer?" + ], + "sql": [ + "SELECT\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_prod`.`table_example`\n", + "WHERE\n", + " `c_custkey` IS NOT NULL;" + ] + }, + { + "id": "01f0fd3cc01b1fa3839f30ccde15a8cb", + "question": [ + "What is the total number of customers in each market segment?" + ], + "sql": [ + "SELECT\n", + " `c_mktsegment`,\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_prod`.`table_example`\n", + "WHERE\n", + " `c_mktsegment` IS NOT NULL\n", + "GROUP BY\n", + " `c_mktsegment`\n", + "ORDER BY\n", + " total_customers DESC;" + ] + } + ] + }, + "benchmarks": { + "questions": [ + { + "id": "01f0fd3cd6a61691a33b3d01d69d63a6", + "question": [ + "What is the total number of customer?" + ], + "answer": [ + { + "format": "SQL", + "content": [ + "SELECT\n", + " COUNT(*) AS total_customers\n", + "FROM\n", + " `main_th`.`schema_prod`.`table_example`\n", + "WHERE\n", + " `c_custkey` IS NOT NULL;" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/data-warehousing/genie-cicd/src/DOCUMENTATION.md b/data-warehousing/genie-cicd/src/DOCUMENTATION.md new file mode 100644 index 0000000..614efce --- /dev/null +++ b/data-warehousing/genie-cicd/src/DOCUMENTATION.md @@ -0,0 +1,540 @@ +# Source Code Documentation + +This document provides detailed documentation for the Python source files (Databricks notebooks) in the `src/` directory. + +## Table of Contents + +- [Overview](#overview) +- [export_genie_definition.ipynb](#export_genie_definitionpy) +- [deploy_genie_space.ipynb](#deploy_genie_spacepy) +- [Genie Space JSON Structure](#genie-space-json-structure) +- [API Reference](#api-reference) + +--- + +## Overview + +This project contains two Databricks notebooks that work together to provide CI/CD capabilities for Genie spaces: + +| Notebook | Purpose | Databricks API | +|----------|---------|----------------| +| `export_genie_definition.ipynb` | Export a Genie space configuration from Dev | GET `/api/2.0/genie/spaces/{space_id}` | +| `deploy_genie_space.ipynb` | Deploy (create or update) a Genie space to Prod | POST/PATCH `/api/2.0/genie/spaces` | + +### Notebook Format + +These files use the **Databricks notebook source format** (indicated by `# Databricks notebook source` at the top). They can be: +- Run directly in Databricks notebooks +- Executed as part of Databricks Jobs +- Managed via Databricks Asset Bundles (DABs) + +### Compute Configuration + +By default, jobs run on **serverless compute**. This is the recommended option as it provides: +- Faster startup times +- No cluster management +- Cost-effective for short-running tasks + +#### Alternative Compute Options + +If serverless is not available or you need specific configurations, you can configure the following in `databricks.yml`: + +**Option 1: Serverless (Default)** +```yaml +# No cluster configuration needed - serverless is used automatically +notebook_task: + notebook_path: ./src/deploy_genie_space.ipynb + # ... parameters ... +``` + +**Option 2: Existing Cluster** +```yaml +notebook_task: + notebook_path: ./src/deploy_genie_space.ipynb + # ... parameters ... +existing_cluster_id: "" +``` + +**Option 3: New Job Cluster** +```yaml +notebook_task: + notebook_path: ./src/deploy_genie_space.ipynb + # ... parameters ... +new_cluster: + spark_version: "14.3.x-scala2.12" + num_workers: 0 + node_type_id: "i3.xlarge" # AWS: i3.xlarge, Azure: Standard_DS3_v2, GCP: n1-standard-4 + spark_conf: + "spark.databricks.cluster.profile": "singleNode" + "spark.master": "local[*]" + custom_tags: + "ResourceClass": "SingleNode" +``` + +### Dependencies + +Both notebooks require the Databricks SDK: + +```python +!pip install databricks-sdk -U +dbutils.library.restartPython() +``` + +--- + +## export_genie_definition.py + +### Purpose + +Exports a Genie space definition from a Databricks workspace and saves it as a JSON file. This is typically used to export from a Development workspace for version control and subsequent deployment to Production. + +### Parameters (Widgets) + +| Parameter | Required | Default | Description | +|-----------|----------|---------|-------------| +| `space_id` | **Yes** | `""` | The Genie Space ID to export | +| `output_file` | Yes | `../genie_definition/genie_space_dev.json` | Path where the exported JSON will be saved | + +### Workflow + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ 1. Validate Parameters │ +│ └─ Ensure space_id is provided │ +├─────────────────────────────────────────────────────────────────────┤ +│ 2. Initialize Authentication │ +│ └─ Get workspace URL and PAT token from notebook context │ +├─────────────────────────────────────────────────────────────────────┤ +│ 3. Call Get Space API │ +│ └─ GET /api/2.0/genie/spaces/{space_id}?include_serialized_space │ +├─────────────────────────────────────────────────────────────────────┤ +│ 4. Extract Serialized Space │ +│ └─ Parse JSON from serialized_space field │ +├─────────────────────────────────────────────────────────────────────┤ +│ 5. Save to File │ +│ └─ Write formatted JSON to output_file │ +├─────────────────────────────────────────────────────────────────────┤ +│ 6. Return Output │ +│ └─ Return status, space_id, title, output_file via dbutils.exit │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### Code Sections + +#### 1. Widget Parameters + +```python +dbutils.widgets.text("space_id", "", "Space ID to export (required)") +dbutils.widgets.text("output_file", "../genie_definition/genie_space_dev.json", "Output JSON file path") +``` + +#### 2. Parameter Validation + +```python +SPACE_ID = dbutils.widgets.get("space_id") +if not SPACE_ID: + raise ValueError("space_id parameter is required.") +``` + +#### 3. Authentication + +```python +w = WorkspaceClient() +workspace_url = w.config.host +pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get() +``` + +The notebook uses the current notebook's authentication context to obtain: +- **workspace_url**: The Databricks workspace URL +- **pat_token**: Personal Access Token for API calls + +#### 4. API Call + +```python +response = requests.get( + f"{workspace_url}/api/2.0/genie/spaces/{SPACE_ID}", + headers=headers, + params={"include_serialized_space": "true"} +) +``` + +The `include_serialized_space=true` parameter is critical - it returns the full space configuration. + +### Output Format + +The notebook returns a JSON object via `dbutils.notebook.exit()`: + +```json +{ + "status": "exported", + "space_id": "01f0fd2cfa1c16c185ec2ee3b4ea29d7", # your Genie space ID + "title": "My Genie Space", + "output_file": "../genie_definition/genie_space_dev.json" +} +``` + +### Error Handling + +| Error | Cause | Solution | +|-------|-------|----------| +| `ValueError: space_id parameter is required` | Missing space_id | Provide the space_id parameter | +| `requests.HTTPError` | API error (404, 403, etc.) | Check space_id and permissions | + +--- + +## deploy_genie_space.py + +### Purpose + +Deploys a Genie space to a Databricks workspace. Can either: +- **Create** a new Genie space (if `space_id` is empty) +- **Update** an existing Genie space (if `space_id` is provided) + +Optionally performs **catalog/schema replacement** to transform Dev references to Prod references. + +### Parameters (Widgets) + +| Parameter | Required | Default | Description | +|-----------|----------|---------|-------------| +| `space_id` | No | `""` | Target Space ID. Empty = create new, filled = update | +| `input_file` | **Yes** | `../genie_definition/genie_space_dev.json` | Path to the source JSON file | +| `output_file` | No | Auto-generated | Path for the transformed JSON (Prod version) | +| `warehouse_id` | **Yes*** | `""` | SQL Warehouse ID (*required for create) | +| `title` | **Yes*** | `""` | Space title (*required for create) | +| `source_catalog` | No | `""` | Source catalog name to replace | +| `target_catalog` | No | `""` | Target catalog name | +| `source_schema` | No | `""` | Source schema name to replace | +| `target_schema` | No | `""` | Target schema name | + +### Workflow + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ 1. Parse Parameters │ +│ └─ Determine CREATE vs UPDATE mode based on space_id │ +├─────────────────────────────────────────────────────────────────────┤ +│ 2. Validate Required Parameters │ +│ └─ For CREATE: warehouse_id and title required │ +├─────────────────────────────────────────────────────────────────────┤ +│ 3. Load Input JSON │ +│ └─ Read the exported Genie space definition │ +├─────────────────────────────────────────────────────────────────────┤ +│ 4. Apply Catalog/Schema Replacement (if configured) │ +│ └─ Transform all Unity Catalog references │ +├─────────────────────────────────────────────────────────────────────┤ +│ 5. Save Transformed JSON (optional) │ +│ └─ Write Prod version for audit trail │ +├─────────────────────────────────────────────────────────────────────┤ +│ 6. Deploy to Workspace │ +│ └─ POST (create) or PATCH (update) via Genie API │ +├─────────────────────────────────────────────────────────────────────┤ +│ 7. Return Output │ +│ └─ Return status, space_id, title via dbutils.exit │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### Key Functions + +#### `replace_catalog_schema(text, source_catalog, target_catalog, source_schema, target_schema)` + +Replaces catalog and schema names in a text string. Handles both formats: + +```python +# Input: "SELECT * FROM main_th.schema_dev.customers" +# Output: "SELECT * FROM main_prod.schema_prod.customers" + +# Input: "SELECT * FROM `main_th`.`schema_dev`.`customers`" +# Output: "SELECT * FROM `main_prod`.`schema_prod`.`customers`" +``` + +**Parameters:** +| Parameter | Type | Description | +|-----------|------|-------------| +| `text` | str | The text to search and replace in | +| `source_catalog` | str | The catalog name to find | +| `target_catalog` | str | The catalog name to replace with | +| `source_schema` | str (optional) | The schema name to find | +| `target_schema` | str (optional) | The schema name to replace with | + +**Returns:** `str` - The text with replacements applied + +**Regex Patterns Used:** +```python +# Backtick-quoted format +rf'`{re.escape(source_catalog)}`\.`{re.escape(source_schema)}`\.' + +# Plain format +rf'\b{re.escape(source_catalog)}\.{re.escape(source_schema)}\.' +``` + +#### `update_genie_space_catalog(data, source_catalog, target_catalog, source_schema, target_schema)` + +Updates all catalog/schema references in a Genie space JSON structure. + +**Parameters:** +| Parameter | Type | Description | +|-----------|------|-------------| +| `data` | dict | The Genie space JSON as a Python dict | +| `source_catalog` | str | The catalog name to find | +| `target_catalog` | str | The catalog name to replace with | +| `source_schema` | str (optional) | The schema name to find | +| `target_schema` | str (optional) | The schema name to replace with | + +**Returns:** `Tuple[dict, int]` - Updated data and count of replacements made + +**JSON Paths Updated:** +| Path | Description | +|------|-------------| +| `data_sources.tables[].identifier` | Table identifiers | +| `data_sources.metric_views[].identifier` | Metric view identifiers | +| `instructions.example_question_sqls[].sql[]` | Example SQL queries | +| `benchmarks.questions[].answer[].content[]` | Benchmark answer content | + +### Operation Modes + +#### CREATE Mode (space_id is empty) + +```python +payload = { + "serialized_space": genie_space_json_str, + "warehouse_id": WAREHOUSE_ID, + "title": TITLE +} + +response = requests.post( + f"{workspace_url}/api/2.0/genie/spaces", + headers=headers, + data=json.dumps(payload) +) +``` + +**Requirements:** +- `warehouse_id` is **required** +- `title` is **required** + +**Output includes the new space_id** - save this for future updates! + +#### UPDATE Mode (space_id is provided) + +```python +payload = { + "serialized_space": genie_space_json_str +} +# Optional: title, warehouse_id overrides + +response = requests.patch( + f"{workspace_url}/api/2.0/genie/spaces/{SPACE_ID}", + headers=headers, + data=json.dumps(payload) +) +``` + +### Output Format + +The notebook returns a JSON object via `dbutils.notebook.exit()`: + +**For CREATE:** +```json +{ + "status": "created", + "space_id": "01f0e034e6cb118695218a38adc4176d", # your Genie space ID + "title": "My Genie Space Prod" +} +``` + +**For UPDATE:** +```json +{ + "status": "updated", + "space_id": "01f0e034e6cb118695218a38adc4176d", # your Genie space ID + "title": "My Genie Space Prod" +} +``` + +### Error Handling + +| Error | Cause | Solution | +|-------|-------|----------| +| `ValueError: warehouse_id is required` | Creating without warehouse_id | Provide warehouse_id parameter | +| `ValueError: title is required` | Creating without title | Provide title parameter | +| `requests.HTTPError: 404` | Space not found (update mode) | Verify space_id is correct | +| `requests.HTTPError: 403` | Permission denied | Check workspace permissions | + +--- + +## Genie Space JSON Structure + +The exported Genie space JSON follows this structure: + +```json +{ + "version": 2, + "config": { + "sample_questions": [ + { + "id": "unique-id", + "question": ["Question text"] + } + ] + }, + "data_sources": { + "tables": [ + { + "identifier": "catalog.schema.table_name", + "column_configs": [ + { + "column_name": "column_name", + "enable_format_assistance": true, + "enable_entity_matching": true + } + ] + } + ], + "metric_views": [ + { + "identifier": "catalog.schema.metric_view_name" + } + ] + }, + "instructions": { + "text_instructions": [ + { + "id": "unique-id", + "content": ["Instruction text..."] + } + ], + "example_question_sqls": [ + { + "id": "unique-id", + "question": ["Question text"], + "sql": ["SELECT...", "FROM...", "WHERE..."] + } + ] + }, + "benchmarks": { + "questions": [ + { + "id": "unique-id", + "question": ["Question text"], + "answer": [ + { + "format": "SQL", + "content": ["SELECT...", "FROM...", "WHERE..."] + } + ] + } + ] + } +} +``` + +### Key Fields + +| Field | Description | Catalog Replacement | +|-------|-------------|---------------------| +| `data_sources.tables[].identifier` | Unity Catalog table reference | **Yes** | +| `data_sources.metric_views[].identifier` | Metric view reference | **Yes** | +| `instructions.example_question_sqls[].sql` | Example SQL queries | **Yes** | +| `benchmarks.questions[].answer[].content` | Benchmark answers | **Yes** | +| `config.sample_questions` | UI sample questions | No | +| `instructions.text_instructions` | Natural language instructions | No | + +--- + +## API Reference + +### Get Space (Export) + +``` +GET /api/2.0/genie/spaces/{space_id} +``` + +**Query Parameters:** +| Parameter | Type | Required | Description | +|-----------|------|----------|-------------| +| `include_serialized_space` | boolean | Yes | Set to `true` to get full configuration | + +**Response:** +```json +{ + "space_id": "string", + "title": "string", + "description": "string", + "warehouse_id": "string", + "serialized_space": "string (JSON)" +} +``` + +**Documentation:** [Get Space API](https://docs.databricks.com/api/workspace/genie/getspace) + +### Create Space + +``` +POST /api/2.0/genie/spaces +``` + +**Request Body:** +```json +{ + "serialized_space": "string (JSON)", + "warehouse_id": "string (required)", + "title": "string (required)" +} +``` + +**Response:** +```json +{ + "space_id": "string", + "title": "string" +} +``` + +**Documentation:** [Create Space API](https://docs.databricks.com/api/workspace/genie/createspace) + +### Update Space + +``` +PATCH /api/2.0/genie/spaces/{space_id} +``` + +**Request Body:** +```json +{ + "serialized_space": "string (JSON)", + "warehouse_id": "string (optional)", + "title": "string (optional)" +} +``` + +**Response:** +```json +{ + "space_id": "string", + "title": "string" +} +``` + +**Documentation:** [Update Space API](https://docs.databricks.com/api/workspace/genie/updatespace) + +--- + +## Authentication + +Both notebooks use the Databricks notebook context for authentication: + +```python +from databricks.sdk import WorkspaceClient + +w = WorkspaceClient() +workspace_url = w.config.host + +# Get PAT token from notebook context +pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get() +``` + +This approach: +- Uses the same authentication as the notebook +- Works in Databricks Jobs +- No need to manage separate credentials +- Automatically uses the correct workspace URL diff --git a/data-warehousing/genie-cicd/src/deploy_genie_space.ipynb b/data-warehousing/genie-cicd/src/deploy_genie_space.ipynb new file mode 100644 index 0000000..f6dc480 --- /dev/null +++ b/data-warehousing/genie-cicd/src/deploy_genie_space.ipynb @@ -0,0 +1,348 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "b11200e3-25b6-4733-944a-ce96c848af34", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "!pip install databricks-sdk -U\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "c97ced34-2536-48d6-94d8-aeaf02b300b8", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import json\n", + "import re\n", + "import requests\n", + "import os\n", + "from databricks.sdk import WorkspaceClient\n", + "from typing import Optional, Tuple\n", + "\n", + "# ========================================\n", + "# Widget Parameters (for Job/CI-CD integration)\n", + "# ========================================\n", + "dbutils.widgets.text(\"space_id\", \"\", \"Space ID (empty = create new)\")\n", + "dbutils.widgets.text(\"input_file\", \"./genie_definition/genie_space.json\", \"Input JSON File (Dev)\")\n", + "dbutils.widgets.text(\"output_file\", \"\", \"Output JSON File (Prod) - optional\")\n", + "dbutils.widgets.text(\"warehouse_id\", \"\", \"Warehouse ID (required)\")\n", + "dbutils.widgets.text(\"title\", \"\", \"Space Title\")\n", + "dbutils.widgets.text(\"source_catalog\", \"\", \"Source Catalog\")\n", + "dbutils.widgets.text(\"target_catalog\", \"\", \"Target Catalog\")\n", + "dbutils.widgets.text(\"source_schema\", \"\", \"Source Schema\")\n", + "dbutils.widgets.text(\"target_schema\", \"\", \"Target Schema\")\n", + "\n", + "# ========================================\n", + "# Get parameter values\n", + "# ========================================\n", + "SPACE_ID = dbutils.widgets.get(\"space_id\") or None\n", + "INPUT_FILE = dbutils.widgets.get(\"input_file\")\n", + "OUTPUT_FILE = dbutils.widgets.get(\"output_file\") or None\n", + "WAREHOUSE_ID = dbutils.widgets.get(\"warehouse_id\") or None\n", + "TITLE = dbutils.widgets.get(\"title\") or None\n", + "SOURCE_CATALOG = dbutils.widgets.get(\"source_catalog\") or None\n", + "TARGET_CATALOG = dbutils.widgets.get(\"target_catalog\") or None\n", + "SOURCE_SCHEMA = dbutils.widgets.get(\"source_schema\") or None\n", + "TARGET_SCHEMA = dbutils.widgets.get(\"target_schema\") or None\n", + "\n", + "# Generate default output file name if not provided\n", + "if not OUTPUT_FILE and SOURCE_CATALOG and TARGET_CATALOG:\n", + " base, ext = os.path.splitext(INPUT_FILE)\n", + " OUTPUT_FILE = f\"{base}_prod{ext}\"\n", + "\n", + "# Determine operation mode\n", + "OPERATION = \"UPDATE\" if SPACE_ID else \"CREATE\"\n", + "\n", + "# Validate required parameters\n", + "if OPERATION == \"CREATE\":\n", + " if not WAREHOUSE_ID:\n", + " raise ValueError(\"warehouse_id is required when creating a new Genie space.\")\n", + " if not TITLE:\n", + " raise ValueError(\"title is required when creating a new Genie space.\")\n", + "\n", + "print(f\"\uD83D\uDE80 Operation Mode: {OPERATION}\")\n", + "if SPACE_ID:\n", + " print(f\" Space ID: {SPACE_ID}\")\n", + "\n", + "# ========================================\n", + "# Catalog/Schema Replacement Functions\n", + "# ========================================\n", + "def replace_catalog_schema(text: str, \n", + " source_catalog: str, \n", + " target_catalog: str,\n", + " source_schema: Optional[str] = None,\n", + " target_schema: Optional[str] = None) -> str:\n", + " \"\"\"\n", + " Replace catalog and schema names in a text string.\n", + " Handles both formats:\n", + " - Without backticks: catalog.schema.table\n", + " - With backticks: `catalog`.`schema`.`table`\n", + " \"\"\"\n", + " result = text\n", + " \n", + " if source_schema and target_schema:\n", + " # Replace backtick-quoted format: `catalog`.`schema`.\n", + " pattern_backticks = rf'`{re.escape(source_catalog)}`\\.`{re.escape(source_schema)}`\\.'\n", + " replacement_backticks = f'`{target_catalog}`.`{target_schema}`.'\n", + " result = re.sub(pattern_backticks, replacement_backticks, result)\n", + " \n", + " # Replace non-quoted format: catalog.schema.\n", + " pattern_plain = rf'\\b{re.escape(source_catalog)}\\.{re.escape(source_schema)}\\.'\n", + " replacement_plain = f'{target_catalog}.{target_schema}.'\n", + " result = re.sub(pattern_plain, replacement_plain, result)\n", + " else:\n", + " # Replace backtick-quoted format: `catalog`.\n", + " pattern_backticks = rf'`{re.escape(source_catalog)}`\\.'\n", + " replacement_backticks = f'`{target_catalog}`.'\n", + " result = re.sub(pattern_backticks, replacement_backticks, result)\n", + " \n", + " # Replace non-quoted format: catalog.\n", + " pattern_plain = rf'\\b{re.escape(source_catalog)}\\.'\n", + " replacement_plain = f'{target_catalog}.'\n", + " result = re.sub(pattern_plain, replacement_plain, result)\n", + " \n", + " return result\n", + "\n", + "\n", + "def update_genie_space_catalog(data: dict,\n", + " source_catalog: str,\n", + " target_catalog: str,\n", + " source_schema: Optional[str] = None,\n", + " target_schema: Optional[str] = None) -> Tuple[dict, int]:\n", + " \"\"\"Update all catalog/schema references in a Genie space JSON structure.\"\"\"\n", + " updated_data = json.loads(json.dumps(data)) # Deep copy\n", + " updates_count = 0\n", + " \n", + " # Update data_sources.tables[].identifier\n", + " if 'data_sources' in updated_data and 'tables' in updated_data['data_sources']:\n", + " for table in updated_data['data_sources']['tables']:\n", + " if 'identifier' in table:\n", + " old_value = table['identifier']\n", + " new_value = replace_catalog_schema(\n", + " old_value, source_catalog, target_catalog, source_schema, target_schema\n", + " )\n", + " if old_value != new_value:\n", + " table['identifier'] = new_value\n", + " updates_count += 1\n", + " \n", + " # Update data_sources.metric_views[].identifier\n", + " if 'data_sources' in updated_data and 'metric_views' in updated_data['data_sources']:\n", + " for metric_view in updated_data['data_sources']['metric_views']:\n", + " if 'identifier' in metric_view:\n", + " old_value = metric_view['identifier']\n", + " new_value = replace_catalog_schema(\n", + " old_value, source_catalog, target_catalog, source_schema, target_schema\n", + " )\n", + " if old_value != new_value:\n", + " metric_view['identifier'] = new_value\n", + " updates_count += 1\n", + " \n", + " # Update instructions.example_question_sqls[].sql[]\n", + " if 'instructions' in updated_data and 'example_question_sqls' in updated_data['instructions']:\n", + " for example in updated_data['instructions']['example_question_sqls']:\n", + " if 'sql' in example:\n", + " for j, sql_line in enumerate(example['sql']):\n", + " old_value = sql_line\n", + " new_value = replace_catalog_schema(\n", + " old_value, source_catalog, target_catalog, source_schema, target_schema\n", + " )\n", + " if old_value != new_value:\n", + " example['sql'][j] = new_value\n", + " updates_count += 1\n", + " \n", + " # Update benchmarks.questions[].answer[].content[]\n", + " if 'benchmarks' in updated_data and 'questions' in updated_data['benchmarks']:\n", + " for question in updated_data['benchmarks']['questions']:\n", + " if 'answer' in question:\n", + " for answer in question['answer']:\n", + " if 'content' in answer:\n", + " for k, content_line in enumerate(answer['content']):\n", + " old_value = content_line\n", + " new_value = replace_catalog_schema(\n", + " old_value, source_catalog, target_catalog, source_schema, target_schema\n", + " )\n", + " if old_value != new_value:\n", + " answer['content'][k] = new_value\n", + " updates_count += 1\n", + " \n", + " return updated_data, updates_count\n", + "\n", + "\n", + "# ========================================\n", + "# Initialize client and get auth token\n", + "# ========================================\n", + "w = WorkspaceClient()\n", + "workspace_url = w.config.host\n", + "pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()\n", + "\n", + "headers = {\n", + " \"Authorization\": f\"Bearer {pat_token}\",\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "\n", + "# ========================================\n", + "# Load the original space definition (Dev)\n", + "# ========================================\n", + "with open(INPUT_FILE, 'r') as f:\n", + " genie_space_data = json.load(f)\n", + "\n", + "print(f\"\\n\uD83D\uDCC4 Loaded space definition from: {INPUT_FILE}\")\n", + "\n", + "# ========================================\n", + "# Apply catalog/schema replacement if configured\n", + "# ========================================\n", + "if SOURCE_CATALOG and TARGET_CATALOG:\n", + " source_display = SOURCE_CATALOG + (f\".{SOURCE_SCHEMA}\" if SOURCE_SCHEMA else \"\")\n", + " target_display = TARGET_CATALOG + (f\".{TARGET_SCHEMA}\" if TARGET_SCHEMA else \"\")\n", + " \n", + " print(f\"\\n\uD83D\uDD04 Replacing catalog/schema names:\")\n", + " print(f\" Source: {source_display}\")\n", + " print(f\" Target: {target_display}\")\n", + " \n", + " genie_space_data, updates_count = update_genie_space_catalog(\n", + " genie_space_data,\n", + " source_catalog=SOURCE_CATALOG,\n", + " target_catalog=TARGET_CATALOG,\n", + " source_schema=SOURCE_SCHEMA,\n", + " target_schema=TARGET_SCHEMA\n", + " )\n", + " print(f\" ✓ Made {updates_count} replacements\")\n", + " \n", + " # Save the modified JSON to the output file (Prod version)\n", + " if OUTPUT_FILE:\n", + " with open(OUTPUT_FILE, 'w') as f:\n", + " json.dump(genie_space_data, f, indent=2)\n", + " print(f\"\\n\uD83D\uDCBE Saved Prod version to: {OUTPUT_FILE}\")\n", + " print(f\" (Original Dev version preserved at: {INPUT_FILE})\")\n", + "\n", + "# Convert to JSON string for API\n", + "genie_space_json_str = json.dumps(genie_space_data)\n", + "\n", + "# ========================================\n", + "# Deploy: Create or Update\n", + "# ========================================\n", + "if OPERATION == \"CREATE\":\n", + " # CREATE new Genie space\n", + " payload = {\n", + " \"serialized_space\": genie_space_json_str,\n", + " \"warehouse_id\": WAREHOUSE_ID,\n", + " \"title\": TITLE\n", + " }\n", + " \n", + " print(f\"\\n\uD83D\uDCE4 Creating new Genie space...\")\n", + " response = requests.post(\n", + " f\"{workspace_url}/api/2.0/genie/spaces\",\n", + " headers=headers,\n", + " data=json.dumps(payload)\n", + " )\n", + " \n", + " response.raise_for_status()\n", + " space_info = response.json()\n", + " \n", + " print(f\"\\n✅ Successfully CREATED Genie space:\")\n", + " print(f\" - Space ID: {space_info['space_id']}\")\n", + " print(f\" - Title: {space_info['title']}\")\n", + " \n", + " # Important: Output the new space_id for future runs\n", + " print(f\"\\n⚠️ IMPORTANT: Save this Space ID for future updates:\")\n", + " print(f\" space_id = \\\"{space_info['space_id']}\\\"\")\n", + " \n", + " # Set the space_id as notebook output for downstream tasks\n", + " dbutils.notebook.exit(json.dumps({\n", + " \"status\": \"created\",\n", + " \"space_id\": space_info['space_id'],\n", + " \"title\": space_info['title']\n", + " }))\n", + "\n", + "else:\n", + " # UPDATE existing Genie space\n", + " payload = {\n", + " \"serialized_space\": genie_space_json_str\n", + " }\n", + " \n", + " # Add optional overrides\n", + " if TITLE:\n", + " payload[\"title\"] = TITLE\n", + " if WAREHOUSE_ID:\n", + " payload[\"warehouse_id\"] = WAREHOUSE_ID\n", + " \n", + " print(f\"\\n\uD83D\uDCE4 Updating existing Genie space...\")\n", + " response = requests.patch(\n", + " f\"{workspace_url}/api/2.0/genie/spaces/{SPACE_ID}\",\n", + " headers=headers,\n", + " data=json.dumps(payload)\n", + " )\n", + " \n", + " response.raise_for_status()\n", + " space_info = response.json()\n", + " \n", + " print(f\"\\n✅ Successfully UPDATED Genie space:\")\n", + " print(f\" - Space ID: {space_info.get('space_id', SPACE_ID)}\")\n", + " print(f\" - Title: {space_info.get('title', 'N/A')}\")\n", + " \n", + " # Set output for downstream tasks\n", + " dbutils.notebook.exit(json.dumps({\n", + " \"status\": \"updated\",\n", + " \"space_id\": space_info.get('space_id', SPACE_ID),\n", + " \"title\": space_info.get('title', 'N/A')\n", + " }))\n", + "\n", + "# ========================================\n", + "# Summary\n", + "# ========================================\n", + "print(\"\\n\uD83C\uDF89 Deployment complete!\")\n", + "\n", + "if SOURCE_CATALOG and TARGET_CATALOG and OUTPUT_FILE:\n", + " print(\"\\n\" + \"=\"*50)\n", + " print(\"\uD83D\uDCC1 Files:\")\n", + " print(f\" Dev version: {INPUT_FILE}\")\n", + " print(f\" Prod version: {OUTPUT_FILE}\")\n", + " print(\"=\"*50)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "dbe_0c235d96-4bc7-4fb5-b118-17fd1dad0124", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "pythonIndentUnit": 2 + }, + "notebookName": "deploy_genie_space", + "widgets": {} + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/data-warehousing/genie-cicd/src/export_genie_definition.ipynb b/data-warehousing/genie-cicd/src/export_genie_definition.ipynb new file mode 100644 index 0000000..5349d3a --- /dev/null +++ b/data-warehousing/genie-cicd/src/export_genie_definition.ipynb @@ -0,0 +1,195 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "357d7b80-3f75-41c6-a4b0-37ad40ac3963", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "!pip install databricks-sdk -U\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "08e19cbb-4e9d-459e-8f25-b43a088725e9", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import json\n", + "import requests\n", + "from databricks.sdk import WorkspaceClient\n", + "\n", + "# ========================================\n", + "# Widget Parameters (for Job/CI-CD integration)\n", + "# ========================================\n", + "dbutils.widgets.text(\"space_id\", \"\", \"Space ID to export (required)\")\n", + "dbutils.widgets.text(\"output_file\", \"../genie_definition/genie_space.json\", \"Output JSON file path\")\n", + "\n", + "# ========================================\n", + "# Get parameter values\n", + "# ========================================\n", + "SPACE_ID = dbutils.widgets.get(\"space_id\")\n", + "OUTPUT_FILE = dbutils.widgets.get(\"output_file\")\n", + "\n", + "# Validate required parameters\n", + "if not SPACE_ID:\n", + " raise ValueError(\"space_id parameter is required. Please provide the Genie Space ID to export.\")\n", + "\n", + "print(f\"🚀 Exporting Genie Space: {SPACE_ID}\")\n", + "\n", + "# ========================================\n", + "# Initialize client and get auth token\n", + "# ========================================\n", + "w = WorkspaceClient()\n", + "workspace_url = w.config.host\n", + "pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()\n", + "\n", + "headers = {\n", + " \"Authorization\": f\"Bearer {pat_token}\",\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "\n", + "# ========================================\n", + "# Call Get Space API\n", + "# ========================================\n", + "response = requests.get(\n", + " f\"{workspace_url}/api/2.0/genie/spaces/{SPACE_ID}\",\n", + " headers=headers,\n", + " params={\"include_serialized_space\": \"true\"}\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "space_definition = response.json()\n", + "\n", + "print(f\"\\n✅ Successfully retrieved Genie space:\")\n", + "print(f\" - Title: {space_definition.get('title', 'N/A')}\")\n", + "print(f\" - Space ID: {space_definition.get('space_id', SPACE_ID)}\")\n", + "\n", + "# ========================================\n", + "# Extract and save the serialized space\n", + "# ========================================\n", + "# Parse the serialized space JSON string\n", + "serialized_space = json.loads(space_definition[\"serialized_space\"])\n", + " \n", + "# Save to file with pretty formatting\n", + "with open(OUTPUT_FILE, 'w') as f:\n", + " json.dump(serialized_space, f, indent=2)\n", + " \n", + "print(f\"\\n💾 Exported to: {OUTPUT_FILE}\")\n", + "\n", + "# ========================================\n", + "# Output for downstream tasks\n", + "# ========================================\n", + "print(\"\\n🎉 Export complete!\")\n", + "\n", + "# Return output for job chaining\n", + "dbutils.notebook.exit(json.dumps({\n", + " \"status\": \"exported\",\n", + " \"space_id\": SPACE_ID,\n", + " \"title\": space_definition.get('title', 'N/A'),\n", + " \"output_file\": OUTPUT_FILE\n", + "}))" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "dbe_0c235d96-4bc7-4fb5-b118-17fd1dad0124", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "pythonIndentUnit": 2 + }, + "notebookName": "export_genie_definition", + "widgets": { + "output_file": { + "currentValue": "../genie_definition/genie_space.json", + "nuid": "8e223e36-5e14-4d16-ba66-f86ed76f6ac1", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "./genie_definition/genie_space.json", + "label": "Output JSON file path", + "name": "output_file", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "./genie_definition/genie_space.json", + "label": "Output JSON file path", + "name": "output_file", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "space_id": { + "currentValue": "01f0fd2cfa1c16c185ec2ee3b4ea29d7", + "nuid": "4227c54f-b5be-4db0-8eaf-4537f8f9761d", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "", + "label": "Space ID to export (required)", + "name": "space_id", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "", + "label": "Space ID to export (required)", + "name": "space_id", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data-warehousing/genie-room-creation/Create Genie Space with Widgets.ipynb b/data-warehousing/genie-room-creation/Create Genie Space with Widgets.ipynb new file mode 100644 index 0000000..07b995e --- /dev/null +++ b/data-warehousing/genie-room-creation/Create Genie Space with Widgets.ipynb @@ -0,0 +1,731 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "85d0f4e6-b0f5-45e2-b573-1a8eefa381bf", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "# Create Genie Space Programmatically with Databricks SDK & Widgets\n", + "\n", + "This notebook allows you to create a Genie space programmatically using the **Databricks SDK** and widgets for easy configuration. Perfect for automating Genie space creation across different environments!\n", + "\n", + "- Databricks SDK Documentation: [https://docs.databricks.com/dev-tools/sdk-python.html](https://docs.databricks.com/dev-tools/sdk-python.html)\n", + "- Genie API Reference: [https://docs.databricks.com/api/workspace/genie/createspace](https://docs.databricks.com/api/workspace/genie/createspace)\n", + "- More about Genie: [https://docs.databricks.com/aws/en/genie/conversation-api](https://docs.databricks.com/aws/en/genie/conversation-api)\n", + "\n", + "### Benefits of using the SDK:\n", + "- **Cleaner code** - No need to manage HTTP requests manually\n", + "- **Automatic authentication** - Uses your notebook's authentication context\n", + "- **Type safety** - Better IDE support and error checking\n", + "- **Built-in retries** - Handles transient errors automatically\n", + "- **Easy parameterization** - Use widgets for different environments\n", + "\n", + "### Prerequisites:\n", + "Make sure you have the latest Databricks SDK installed (run the cell below if needed)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "7e08205f-5459-4500-b94e-81d284d88e14", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Install or upgrade the Databricks SDK to the latest version\n", + "# Uncomment and run this cell if you need to install/upgrade the SDK\n", + "\n", + "%pip install --upgrade databricks-sdk\n", + "dbutils.library.restartPython() # Restart Python to use the new version\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "641e4f75-92f2-46b0-bd7a-7e1fb902aaec", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Create Databricks Widgets for configuration\n", + "dbutils.widgets.text(\"space_title\", \"My New Genie Space\", \"1. Space Title\")\n", + "dbutils.widgets.text(\"space_description\", \"\", \"2. Space Description (Optional)\")\n", + "dbutils.widgets.text(\"warehouse_id\", \"\", \"3. Warehouse ID\")\n", + "dbutils.widgets.text(\"table_identifiers\", \"\", \"4. Tables (Optional - comma separated)\")\n", + "dbutils.widgets.dropdown(\"include_sample_instructions\", \"Yes\", [\"Yes\", \"No\"], \"5. Include Sample Instructions\")\n", + "\n", + "print(\"✓ Widgets created successfully!\")\n", + "print(\"\\nNote: The SDK automatically uses your notebook's authentication context.\")\n", + "print(\"No need to provide workspace URL or credentials separately.\")\n", + "print(\"\\n💡 Tip: For tables, use format: catalog.schema.table\")\n", + "print(\" Example: main.sales.orders, main.sales.customers\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "f1f9c0a2-f702-42f8-ad04-dc16588361c4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Authentication with Databricks SDK\n", + "\n", + "**Good News!** When using the Databricks SDK in a notebook, authentication is **automatic**. The SDK uses your notebook's execution context, so you don't need to:\n", + "- ❌ Manage Personal Access Tokens (PATs)\n", + "- ❌ Store secrets in secret scopes\n", + "- ❌ Handle authentication headers manually\n", + "\n", + "The SDK automatically inherits your workspace credentials! 🎉\n", + "\n", + "#### (Optional) For Advanced Use Cases\n", + "\n", + "If you need to authenticate to a **different workspace** or use **custom credentials**, you can still do that:\n", + "\n", + "```python\n", + "from databricks.sdk import WorkspaceClient\n", + "\n", + "# Option 1: Use a specific PAT\n", + "w = WorkspaceClient(\n", + " host=\"https://your-workspace.cloud.databricks.com\",\n", + " token=dbutils.secrets.get(scope=\"my-scope\", key=\"my-key\")\n", + ")\n", + "\n", + "# Option 2: Use environment variables\n", + "# Set DATABRICKS_HOST and DATABRICKS_TOKEN in your environment\n", + "w = WorkspaceClient()\n", + "```\n", + "\n", + "But for most use cases, just use `WorkspaceClient()` without any parameters!\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "8803479d-6a26-4678-ab35-1975cad8ea7d", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### How to Find Your Warehouse ID\n", + "\n", + "Your **Warehouse ID** is the unique identifier for your SQL Warehouse (compute resource).\n", + "\n", + "#### Method 1: Using the Databricks UI\n", + "\n", + "1. Go to **SQL Warehouses** in your Databricks workspace sidebar\n", + "2. Click on the warehouse you want to use\n", + "3. Look at the URL - the warehouse ID is at the end:\n", + " - URL format: `https:///sql/warehouses/`\n", + " - Or check the **Connection Details** tab\n", + "\n", + "#### Method 2: List Warehouses Programmatically\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "680830ba-e0fd-4e88-89f9-e13e73f81618", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# List all SQL Warehouses and their IDs\n", + "from databricks.sdk import WorkspaceClient\n", + "\n", + "w = WorkspaceClient()\n", + "warehouses = w.warehouses.list()\n", + "\n", + "print(\"Available SQL Warehouses:\")\n", + "print(\"-\" * 80)\n", + "for wh in warehouses:\n", + " print(f\"Name: {wh.name}\")\n", + " print(f\"ID: {wh.id}\")\n", + " print(f\"State: {wh.state}\")\n", + " print(\"-\" * 80)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "22c9d8cd-08b6-4ff4-8229-02e0f7e17d0c", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "from databricks.sdk import WorkspaceClient\n", + "import json\n", + "\n", + "# Initialize the Databricks SDK client\n", + "# The SDK automatically uses the notebook's authentication context\n", + "w = WorkspaceClient()\n", + "\n", + "# Get widget values\n", + "space_title = dbutils.widgets.get(\"space_title\")\n", + "space_description = dbutils.widgets.get(\"space_description\")\n", + "warehouse_id = dbutils.widgets.get(\"warehouse_id\")\n", + "table_identifiers = dbutils.widgets.get(\"table_identifiers\")\n", + "include_instructions = dbutils.widgets.get(\"include_sample_instructions\")\n", + "\n", + "# Validate required fields\n", + "if not space_title:\n", + " raise ValueError(\"Space Title is required\")\n", + "if not warehouse_id:\n", + " raise ValueError(\"Warehouse ID is required\")\n", + "\n", + "print(\"✓ Configuration validated successfully\")\n", + "print(f\"✓ Space Title: {space_title}\")\n", + "print(f\"✓ Warehouse ID: {warehouse_id}\")\n", + "if table_identifiers:\n", + " tables_list = [t.strip() for t in table_identifiers.split(\",\") if t.strip()]\n", + " print(f\"✓ Tables: {len(tables_list)} table(s) specified\")\n", + " for table in tables_list:\n", + " print(f\" - {table}\")\n", + "else:\n", + " print(f\"ℹ️ No tables specified\")\n", + "print(f\"✓ SDK Client initialized\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "300d356a-2a95-4aba-a0fd-6c08b127b7ca", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Build the Genie Space Configuration\n", + "\n", + "Now we'll construct the serialized space configuration. The structure must match the API format:\n", + "\n", + "```json\n", + "{\n", + " \"version\": 1,\n", + " \"config\": {\n", + " \"instructions\": [...],\n", + " \"sample_questions\": [...]\n", + " },\n", + " \"data_sources\": {\n", + " \"tables\": [...]\n", + " }\n", + "}\n", + "```\n", + "\n", + "Key points:\n", + "- `version` is at the **root level** (not inside a nested object)\n", + "- `version` must be an **integer 1**, not a string\n", + "- The structure has three main keys: `version`, `config`, and `data_sources`\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "2d6ec309-df81-45b2-b13b-cbfb7ec3a075", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Build the serialized space configuration\n", + "# Based on the actual API structure (version at root level, not inside genie_config)\n", + "serialized_space_config = {\n", + " \"version\": 1,\n", + " \"config\": {},\n", + " \"data_sources\": {}\n", + "}\n", + "\n", + "# Add sample instructions if requested\n", + "if include_instructions == \"Yes\":\n", + " serialized_space_config[\"config\"][\"instructions\"] = [\n", + " \"Always provide clear and concise answers\",\n", + " \"When showing data, include relevant context\",\n", + " \"Explain any assumptions made in your analysis\"\n", + " ]\n", + " print(\"✓ Sample instructions included\")\n", + "else:\n", + " print(\"ℹ️ No sample instructions - using minimal configuration\")\n", + "\n", + "# Convert to JSON string (Genie API expects serialized_space as a JSON string)\n", + "serialized_space = json.dumps(serialized_space_config)\n", + "\n", + "print(\"\\n📋 Serialized Space Configuration:\")\n", + "print(json.dumps(serialized_space_config, indent=2))\n", + "print(\"\\n📝 Serialized as string:\")\n", + "print(serialized_space)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c3f07f47-af9c-42e4-8256-418c0ecbe1a2", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Create the Genie Space\n", + "\n", + "Now let's use the SDK to create the new Genie space with our configuration.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9e5a15c3-a452-479d-8d1b-43a121d9e5e1", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "print(\"🚀 Creating Genie Space using Databricks SDK...\\n\")\n", + "\n", + "try:\n", + " # Create the Genie Space using the SDK\n", + " # The SDK handles authentication, retries, and error handling automatically\n", + " # Note: The parameter is 'title' not 'display_name'\n", + " created_space = w.genie.create_space(\n", + " title=space_title,\n", + " description=space_description if space_description else None,\n", + " warehouse_id=warehouse_id,\n", + " serialized_space=serialized_space\n", + " )\n", + " \n", + " # Success! Display the results\n", + " print(\"✅ Genie Space created successfully!\\n\")\n", + " print(\"=\" * 60)\n", + " print(f\"Space ID: {created_space.space_id}\")\n", + " print(f\"Title: {created_space.title}\")\n", + " print(f\"Warehouse ID: {created_space.warehouse_id}\")\n", + " if created_space.description:\n", + " print(f\"Description: {created_space.description}\")\n", + " if hasattr(created_space, 'created_timestamp'):\n", + " print(f\"Created At: {created_space.created_timestamp}\")\n", + " if hasattr(created_space, 'updated_timestamp'):\n", + " print(f\"Updated At: {created_space.updated_timestamp}\")\n", + " print(\"=\" * 60)\n", + " \n", + " # Store the space_id for future use in workflow task values\n", + " if created_space.space_id:\n", + " try:\n", + " dbutils.jobs.taskValues.set(key=\"genie_space_id\", value=created_space.space_id)\n", + " print(f\"\\n✓ Space ID saved to task values: {created_space.space_id}\")\n", + " except:\n", + " # Task values might not be available if not running in a job\n", + " print(f\"\\nℹ️ Space ID: {created_space.space_id} (task values not available in interactive mode)\")\n", + " \n", + " # Display the full space object for reference\n", + " print(f\"\\n📄 Full Space Object:\")\n", + " print(f\"{created_space}\")\n", + " \n", + "except Exception as e:\n", + " print(f\"❌ Error creating Genie Space:\")\n", + " print(f\"Error: {str(e)}\")\n", + " raise\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "3605a1f8-3c58-4bf7-9f0a-2ba769a05f1c", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Advanced: Customize Data Sources and Sample Questions (Optional)\n", + "\n", + "You can create a more advanced configuration with specific tables and sample questions:\n", + "\n", + "```python\n", + "# Example with data sources and sample questions\n", + "advanced_config = {\n", + " \"version\": 1,\n", + " \"config\": {\n", + " \"instructions\": [\"Focus on sales metrics\", \"Compare period over period\"],\n", + " \"sample_questions\": [\n", + " {\n", + " \"id\": \"q1\",\n", + " \"question\": [\"Show total revenue by region\"]\n", + " },\n", + " {\n", + " \"id\": \"q2\",\n", + " \"question\": [\"What are the top 10 products by sales?\"]\n", + " }\n", + " ]\n", + " },\n", + " \"data_sources\": {\n", + " \"tables\": [\n", + " {\"identifier\": \"catalog.schema.sales_table\"},\n", + " {\"identifier\": \"catalog.schema.products_table\"}\n", + " ]\n", + " }\n", + "}\n", + "\n", + "# Use this config instead of the simple one above\n", + "# serialized_space = json.dumps(advanced_config)\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "e3ff7b41-582d-468a-a228-dae0285808a1", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Additional SDK Operations\n", + "\n", + "The Databricks SDK also supports other Genie operations like listing, getting, updating, and deleting spaces.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "3e2712b5-b197-4022-a026-41580095d46b", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# List all Genie spaces\n", + "all_spaces_response = w.genie.list_spaces()\n", + "all_spaces = all_spaces_response.spaces # Access the list attribute\n", + "\n", + "print(\"📋 All Genie Spaces in this workspace:\")\n", + "print(\"-\" * 80)\n", + "for space in all_spaces:\n", + " print(f\"Name: {space.title}\")\n", + " print(f\"Space ID: {space.space_id}\")\n", + " print(f\"Warehouse ID: {space.warehouse_id}\")\n", + " print(\"-\" * 80)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "cdc394cb-f07b-4404-902a-26f8fe8a7ad4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "### Clean Up Widgets (Optional)\n", + "\n", + "Run this cell to remove all widgets when you're done.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c07930ae-768d-425d-8aba-19d646c46155", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# Uncomment to remove all widgets\n", + "# dbutils.widgets.removeAll()\n", + "# print(\"All widgets removed\")\n" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": null, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "pythonIndentUnit": 4 + }, + "notebookName": "Create Genie Space with Widgets", + "widgets": { + "include_sample_instructions": { + "currentValue": "Yes", + "nuid": "1c3a9d0c-ef24-4807-9f8d-acffb1ad246d", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "Yes", + "label": "5. Include Sample Instructions", + "name": "include_sample_instructions", + "options": { + "choices": [ + "Yes", + "No" + ], + "fixedDomain": true, + "multiselect": false, + "widgetDisplayType": "Dropdown" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "Yes", + "label": "5. Include Sample Instructions", + "name": "include_sample_instructions", + "options": { + "autoCreated": null, + "choices": [ + "Yes", + "No" + ], + "widgetType": "dropdown" + }, + "widgetType": "dropdown" + } + }, + "space_description": { + "currentValue": "", + "nuid": "deb58081-6d4f-4a08-93b1-a44372aee743", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "", + "label": "2. Space Description (Optional)", + "name": "space_description", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "", + "label": "2. Space Description (Optional)", + "name": "space_description", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "space_title": { + "currentValue": "My New Genie Space", + "nuid": "4030dbbe-93e9-444a-8e01-0ce1ad5db41a", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "My New Genie Space", + "label": "1. Space Title", + "name": "space_title", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "My New Genie Space", + "label": "1. Space Title", + "name": "space_title", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "table_identifiers": { + "currentValue": "", + "nuid": "ca3932a1-b03c-4fde-9c0c-5f6ce859cc0a", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "", + "label": "4. Tables (Optional - comma separated)", + "name": "table_identifiers", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "", + "label": "4. Tables (Optional - comma separated)", + "name": "table_identifiers", + "options": { + "autoCreated": false, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "warehouse_id": { + "currentValue": "", + "nuid": "7ab5aa3a-d4e3-448d-9a68-59fd05661477", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "", + "label": "3. Warehouse ID", + "name": "warehouse_id", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "", + "label": "3. Warehouse ID", + "name": "warehouse_id", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From 71fd8049c5e33534471d4d0e0b48b48486efc265 Mon Sep 17 00:00:00 2001 From: Pedro Zanlorensi Date: Thu, 19 Mar 2026 09:51:18 -0300 Subject: [PATCH 2/2] improvements to the mvs demo --- .../dbrx-metric-views/0_IngestData.ipynb | 531 +++--- .../1_CreateMetricView.ipynb | 1159 ++++++------ .../dbrx-metric-views/2_QueryMetricView.ipynb | 717 ++++---- .../3_MaterializeMetricView.ipynb | 1572 ++++++++--------- data-warehousing/dbrx-metric-views/README.md | 98 +- .../figures/materialized_metric_view_ui.png | Bin 0 -> 174927 bytes data-warehousing/genie-cicd.zip | Bin 0 -> 32086 bytes 7 files changed, 2097 insertions(+), 1980 deletions(-) create mode 100644 data-warehousing/dbrx-metric-views/figures/materialized_metric_view_ui.png create mode 100644 data-warehousing/genie-cicd.zip diff --git a/data-warehousing/dbrx-metric-views/0_IngestData.ipynb b/data-warehousing/dbrx-metric-views/0_IngestData.ipynb index 6f43fc7..88aa5cd 100644 --- a/data-warehousing/dbrx-metric-views/0_IngestData.ipynb +++ b/data-warehousing/dbrx-metric-views/0_IngestData.ipynb @@ -1,275 +1,274 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "318cb8e6-9c5e-4fc3-bf7f-c3222c1c47b6", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "!pip install kagglehub\n", - "dbutils.library.restartPython()" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "9918dd73-dce5-4f93-92d8-fefdcbcb26c8", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "# Define parameters\n", - "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", - "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\"s, \"Schema Name\")\n", - "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", - "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "038ad156-d93b-4c82-81a2-415c23c1bb52", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "import os\n", - "\n", - "# You need to define this variable in order to download the Kaggle files to your Volume\n", - "os.environ[\"KAGGLEHUB_CACHE\"] = f\"/Volumes/pedroz_catalog/metric_views_schema/dimensional_model/kaggle_files\"" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "9277a6c9-63b8-4280-9995-f392d718d481", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "import kagglehub\n", - "\n", - "# Download latest version\n", - "path = kagglehub.dataset_download(\"shrinivasv/retail-store-star-schema-dataset\")\n", - "\n", - "print(\"Path to dataset files:\", path)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "80f1d37c-096a-4876-a7e4-1e782dc013f7", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "import glob\n", - "\n", - "csv_folder = path # path variable from kagglehub.dataset_download\n", - "csv_files = glob.glob(f\"{csv_folder}/*.csv\")\n", - "\n", - "for csv_file in csv_files:\n", - " table_name = os.path.splitext(os.path.basename(csv_file))[0]\n", - " df = spark.read.csv(csv_file, header=True, inferSchema=True)\n", - " # Clean column names: replace spaces with underscores\n", - " for c in df.columns:\n", - " df = df.withColumnRenamed(c, c.replace(\" \", \"_\"))\n", - " full_table_name = f\"{CATALOG_NAME}.{SCHEMA_NAME}.{table_name}\"\n", - " spark.sql(f\"DROP TABLE IF EXISTS {full_table_name}\")\n", - " df.write.saveAsTable(full_table_name)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "e8dff81e-29b6-4bfc-988d-610d36b4012c", - "showTitle": false, - "tableResultSettingsMap": { - "0": { - "dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{\"database\":179},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1766428355279}", - "filterBlob": null, - "queryPlanFiltersBlob": null, - "tableResultIndex": 0 - } - }, - "title": "" - } - }, - "outputs": [], - "source": [ - "display(spark.sql(f\"SHOW TABLES IN {CATALOG_NAME}.{SCHEMA_NAME}\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "c677244c-bf81-418a-bcac-06053e52f650", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "SELECT *\n", - "FROM $CATALOG_NAME.$SCHEMA_NAME.dim_campaigns\n", - "LIMIT 10" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "computePreferences": { - "hardware": { - "accelerator": null, - "gpuPoolId": null, - "memory": null - } - }, - "dashboards": [], - "environmentMetadata": { - "base_environment": "", - "environment_version": "4" - }, - "inputWidgetPreferences": null, - "language": "python", - "notebookMetadata": { - "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 7680324554559970, - "dataframes": [ - "_sqldf" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Install Dependencies" + ] }, - "pythonIndentUnit": 2 - }, - "notebookName": "0_IngestData", - "widgets": { - "CATALOG_NAME": { - "currentValue": "pedroz_catalog", - "nuid": "0f8987ce-14af-4a61-aec6-8f2bdf7e0859", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "widgetDisplayType": "Text", - "validationRegex": null + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "318cb8e6-9c5e-4fc3-bf7f-c3222c1c47b6", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "widgetType": "text", - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "widgetType": "text", - "autoCreated": null, - "validationRegex": null - } - } + "outputs": [], + "source": [ + "!pip install kagglehub\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Parameters" + ] }, - "SCHEMA_NAME": { - "currentValue": "metric_views_schema", - "nuid": "4f108163-255b-4738-83a3-72a2e2d7dc19", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "widgetDisplayType": "Text", - "validationRegex": null + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9918dd73-dce5-4f93-92d8-fefdcbcb26c8", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "widgetType": "text", - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "widgetType": "text", - "autoCreated": null, - "validationRegex": null + "outputs": [], + "source": [ + "dbutils.widgets.text(\"CATALOG_NAME\", \"\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Catalog, Schema, and Volume" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "spark.sql(f\"CREATE CATALOG IF NOT EXISTS {CATALOG_NAME}\")\n", + "spark.sql(f\"CREATE SCHEMA IF NOT EXISTS {CATALOG_NAME}.{SCHEMA_NAME}\")\n", + "spark.sql(f\"CREATE VOLUME IF NOT EXISTS {CATALOG_NAME}.{SCHEMA_NAME}.kaggle_files\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configure Kaggle Download Path" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "038ad156-d93b-4c82-81a2-415c23c1bb52", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "VOLUME_PATH = f\"/Volumes/{CATALOG_NAME}/{SCHEMA_NAME}/kaggle_files\"\n", + "os.environ[\"KAGGLEHUB_CACHE\"] = VOLUME_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download Dataset from Kaggle" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9277a6c9-63b8-4280-9995-f392d718d481", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import kagglehub\n", + "\n", + "# Download latest version\n", + "path = kagglehub.dataset_download(\"shrinivasv/retail-store-star-schema-dataset\")\n", + "\n", + "print(\"Path to dataset files:\", path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load CSV Files into Delta Tables" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "80f1d37c-096a-4876-a7e4-1e782dc013f7", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import glob\n", + "\n", + "csv_folder = path # path variable from kagglehub.dataset_download\n", + "csv_files = glob.glob(f\"{csv_folder}/*.csv\")\n", + "\n", + "for csv_file in csv_files:\n", + " table_name = os.path.splitext(os.path.basename(csv_file))[0]\n", + " df = spark.read.csv(csv_file, header=True, inferSchema=True)\n", + " # Clean column names: replace spaces with underscores\n", + " for c in df.columns:\n", + " df = df.withColumnRenamed(c, c.replace(\" \", \"_\"))\n", + " full_table_name = f\"{CATALOG_NAME}.{SCHEMA_NAME}.{table_name}\"\n", + " spark.sql(f\"DROP TABLE IF EXISTS {full_table_name}\")\n", + " df.write.saveAsTable(full_table_name)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": { + "hardware": { + "accelerator": null, + "gpuPoolId": null, + "memory": null + } + }, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 7680324554559970, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "0_IngestData", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "0f8987ce-14af-4a61-aec6-8f2bdf7e0859", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "4f108163-255b-4738-83a3-72a2e2d7dc19", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } } - } + }, + "language_info": { + "name": "python" } - } }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb b/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb index 109cb65..5194db5 100644 --- a/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb +++ b/data-warehousing/dbrx-metric-views/1_CreateMetricView.ipynb @@ -1,581 +1,596 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "ae146916-a24a-4973-bd09-ad7cc50c8ea0", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "The metric view below condenses the joins depicted in this ERD, and add calculated measures and columns on top of it:\n", - "\n", - "\n", - "Many advanced settings were explored to create this Metric View, such as:\n", - "- Using joins (nested and un-nested): https://docs.databricks.com/aws/en/metric-views/data-modeling/joins\n", - "- Adding semantic metadata: https://docs.databricks.com/aws/en/metric-views/data-modeling/semantic-metadata\n", - "- Using window measures: https://docs.databricks.com/aws/en/metric-views/data-modeling/window-measures\n", - "\n", - "Adding your semantic models directly in Databricks lets you benefit from using the Databricks compute for querying your data, despites also being integrated to the Unity Catalog, allowing for truly unified governance and optimal performance. " - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "89da16d1-c4f9-4e8d-8232-035e8263d083", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "# Define parameters\n", - "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", - "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\", \"Schema Name\")\n", - "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", - "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "c1749c4c-ed90-440e-be91-63a07dbb0993", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "CREATE OR REPLACE VIEW ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships WITH METRICS LANGUAGE YAML AS \n", - "$$\n", - "version: 1.1\n", - "\n", - "source: ${CATALOG_NAME}.${SCHEMA_NAME}.fact_sales_normalized\n", - "\n", - "joins:\n", - " # Star join between fact table and dim_campaigns\n", - " - name: dim_campaigns\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_campaigns\n", - " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", - " # Snowflake joins from dim_campaigns to campaign start/end dates\n", - " joins:\n", - " - name: campaign_start_date\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", - " - name: campaign_end_date\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", - " \n", - " # Star join between fact table and dim_customers\n", - " - name: dim_customers\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_customers\n", - " \"on\": source.customer_sk = dim_customers.customer_sk\n", - " \n", - " # Star join between fact table and dim_dates\n", - " - name: dim_dates\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": source.sales_date = dim_dates.full_date\n", - " \n", - " # Star join between fact table and dim_products\n", - " - name: dim_products\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_products\n", - " \"on\": source.product_sk = dim_products.product_sk\n", - " \n", - " # Star join between fact table and dim_salespersons\n", - " - name: dim_salespersons\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", - " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", - "\n", - " # Star join between fact table and dim_stores\n", - " - name: dim_stores\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_stores\n", - " \"on\": source.store_sk = dim_stores.store_sk\n", - " # Snowflake join from dim_stores to store_manager_salesperson\n", - " joins:\n", - " - name: store_manager_salesperson\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", - " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", - "\n", - "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", - "\n", - "dimensions:\n", - "\n", - " # Columns from fact table\n", - " - name: sales_date\n", - " expr: sales_date\n", - " comment: Sales Date\n", - " display_name: Sales Date\n", - " synonyms: ['date of sale']\n", - " - name: total_amount\n", - " expr: total_amount\n", - " comment: Sales amount\n", - " display_name: Sales amount\n", - " synonyms: ['total amount', 'sale amount']\n", - "\n", - " # Dimension columns from dim_customers\n", - " - name: first_name\n", - " expr: dim_customers.first_name\n", - " comment: Customer first name\n", - " display_name: First Name\n", - " synonyms: ['customer first', 'given name']\n", - " - name: last_name\n", - " expr: dim_customers.last_name\n", - " comment: Customer last name\n", - " display_name: Last Name\n", - " synonyms: ['customer last', 'surname']\n", - " - name: customer_segment\n", - " expr: dim_customers.customer_segment\n", - " comment: Customer segment\n", - " display_name: Customer Segment\n", - " synonyms: ['segment', 'customer type']\n", - " - name: customer_email\n", - " expr: dim_customers.email\n", - " comment: Customer email\n", - " display_name: Customer Email\n", - " synonyms: ['email', 'contact email']\n", - " - name: customer_residential_location\n", - " expr: dim_customers.residential_location\n", - " comment: Customer residential location\n", - " display_name: Customer Residential Location\n", - " synonyms: ['residence', 'home location']\n", - " # Calculated customer columns\n", - " - name: customer_name\n", - " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", - " comment: Customer name\n", - " display_name: Customer Name\n", - " synonyms: ['name', 'full name']\n", - "\n", - " # Dimension columns from dim_stores\n", - " - name: store_name\n", - " expr: dim_stores.store_name\n", - " comment: Store name\n", - " display_name: Store Name\n", - " synonyms: ['location name', 'retail name']\n", - " - name: store_type\n", - " expr: dim_stores.store_type\n", - " comment: Store type\n", - " display_name: Store Type\n", - " synonyms: ['type', 'retail type']\n", - " - name: store_location\n", - " expr: dim_stores.store_location\n", - " comment: Store location\n", - " display_name: Store Location\n", - " synonyms: ['location', 'address']\n", - "\n", - " # Dimension columns from dim_products\n", - " - name: product_name\n", - " expr: dim_products.product_name\n", - " comment: Product name\n", - " display_name: Product Name\n", - " synonyms: ['item name', 'sku name']\n", - " - name: product_category\n", - " expr: dim_products.category\n", - " comment: Product category\n", - " display_name: Product Category\n", - " synonyms: ['category', 'product type']\n", - " - name: product_brand\n", - " expr: dim_products.brand\n", - " comment: Product brand\n", - " display_name: Brand\n", - " synonyms: ['brand', 'manufacturer']\n", - " - name: product_origin_location\n", - " expr: dim_products.origin_location\n", - " comment: Product origin location\n", - " display_name: Origin Location\n", - " synonyms: ['origin', 'source location']\n", - "\n", - " # Dimension columns from dim_campaigns\n", - " - name: campaign_name\n", - " expr: dim_campaigns.campaign_name\n", - " comment: Campaign name\n", - " display_name: Campaign Name\n", - " synonyms: ['promotion name', 'marketing name']\n", - " - name: campaign_budget\n", - " expr: dim_campaigns.campaign_budget\n", - " comment: Campaign budget\n", - " display_name: Campaign Budget\n", - " synonyms: ['budget', 'promotion budget']\n", - "\n", - " # Dimension columns from dim_dates\n", - " - name: full_date\n", - " expr: dim_dates.full_date\n", - " comment: Full date\n", - " display_name: Full Date\n", - " synonyms: ['date', 'transaction date']\n", - " - name: year\n", - " expr: dim_dates.year\n", - " comment: Year\n", - " display_name: Year\n", - " synonyms: ['calendar year', 'fiscal year']\n", - " - name: month\n", - " expr: dim_dates.month\n", - " comment: Month\n", - " display_name: Month\n", - " synonyms: ['calendar month', 'fiscal month']\n", - " - name: day\n", - " expr: dim_dates.day\n", - " comment: Day\n", - " display_name: Day\n", - " synonyms: ['calendar day', 'date day']\n", - " - name: weekday\n", - " expr: dim_dates.weekday\n", - " comment: Weekday\n", - " display_name: Weekday\n", - " synonyms: ['day of week', 'weekday name']\n", - " - name: quarter\n", - " expr: dim_dates.quarter\n", - " comment: Quarter\n", - " display_name: Quarter\n", - " synonyms: ['fiscal quarter', 'calendar quarter']\n", - " # Calculated datetime columns\n", - " - name: week\n", - " expr: \"date_trunc('week', sales_date)\"\n", - " comment: Week of the sale\n", - " display_name: Week\n", - " format:\n", - " type: date\n", - " date_format: year_week\n", - " leading_zeros: false\n", - " synonyms: ['sales week', 'transaction week']\n", - " - name: dayOfWeek\n", - " expr: dayofweek(sales_date)\n", - " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", - " display_name: Day of Week\n", - " format:\n", - " type: number\n", - " synonyms: ['weekday number', 'day index']\n", - " - name: YearMonth\n", - " expr: \"date_trunc('month', sales_date)\"\n", - " comment: Year and month of the sale\n", - " display_name: Year Month\n", - " format:\n", - " type: date\n", - " date_format: locale_number_month\n", - " leading_zeros: false\n", - " synonyms: ['month', 'year and month']\n", - "\n", - " # Dimension columns from dim_salespersons\n", - " - name: salesperson_name\n", - " expr: dim_salespersons.salesperson_name\n", - " comment: Salesperson name\n", - " display_name: Salesperson Name\n", - " synonyms: ['rep name', 'employee name']\n", - " - name: salesperson_role\n", - " expr: dim_salespersons.salesperson_role\n", - " comment: Salesperson role\n", - " display_name: Salesperson Role\n", - " synonyms: ['role', 'job title']\n", - "\n", - "measures:\n", - " # Calculated measures\n", - " - name: sales_sum\n", - " expr: SUM(source.total_amount)\n", - " comment: Total sales amount\n", - " display_name: Total Sales\n", - " synonyms: ['revenue', 'total sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_avg\n", - " expr: AVG(source.total_amount)\n", - " comment: Average sales amount\n", - " display_name: Average Sales\n", - " synonyms: ['average revenue', 'mean sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_stddev\n", - " expr: STDDEV(source.total_amount)\n", - " comment: Standard deviation of sales amount\n", - " display_name: Sales Standard Deviation\n", - " synonyms: ['sales variability', 'sales stddev']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_median\n", - " expr: percentile(source.total_amount, 0.5)\n", - " comment: Median sales amount\n", - " display_name: Sales Median\n", - " synonyms: ['median revenue', 'median sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile1\n", - " expr: percentile(source.total_amount, 0.25)\n", - " comment: First quartile (Q1) of sales amount\n", - " display_name: Sales Quartile 1\n", - " synonyms: ['Q1 sales', 'first quartile']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile2\n", - " expr: percentile(source.total_amount, 0.5)\n", - " comment: Second quartile (Q2/Median) of sales amount\n", - " display_name: Sales Quartile 2 (Median)\n", - " synonyms: ['Q2 sales', 'median']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile3\n", - " expr: percentile(source.total_amount, 0.75)\n", - " comment: Third quartile (Q3) of sales amount\n", - " display_name: Sales Quartile 3\n", - " synonyms: ['Q3 sales', 'third quartile']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile4\n", - " expr: percentile(source.total_amount, 1.0)\n", - " comment: Fourth quartile (Q4/Max) of sales amount\n", - " display_name: Sales Quartile 4 (Max)\n", - " synonyms: ['Q4 sales', 'max sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_largest\n", - " expr: MAX(source.total_amount)\n", - " comment: Largest Sale\n", - " display_name: Largest Sale\n", - " synonyms: ['max sale', 'highest sale']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_smallest\n", - " expr: MIN(source.total_amount)\n", - " comment: Smallest Sale\n", - " display_name: Smallest Sale\n", - " synonyms: ['min sale', 'lowest sale']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_mode\n", - " expr: mode(source.total_amount)\n", - " comment: Mode of sales amount\n", - " display_name: Sales Mode\n", - " synonyms: ['most common sale', 'mode']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - "\n", - " # Window measures\n", - " - name: previous_day_sales\n", - " expr: SUM(total_amount)\n", - " comment: Previous Day Sales\n", - " display_name: Previous Day Sales\n", - " synonyms: ['last day sales', 'yesterday sales']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 1 day\n", - " semiadditive: last\n", - " - name: current_day_sales\n", - " expr: SUM(total_amount)\n", - " comment: Current Day Sales\n", - " display_name: Current Day Sales\n", - " synonyms: ['today sales']\n", - " window:\n", - " - order: sales_date\n", - " range: current\n", - " semiadditive: last\n", - " - name: day_over_day_growth\n", - " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", - "\n", - " - name: running_total_sales\n", - " expr: SUM(total_amount)\n", - " comment: Running Total Sales\n", - " display_name: Running Total Sales\n", - " synonyms: ['running sales']\n", - " window:\n", - " - order: sales_date\n", - " range: cumulative\n", - " semiadditive: last\n", - "\n", - " - name: ytd_sales\n", - " expr: SUM(total_amount)\n", - " comment: YTD Sales\n", - " display_name: YTD Sales\n", - " synonyms: ['year-to-date sales']\n", - " window:\n", - " - order: sales_date\n", - " range: cumulative\n", - " semiadditive: last\n", - " - order: year\n", - " range: current\n", - " semiadditive: last\n", - "\n", - " - name: t7d_customers\n", - " expr: COUNT(DISTINCT customer_sk)\n", - " comment: Customers last 7 days\n", - " display_name: Customers last 7 days\n", - " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 7 day\n", - " semiadditive: last\n", - "\n", - " - name: t30d_customers\n", - " expr: COUNT(DISTINCT customer_sk)\n", - " comment: Customers last 30 days\n", - " display_name: Customers last 30 days\n", - " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 30 day\n", - " semiadditive: last\n", - "\n", - "$$" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "computePreferences": null, - "dashboards": [], - "environmentMetadata": { - "base_environment": "", - "environment_version": "4" - }, - "inputWidgetPreferences": null, - "language": "python", - "notebookMetadata": { - "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 7680324554526009, - "dataframes": [ - "_sqldf" - ] - }, - "pythonIndentUnit": 2 - }, - "notebookName": "1_CreateMetricView", - "widgets": { - "CATALOG_NAME": { - "currentValue": "pedroz_catalog", - "nuid": "a1da4dd4-31bf-443a-957c-041e6fa5b700", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "validationRegex": null, - "widgetDisplayType": "Text" + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "ae146916-a24a-4973-bd09-ad7cc50c8ea0", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "autoCreated": null, - "validationRegex": null, - "widgetType": "text" + "source": [ + "The metric view below condenses the joins depicted in this ERD, and add calculated measures and columns on top of it:\n", + "\n", + "\n", + "Many advanced settings were explored to create this Metric View, such as:\n", + "- Using joins (nested and un-nested): https://docs.databricks.com/aws/en/metric-views/data-modeling/joins\n", + "- Adding semantic metadata: https://docs.databricks.com/aws/en/metric-views/data-modeling/semantic-metadata\n", + "- Using window measures: https://docs.databricks.com/aws/en/metric-views/data-modeling/window-measures\n", + "\n", + "Adding your semantic models directly in Databricks lets you benefit from using the Databricks compute for querying your data, despites also being integrated to the Unity Catalog, allowing for truly unified governance and optimal performance. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "89da16d1-c4f9-4e8d-8232-035e8263d083", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "widgetType": "text" - } + "outputs": [], + "source": [ + "dbutils.widgets.text(\"CATALOG_NAME\", \"\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Metric View" + ] }, - "SCHEMA_NAME": { - "currentValue": "metric_views_schema", - "nuid": "27f37404-389a-4949-bb98-a07b86e3d7f0", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "validationRegex": null, - "widgetDisplayType": "Text" + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c1749c4c-ed90-440e-be91-63a07dbb0993", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "autoCreated": null, - "validationRegex": null, - "widgetType": "text" + "outputs": [], + "source": [ + "sql_statement = f\"\"\"\n", + "CREATE OR REPLACE VIEW {CATALOG_NAME}.{SCHEMA_NAME}.sales_relationships WITH METRICS LANGUAGE YAML AS \n", + "$$\n", + "version: 1.1\n", + "\n", + "source: {CATALOG_NAME}.{SCHEMA_NAME}.fact_sales_normalized\n", + "\n", + "joins:\n", + " # Star join between fact table and dim_campaigns\n", + " - name: dim_campaigns\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_campaigns\n", + " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", + " # Snowflake joins from dim_campaigns to campaign start/end dates\n", + " joins:\n", + " - name: campaign_start_date\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", + " - name: campaign_end_date\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", + " \n", + " # Star join between fact table and dim_customers\n", + " - name: dim_customers\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_customers\n", + " \"on\": source.customer_sk = dim_customers.customer_sk\n", + " \n", + " # Star join between fact table and dim_dates\n", + " - name: dim_dates\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": source.sales_date = dim_dates.full_date\n", + " \n", + " # Star join between fact table and dim_products\n", + " - name: dim_products\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_products\n", + " \"on\": source.product_sk = dim_products.product_sk\n", + " \n", + " # Star join between fact table and dim_salespersons\n", + " - name: dim_salespersons\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_salespersons\n", + " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", + "\n", + " # Star join between fact table and dim_stores\n", + " - name: dim_stores\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_stores\n", + " \"on\": source.store_sk = dim_stores.store_sk\n", + " # Snowflake join from dim_stores to store_manager_salesperson\n", + " joins:\n", + " - name: store_manager_salesperson\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_salespersons\n", + " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", + "\n", + "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", + "\n", + "dimensions:\n", + "\n", + " # Columns from fact table\n", + " - name: sales_date\n", + " expr: date(source.sales_date)\n", + " comment: Sales Date\n", + " display_name: Sales Date\n", + " synonyms: ['date of sale']\n", + " - name: total_amount\n", + " expr: total_amount\n", + " comment: Sales amount\n", + " display_name: Sales amount\n", + " synonyms: ['total amount', 'sale amount']\n", + "\n", + " # Dimension columns from dim_customers\n", + " - name: first_name\n", + " expr: dim_customers.first_name\n", + " comment: Customer first name\n", + " display_name: First Name\n", + " synonyms: ['customer first', 'given name']\n", + " - name: last_name\n", + " expr: dim_customers.last_name\n", + " comment: Customer last name\n", + " display_name: Last Name\n", + " synonyms: ['customer last', 'surname']\n", + " - name: customer_segment\n", + " expr: dim_customers.customer_segment\n", + " comment: Customer segment\n", + " display_name: Customer Segment\n", + " synonyms: ['segment', 'customer type']\n", + " - name: customer_email\n", + " expr: dim_customers.email\n", + " comment: Customer email\n", + " display_name: Customer Email\n", + " synonyms: ['email', 'contact email']\n", + " - name: customer_residential_location\n", + " expr: dim_customers.residential_location\n", + " comment: Customer residential location\n", + " display_name: Customer Residential Location\n", + " synonyms: ['residence', 'home location']\n", + " # Calculated customer columns\n", + " - name: customer_name\n", + " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", + " comment: Customer name\n", + " display_name: Customer Name\n", + " synonyms: ['name', 'full name']\n", + "\n", + " # Dimension columns from dim_stores\n", + " - name: store_name\n", + " expr: dim_stores.store_name\n", + " comment: Store name\n", + " display_name: Store Name\n", + " synonyms: ['location name', 'retail name']\n", + " - name: store_type\n", + " expr: dim_stores.store_type\n", + " comment: Store type\n", + " display_name: Store Type\n", + " synonyms: ['type', 'retail type']\n", + " - name: store_location\n", + " expr: dim_stores.store_location\n", + " comment: Store location\n", + " display_name: Store Location\n", + " synonyms: ['location', 'address']\n", + "\n", + " # Dimension columns from dim_products\n", + " - name: product_name\n", + " expr: dim_products.product_name\n", + " comment: Product name\n", + " display_name: Product Name\n", + " synonyms: ['item name', 'sku name']\n", + " - name: product_category\n", + " expr: dim_products.category\n", + " comment: Product category\n", + " display_name: Product Category\n", + " synonyms: ['category', 'product type']\n", + " - name: product_brand\n", + " expr: dim_products.brand\n", + " comment: Product brand\n", + " display_name: Brand\n", + " synonyms: ['brand', 'manufacturer']\n", + " - name: product_origin_location\n", + " expr: dim_products.origin_location\n", + " comment: Product origin location\n", + " display_name: Origin Location\n", + " synonyms: ['origin', 'source location']\n", + "\n", + " # Dimension columns from dim_campaigns\n", + " - name: campaign_name\n", + " expr: dim_campaigns.campaign_name\n", + " comment: Campaign name\n", + " display_name: Campaign Name\n", + " synonyms: ['promotion name', 'marketing name']\n", + " - name: campaign_budget\n", + " expr: dim_campaigns.campaign_budget\n", + " comment: Campaign budget\n", + " display_name: Campaign Budget\n", + " synonyms: ['budget', 'promotion budget']\n", + "\n", + " # Dimension columns from dim_dates\n", + " - name: full_date\n", + " expr: dim_dates.full_date\n", + " comment: Full date\n", + " display_name: Full Date\n", + " synonyms: ['date', 'transaction date']\n", + " - name: year\n", + " expr: dim_dates.year\n", + " comment: Year\n", + " display_name: Year\n", + " synonyms: ['calendar year', 'fiscal year']\n", + " - name: month\n", + " expr: dim_dates.month\n", + " comment: Month\n", + " display_name: Month\n", + " synonyms: ['calendar month', 'fiscal month']\n", + " - name: day\n", + " expr: dim_dates.day\n", + " comment: Day\n", + " display_name: Day\n", + " synonyms: ['calendar day', 'date day']\n", + " - name: weekday\n", + " expr: dim_dates.weekday\n", + " comment: Weekday\n", + " display_name: Weekday\n", + " synonyms: ['day of week', 'weekday name']\n", + " - name: quarter\n", + " expr: dim_dates.quarter\n", + " comment: Quarter\n", + " display_name: Quarter\n", + " synonyms: ['fiscal quarter', 'calendar quarter']\n", + " # Calculated datetime columns\n", + " - name: week\n", + " expr: \"date_trunc('week', sales_date)\"\n", + " comment: Week of the sale\n", + " display_name: Week\n", + " format:\n", + " type: date\n", + " date_format: year_week\n", + " leading_zeros: false\n", + " synonyms: ['sales week', 'transaction week']\n", + " - name: dayOfWeek\n", + " expr: dayofweek(sales_date)\n", + " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", + " display_name: Day of Week\n", + " format:\n", + " type: number\n", + " synonyms: ['weekday number', 'day index']\n", + " - name: YearMonth\n", + " expr: \"date_trunc('month', sales_date)\"\n", + " comment: Year and month of the sale\n", + " display_name: Year Month\n", + " format:\n", + " type: date\n", + " date_format: locale_number_month\n", + " leading_zeros: false\n", + " synonyms: ['month', 'year and month']\n", + "\n", + " # Dimension columns from dim_salespersons\n", + " - name: salesperson_name\n", + " expr: dim_salespersons.salesperson_name\n", + " comment: Salesperson name\n", + " display_name: Salesperson Name\n", + " synonyms: ['rep name', 'employee name']\n", + " - name: salesperson_role\n", + " expr: dim_salespersons.salesperson_role\n", + " comment: Salesperson role\n", + " display_name: Salesperson Role\n", + " synonyms: ['role', 'job title']\n", + "\n", + "measures:\n", + " # Calculated measures\n", + " - name: sales_sum\n", + " expr: SUM(source.total_amount)\n", + " comment: Total sales amount\n", + " display_name: Total Sales\n", + " synonyms: ['revenue', 'total sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_avg\n", + " expr: AVG(source.total_amount)\n", + " comment: Average sales amount\n", + " display_name: Average Sales\n", + " synonyms: ['average revenue', 'mean sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_stddev\n", + " expr: STDDEV(source.total_amount)\n", + " comment: Standard deviation of sales amount\n", + " display_name: Sales Standard Deviation\n", + " synonyms: ['sales variability', 'sales stddev']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_median\n", + " expr: percentile(source.total_amount, 0.5)\n", + " comment: Median sales amount\n", + " display_name: Sales Median\n", + " synonyms: ['median revenue', 'median sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile1\n", + " expr: percentile(source.total_amount, 0.25)\n", + " comment: First quartile (Q1) of sales amount\n", + " display_name: Sales Quartile 1\n", + " synonyms: ['Q1 sales', 'first quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile2\n", + " expr: percentile(source.total_amount, 0.5)\n", + " comment: Second quartile (Q2/Median) of sales amount\n", + " display_name: Sales Quartile 2 (Median)\n", + " synonyms: ['Q2 sales', 'median']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile3\n", + " expr: percentile(source.total_amount, 0.75)\n", + " comment: Third quartile (Q3) of sales amount\n", + " display_name: Sales Quartile 3\n", + " synonyms: ['Q3 sales', 'third quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile4\n", + " expr: percentile(source.total_amount, 1.0)\n", + " comment: Fourth quartile (Q4/Max) of sales amount\n", + " display_name: Sales Quartile 4 (Max)\n", + " synonyms: ['Q4 sales', 'max sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_largest\n", + " expr: MAX(source.total_amount)\n", + " comment: Largest Sale\n", + " display_name: Largest Sale\n", + " synonyms: ['max sale', 'highest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_smallest\n", + " expr: MIN(source.total_amount)\n", + " comment: Smallest Sale\n", + " display_name: Smallest Sale\n", + " synonyms: ['min sale', 'lowest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_mode\n", + " expr: mode(source.total_amount)\n", + " comment: Mode of sales amount\n", + " display_name: Sales Mode\n", + " synonyms: ['most common sale', 'mode']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + "\n", + " # Window measures\n", + " - name: previous_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Previous Day Sales\n", + " display_name: Previous Day Sales\n", + " synonyms: ['last day sales', 'yesterday sales']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 1 day\n", + " semiadditive: last\n", + " - name: current_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Current Day Sales\n", + " display_name: Current Day Sales\n", + " synonyms: ['today sales']\n", + " window:\n", + " - order: sales_date\n", + " range: current\n", + " semiadditive: last\n", + " - name: day_over_day_growth\n", + " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", + "\n", + " - name: running_total_sales\n", + " expr: SUM(total_amount)\n", + " comment: Running Total Sales\n", + " display_name: Running Total Sales\n", + " synonyms: ['running sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + "\n", + " - name: ytd_sales\n", + " expr: SUM(total_amount)\n", + " comment: YTD Sales\n", + " display_name: YTD Sales\n", + " synonyms: ['year-to-date sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + " - order: year\n", + " range: current\n", + " semiadditive: last\n", + "\n", + " - name: t7d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 7 days\n", + " display_name: Customers last 7 days\n", + " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 7 day\n", + " semiadditive: last\n", + "\n", + " - name: t30d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 30 days\n", + " display_name: Customers last 30 days\n", + " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 30 day\n", + " semiadditive: last\n", + "\n", + "$$\n", + "\"\"\"\n", + "\n", + "spark.sql(sql_statement)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 7680324554526009, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 }, - "widgetType": "text" - } + "notebookName": "1_CreateMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "a1da4dd4-31bf-443a-957c-041e6fa5b700", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "27f37404-389a-4949-bb98-a07b86e3d7f0", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" } - } }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb b/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb index 780318f..967ffab 100644 --- a/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb +++ b/data-warehousing/dbrx-metric-views/2_QueryMetricView.ipynb @@ -1,354 +1,385 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "b2f360c8-b4ec-44cf-81b4-67fa3e4be576", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "!pip install databricks-sdk -U\n", - "dbutils.library.restartPython()" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "c3a3034c-fa9b-4f1c-b84e-3accfd298a12", - "showTitle": false, - "tableResultSettingsMap": { - "0": { - "dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1766450269016}", - "filterBlob": null, - "queryPlanFiltersBlob": null, - "tableResultIndex": 0 - } - }, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "CREATE WIDGET TEXT CATALOG_NAME DEFAULT \"pedroz_catalog\";\n", - "CREATE WIDGET TEXT SCHEMA_NAME DEFAULT \"metric_views_schema\";\n", - "\n", - "-- This is just a simple query example, demonstrating that you can query Metric Views just like any other view!\n", - "SELECT\n", - " dayOfWeek,\n", - " MEASURE(`sales_sum`),\n", - " MEASURE(`sales_avg`),\n", - " MEASURE(`sales_stddev`),\n", - " MEASURE(`sales_quartile1`),\n", - " MEASURE(`sales_quartile2`),\n", - " MEASURE(`sales_quartile3`),\n", - " MEASURE(`sales_quartile4`),\n", - " MEASURE(`sales_largest`),\n", - " MEASURE(`sales_smallest`)\n", - "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships\n", - "GROUP BY ALL\n", - "ORDER BY dayOfWeek" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "101f839d-1f1a-44fd-8b94-a93e283a3c98", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "You can also consume Metric Views in Genie:\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a90ba13a-b72b-462d-bc5f-c6374485adbc", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "Check out the sample serialized Genie space [./dashboard_and_genie/genie_space.json](./dashboard_and_genie/dashboard.json). \n", - "You can use the code snippet below to automatically create it in your workspace, it uses the [Create Genie Space](https://docs.databricks.com/api/workspace/genie/createspace) API. " - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "78273a45-f363-404c-b7e8-1737e98d718c", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "import json\n", - "from databricks.sdk import WorkspaceClient\n", - "\n", - "# Load the serialized Genie space from the JSON file\n", - "with open('./dashboard_and_genie/genie_space.json', 'r') as f:\n", - " genie_space_json_str = f.read()\n", - "\n", - "# Replace CATALOG_NAME and SCHEMA_NAME placeholders with parameter values\n", - "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", - "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", - "genie_space_json_str = genie_space_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", - "\n", - "# Specify the warehouse ID (replace with your actual warehouse ID)\n", - "dbutils.widgets.text(\"warehouse_id\", \"8baced1ff014912d\")\n", - "warehouse_id = dbutils.widgets.get(\"warehouse_id\")\n", - "\n", - "# Prepare the payload as required\n", - "payload = {\n", - " \"serialized_space\": genie_space_json_str,\n", - " \"warehouse_id\": warehouse_id,\n", - " \"title\": \"Sample Sales Genie Space (created via API)\"\n", - "}\n", - "\n", - "# Initialize WorkspaceClient (will use DATABRICKS_HOST and DATABRICKS_TOKEN from env)\n", - "w = WorkspaceClient()\n", - "workspace_url = w.config.host\n", - "pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()\n", - "\n", - "import requests\n", - "\n", - "headers = {\n", - " \"Authorization\": f\"Bearer {pat_token}\",\n", - " \"Content-Type\": \"application/json\"\n", - "}\n", - "\n", - "# POST to Genie Create Space API\n", - "response = requests.post(\n", - " f\"{workspace_url}/api/2.0/genie/spaces\",\n", - " headers=headers,\n", - " data=json.dumps(payload)\n", - ")\n", - "\n", - "response.raise_for_status()\n", - "space_info = response.json()\n", - "print(f\"Created Genie space with ID *{space_info['space_id']}* and name *{space_info['title']}*\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "8281f8e3-dd67-4639-be89-98a61f268eb4", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "And create dashboards using it! \n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": {}, - "inputWidgets": {}, - "nuid": "07d7f356-cd20-4182-ac6f-f19c34aba167", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "Check out the [./dashboard_and_genie/dashboard.lvdash.json](./dashboard_and_genie/dashboard.lvdash.json) dashboard for a simple dashboard that can be used as an example to show how you can consume Metric Views using AIBI Dashboards. \n", - "\n", - "**Note**: You will need to replace the catalog and schema names from the dashboard.lvdash.json file from **pedroz_catalog** and **metric_views_schema** to your desired catalog and schema names. The script below does that automatically, and creates another .lvdash.json file which you can edit called [./dashboard_and_genie/dashboard_parameterized.lvdash.json](./dashboard_and_genie/dashboard_parameterized.lvdash.json)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "27d714f9-39f9-4df3-8c7f-8d6b8f1ff6e3", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", - "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", - "\n", - "with open('./dashboard_and_genie/dashboard.lvdash.json', 'r') as f:\n", - " dashboard_json_str = f.read()\n", - "\n", - "dashboard_json_str = dashboard_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", - "\n", - "with open('./dashboard_and_genie/dashboard_parameterized.lvdash.json', 'w') as f:\n", - " f.write(dashboard_json_str)" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "computePreferences": null, - "dashboards": [], - "environmentMetadata": { - "base_environment": "", - "environment_version": "4" - }, - "inputWidgetPreferences": null, - "language": "python", - "notebookMetadata": { - "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": -1, - "dataframes": [ - "_sqldf" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Install Dependencies" + ] }, - "pythonIndentUnit": 2 - }, - "notebookName": "2_QueryMetricView", - "widgets": { - "CATALOG_NAME": { - "currentValue": "pedroz_catalog", - "nuid": "06f74b0f-eecd-4def-b995-d03bad17de04", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "pedroz_catalog", - "label": null, - "name": "CATALOG_NAME", - "options": { - "widgetDisplayType": "Text", - "validationRegex": null + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "b2f360c8-b4ec-44cf-81b4-67fa3e4be576", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "widgetType": "text", - "defaultValue": "pedroz_catalog", - "label": null, - "name": "CATALOG_NAME", - "options": { - "widgetType": "text", - "autoCreated": null, - "validationRegex": null - } - } + "outputs": [], + "source": [ + "!pip install databricks-sdk -U\n", + "dbutils.library.restartPython()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Query Metric View" + ] }, - "SCHEMA_NAME": { - "currentValue": "metric_views_schema", - "nuid": "d3fbedb2-1ada-41bb-b5d0-168b130f970a", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "metric_views_schema", - "label": null, - "name": "SCHEMA_NAME", - "options": { - "widgetDisplayType": "Text", - "validationRegex": null + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c3a3034c-fa9b-4f1c-b84e-3accfd298a12", + "showTitle": false, + "tableResultSettingsMap": { + "0": { + "dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1766450269016}", + "filterBlob": null, + "queryPlanFiltersBlob": null, + "tableResultIndex": 0 + } + }, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "widgetType": "text", - "defaultValue": "metric_views_schema", - "label": null, - "name": "SCHEMA_NAME", - "options": { - "widgetType": "text", - "autoCreated": null, - "validationRegex": null - } - } + "outputs": [], + "source": [ + "dbutils.widgets.text(\"CATALOG_NAME\", \"\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")\n", + "\n", + "# This is just a simple query example, demonstrating that you can query Metric Views just like any other view!\n", + "df = spark.sql(f\"\"\"\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM {CATALOG_NAME}.{SCHEMA_NAME}.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek\n", + "\"\"\")\n", + "display(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Genie Space" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "101f839d-1f1a-44fd-8b94-a93e283a3c98", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "You can also consume Metric Views in Genie:\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "a90ba13a-b72b-462d-bc5f-c6374485adbc", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Check out the sample serialized Genie space [./dashboard_and_genie/genie_space.json](./dashboard_and_genie/dashboard.json). \n", + "You can use the code snippet below to automatically create it in your workspace, it uses the [Create Genie Space](https://docs.databricks.com/api/workspace/genie/createspace) API. " + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "78273a45-f363-404c-b7e8-1737e98d718c", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "import json\n", + "from databricks.sdk import WorkspaceClient\n", + "\n", + "# Load the serialized Genie space from the JSON file\n", + "with open('./dashboard_and_genie/genie_space.json', 'r') as f:\n", + " genie_space_json_str = f.read()\n", + "\n", + "# Replace CATALOG_NAME and SCHEMA_NAME placeholders with parameter values\n", + "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", + "genie_space_json_str = genie_space_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", + "\n", + "# Specify the warehouse ID (replace with your actual warehouse ID)\n", + "dbutils.widgets.text(\"warehouse_id\", \"\", \"Warehouse ID\")\n", + "warehouse_id = dbutils.widgets.get(\"warehouse_id\")\n", + "\n", + "# Prepare the payload as required\n", + "payload = {\n", + " \"serialized_space\": genie_space_json_str,\n", + " \"warehouse_id\": warehouse_id,\n", + " \"title\": \"Sample Sales Genie Space (created via API)\"\n", + "}\n", + "\n", + "# Initialize WorkspaceClient (will use DATABRICKS_HOST and DATABRICKS_TOKEN from env)\n", + "w = WorkspaceClient()\n", + "workspace_url = w.config.host\n", + "pat_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()\n", + "\n", + "import requests\n", + "\n", + "headers = {\n", + " \"Authorization\": f\"Bearer {pat_token}\",\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "\n", + "# POST to Genie Create Space API\n", + "response = requests.post(\n", + " f\"{workspace_url}/api/2.0/genie/spaces\",\n", + " headers=headers,\n", + " data=json.dumps(payload)\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "space_info = response.json()\n", + "print(f\"Created Genie space with ID *{space_info['space_id']}* and name *{space_info['title']}*\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create AIBI Dashboards" + ] }, - "warehouse_id": { - "currentValue": "8baced1ff014912d", - "nuid": "7ed415c1-0a75-4920-9494-41bd4c6edfa7", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "8baced1ff014912d", - "label": null, - "name": "warehouse_id", - "options": { - "widgetDisplayType": "Text", - "validationRegex": null + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "8281f8e3-dd67-4639-be89-98a61f268eb4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "widgetType": "text", - "defaultValue": "8baced1ff014912d", - "label": null, - "name": "warehouse_id", - "options": { - "widgetType": "text", - "autoCreated": null, - "validationRegex": null + "source": [ + "And create dashboards using it! \n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "07d7f356-cd20-4182-ac6f-f19c34aba167", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Check out the [./dashboard_and_genie/dashboard.lvdash.json](./dashboard_and_genie/dashboard.lvdash.json) dashboard for a simple dashboard that can be used as an example to show how you can consume Metric Views using AIBI Dashboards. \n", + "\n", + "**Note**: You will need to replace the catalog and schema names from the dashboard.lvdash.json file from **CATALOG_NAME** and **SCHEMA_NAME** to your desired catalog and schema names. The script below does that automatically, and creates another .lvdash.json file which you can edit called [./dashboard_and_genie/dashboard_parameterized.lvdash.json](./dashboard_and_genie/dashboard_parameterized.lvdash.json)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "27d714f9-39f9-4df3-8c7f-8d6b8f1ff6e3", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "catalog_name = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "schema_name = dbutils.widgets.get(\"SCHEMA_NAME\")\n", + "\n", + "with open('./dashboard_and_genie/dashboard.lvdash.json', 'r') as f:\n", + " dashboard_json_str = f.read()\n", + "\n", + "dashboard_json_str = dashboard_json_str.replace(\"CATALOG_NAME\", catalog_name).replace(\"SCHEMA_NAME\", schema_name)\n", + "\n", + "with open('./dashboard_and_genie/dashboard_parameterized.lvdash.json', 'w') as f:\n", + " f.write(dashboard_json_str)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": -1, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "2_QueryMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "06f74b0f-eecd-4def-b995-d03bad17de04", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": null, + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": null, + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "d3fbedb2-1ada-41bb-b5d0-168b130f970a", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": null, + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": null, + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "warehouse_id": { + "currentValue": "8baced1ff014912d", + "nuid": "7ed415c1-0a75-4920-9494-41bd4c6edfa7", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "8baced1ff014912d", + "label": null, + "name": "warehouse_id", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "8baced1ff014912d", + "label": null, + "name": "warehouse_id", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } } - } + }, + "language_info": { + "name": "python" } - } }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb b/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb index 13e1702..d2ef817 100644 --- a/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb +++ b/data-warehousing/dbrx-metric-views/3_MaterializeMetricView.ipynb @@ -1,803 +1,789 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "aaffdcfa-ecd7-444b-8e36-e3cdc6490ad2", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "source": [ - "Materialization for metric views is an [experimental](https://docs.databricks.com/aws/en/release-notes/release-types) feature. The idea is that you can create a materialized view on top of a metric view definition, and that will improve query performance. \n", - "\n", - "Check out more details about it here: https://docs.databricks.com/aws/en/metric-views/materialization" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "9c2362d4-df39-4726-a68a-0879a54f74a0", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "# Define parameters\n", - "dbutils.widgets.text(\"CATALOG_NAME\", \"pedroz_catalog\", \"Catalog Name\")\n", - "dbutils.widgets.text(\"SCHEMA_NAME\", \"metric_views_schema\", \"Schema Name\")\n", - "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", - "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a7022d9a-9c8f-453e-8797-e4113877d641", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "# Note that the metric view definition below is basically the same definition that we applied for the creation of the metric view from script ./1_CreateMetricView.ipynb.\n", - "# The main difference lies on the \"materialization\" key, which is introduced in this notebook, and shows how you can materialize a metric view (either unaggregated or aggregated) in a schedule." - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "23ad13dc-894b-4c3f-9b26-4390697ebb59", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "CREATE OR REPLACE VIEW ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships WITH METRICS LANGUAGE YAML AS \n", - "$$\n", - "version: 1.1\n", - "\n", - "source: ${CATALOG_NAME}.${SCHEMA_NAME}.fact_sales_normalized\n", - "\n", - "joins:\n", - " # Star join between fact table and dim_campaigns\n", - " - name: dim_campaigns\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_campaigns\n", - " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", - " # Snowflake joins from dim_campaigns to campaign start/end dates\n", - " joins:\n", - " - name: campaign_start_date\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", - " - name: campaign_end_date\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", - " \n", - " # Star join between fact table and dim_customers\n", - " - name: dim_customers\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_customers\n", - " \"on\": source.customer_sk = dim_customers.customer_sk\n", - " \n", - " # Star join between fact table and dim_dates\n", - " - name: dim_dates\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_dates\n", - " \"on\": source.sales_date = dim_dates.full_date\n", - " \n", - " # Star join between fact table and dim_products\n", - " - name: dim_products\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_products\n", - " \"on\": source.product_sk = dim_products.product_sk\n", - " \n", - " # Star join between fact table and dim_salespersons\n", - " - name: dim_salespersons\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", - " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", - "\n", - " # Star join between fact table and dim_stores\n", - " - name: dim_stores\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_stores\n", - " \"on\": source.store_sk = dim_stores.store_sk\n", - " # Snowflake join from dim_stores to store_manager_salesperson\n", - " joins:\n", - " - name: store_manager_salesperson\n", - " source: ${CATALOG_NAME}.${SCHEMA_NAME}.dim_salespersons\n", - " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", - "\n", - "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", - "\n", - "dimensions:\n", - "\n", - " # Columns from fact table\n", - " - name: sales_date\n", - " expr: sales_date\n", - " comment: Sales Date\n", - " display_name: Sales Date\n", - " synonyms: ['date of sale']\n", - " - name: total_amount\n", - " expr: total_amount\n", - " comment: Sales amount\n", - " display_name: Sales amount\n", - " synonyms: ['total amount', 'sale amount']\n", - "\n", - " # Dimension columns from dim_customers\n", - " - name: first_name\n", - " expr: dim_customers.first_name\n", - " comment: Customer first name\n", - " display_name: First Name\n", - " synonyms: ['customer first', 'given name']\n", - " - name: last_name\n", - " expr: dim_customers.last_name\n", - " comment: Customer last name\n", - " display_name: Last Name\n", - " synonyms: ['customer last', 'surname']\n", - " - name: customer_segment\n", - " expr: dim_customers.customer_segment\n", - " comment: Customer segment\n", - " display_name: Customer Segment\n", - " synonyms: ['segment', 'customer type']\n", - " - name: customer_email\n", - " expr: dim_customers.email\n", - " comment: Customer email\n", - " display_name: Customer Email\n", - " synonyms: ['email', 'contact email']\n", - " - name: customer_residential_location\n", - " expr: dim_customers.residential_location\n", - " comment: Customer residential location\n", - " display_name: Customer Residential Location\n", - " synonyms: ['residence', 'home location']\n", - " # Calculated customer columns\n", - " - name: customer_name\n", - " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", - " comment: Customer name\n", - " display_name: Customer Name\n", - " synonyms: ['name', 'full name']\n", - "\n", - " # Dimension columns from dim_stores\n", - " - name: store_name\n", - " expr: dim_stores.store_name\n", - " comment: Store name\n", - " display_name: Store Name\n", - " synonyms: ['location name', 'retail name']\n", - " - name: store_type\n", - " expr: dim_stores.store_type\n", - " comment: Store type\n", - " display_name: Store Type\n", - " synonyms: ['type', 'retail type']\n", - " - name: store_location\n", - " expr: dim_stores.store_location\n", - " comment: Store location\n", - " display_name: Store Location\n", - " synonyms: ['location', 'address']\n", - "\n", - " # Dimension columns from dim_products\n", - " - name: product_name\n", - " expr: dim_products.product_name\n", - " comment: Product name\n", - " display_name: Product Name\n", - " synonyms: ['item name', 'sku name']\n", - " - name: product_category\n", - " expr: dim_products.category\n", - " comment: Product category\n", - " display_name: Product Category\n", - " synonyms: ['category', 'product type']\n", - " - name: product_brand\n", - " expr: dim_products.brand\n", - " comment: Product brand\n", - " display_name: Brand\n", - " synonyms: ['brand', 'manufacturer']\n", - " - name: product_origin_location\n", - " expr: dim_products.origin_location\n", - " comment: Product origin location\n", - " display_name: Origin Location\n", - " synonyms: ['origin', 'source location']\n", - "\n", - " # Dimension columns from dim_campaigns\n", - " - name: campaign_name\n", - " expr: dim_campaigns.campaign_name\n", - " comment: Campaign name\n", - " display_name: Campaign Name\n", - " synonyms: ['promotion name', 'marketing name']\n", - " - name: campaign_budget\n", - " expr: dim_campaigns.campaign_budget\n", - " comment: Campaign budget\n", - " display_name: Campaign Budget\n", - " synonyms: ['budget', 'promotion budget']\n", - "\n", - " # Dimension columns from dim_dates\n", - " - name: full_date\n", - " expr: dim_dates.full_date\n", - " comment: Full date\n", - " display_name: Full Date\n", - " synonyms: ['date', 'transaction date']\n", - " - name: year\n", - " expr: dim_dates.year\n", - " comment: Year\n", - " display_name: Year\n", - " synonyms: ['calendar year', 'fiscal year']\n", - " - name: month\n", - " expr: dim_dates.month\n", - " comment: Month\n", - " display_name: Month\n", - " synonyms: ['calendar month', 'fiscal month']\n", - " - name: day\n", - " expr: dim_dates.day\n", - " comment: Day\n", - " display_name: Day\n", - " synonyms: ['calendar day', 'date day']\n", - " - name: weekday\n", - " expr: dim_dates.weekday\n", - " comment: Weekday\n", - " display_name: Weekday\n", - " synonyms: ['day of week', 'weekday name']\n", - " - name: quarter\n", - " expr: dim_dates.quarter\n", - " comment: Quarter\n", - " display_name: Quarter\n", - " synonyms: ['fiscal quarter', 'calendar quarter']\n", - " # Calculated datetime columns\n", - " - name: week\n", - " expr: \"date_trunc('week', sales_date)\"\n", - " comment: Week of the sale\n", - " display_name: Week\n", - " format:\n", - " type: date\n", - " date_format: year_week\n", - " leading_zeros: false\n", - " synonyms: ['sales week', 'transaction week']\n", - " - name: dayOfWeek\n", - " expr: dayofweek(sales_date)\n", - " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", - " display_name: Day of Week\n", - " format:\n", - " type: number\n", - " synonyms: ['weekday number', 'day index']\n", - " - name: YearMonth\n", - " expr: \"date_trunc('month', sales_date)\"\n", - " comment: Year and month of the sale\n", - " display_name: Year Month\n", - " format:\n", - " type: date\n", - " date_format: locale_number_month\n", - " leading_zeros: false\n", - " synonyms: ['month', 'year and month']\n", - "\n", - " # Dimension columns from dim_salespersons\n", - " - name: salesperson_name\n", - " expr: dim_salespersons.salesperson_name\n", - " comment: Salesperson name\n", - " display_name: Salesperson Name\n", - " synonyms: ['rep name', 'employee name']\n", - " - name: salesperson_role\n", - " expr: dim_salespersons.salesperson_role\n", - " comment: Salesperson role\n", - " display_name: Salesperson Role\n", - " synonyms: ['role', 'job title']\n", - "\n", - "measures:\n", - " # Calculated measures\n", - " - name: sales_sum\n", - " expr: SUM(total_amount)\n", - " comment: Total sales amount\n", - " display_name: Total Sales\n", - " synonyms: ['revenue', 'total sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_avg\n", - " expr: AVG(total_amount)\n", - " comment: Average sales amount\n", - " display_name: Average Sales\n", - " synonyms: ['average revenue', 'mean sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_stddev\n", - " expr: STDDEV(total_amount)\n", - " comment: Standard deviation of sales amount\n", - " display_name: Sales Standard Deviation\n", - " synonyms: ['sales variability', 'sales stddev']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_median\n", - " expr: percentile(total_amount, 0.5)\n", - " comment: Median sales amount\n", - " display_name: Sales Median\n", - " synonyms: ['median revenue', 'median sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile1\n", - " expr: percentile(total_amount, 0.25)\n", - " comment: First quartile (Q1) of sales amount\n", - " display_name: Sales Quartile 1\n", - " synonyms: ['Q1 sales', 'first quartile']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile2\n", - " expr: percentile(total_amount, 0.5)\n", - " comment: Second quartile (Q2/Median) of sales amount\n", - " display_name: Sales Quartile 2 (Median)\n", - " synonyms: ['Q2 sales', 'median']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile3\n", - " expr: percentile(total_amount, 0.75)\n", - " comment: Third quartile (Q3) of sales amount\n", - " display_name: Sales Quartile 3\n", - " synonyms: ['Q3 sales', 'third quartile']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_quartile4\n", - " expr: percentile(total_amount, 1.0)\n", - " comment: Fourth quartile (Q4/Max) of sales amount\n", - " display_name: Sales Quartile 4 (Max)\n", - " synonyms: ['Q4 sales', 'max sales']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_largest\n", - " expr: MAX(total_amount)\n", - " comment: Largest Sale\n", - " display_name: Largest Sale\n", - " synonyms: ['max sale', 'highest sale']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_smallest\n", - " expr: MIN(total_amount)\n", - " comment: Smallest Sale\n", - " display_name: Smallest Sale\n", - " synonyms: ['min sale', 'lowest sale']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - " - name: sales_mode\n", - " expr: mode(total_amount)\n", - " comment: Mode of sales amount\n", - " display_name: Sales Mode\n", - " synonyms: ['most common sale', 'mode']\n", - " format:\n", - " type: currency\n", - " currency_code: USD\n", - " decimal_places:\n", - " type: exact\n", - " places: 2\n", - " abbreviation: compact\n", - "\n", - " # Window measures\n", - " - name: previous_day_sales\n", - " expr: SUM(total_amount)\n", - " comment: Previous Day Sales\n", - " display_name: Previous Day Sales\n", - " synonyms: ['last day sales', 'yesterday sales']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 1 day\n", - " semiadditive: last\n", - " - name: current_day_sales\n", - " expr: SUM(total_amount)\n", - " comment: Current Day Sales\n", - " display_name: Current Day Sales\n", - " synonyms: ['today sales']\n", - " window:\n", - " - order: sales_date\n", - " range: current\n", - " semiadditive: last\n", - " - name: day_over_day_growth\n", - " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", - "\n", - " - name: running_total_sales\n", - " expr: SUM(total_amount)\n", - " comment: Running Total Sales\n", - " display_name: Running Total Sales\n", - " synonyms: ['running sales']\n", - " window:\n", - " - order: sales_date\n", - " range: cumulative\n", - " semiadditive: last\n", - "\n", - " - name: ytd_sales\n", - " expr: SUM(total_amount)\n", - " comment: YTD Sales\n", - " display_name: YTD Sales\n", - " synonyms: ['year-to-date sales']\n", - " window:\n", - " - order: sales_date\n", - " range: cumulative\n", - " semiadditive: last\n", - " - order: year\n", - " range: current\n", - " semiadditive: last\n", - "\n", - " - name: t7d_customers\n", - " expr: COUNT(DISTINCT customer_sk)\n", - " comment: Customers last 7 days\n", - " display_name: Customers last 7 days\n", - " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 7 day\n", - " semiadditive: last\n", - "\n", - " - name: t30d_customers\n", - " expr: COUNT(DISTINCT customer_sk)\n", - " comment: Customers last 30 days\n", - " display_name: Customers last 30 days\n", - " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", - " window:\n", - " - order: sales_date\n", - " range: trailing 30 day\n", - " semiadditive: last\n", - "\n", - "materialization:\n", - " schedule: every 1 hours\n", - " mode: relaxed\n", - "\n", - " materialized_views:\n", - " - name: baseline\n", - " type: unaggregated\n", - "\n", - " - name: store_lvl_aggregation\n", - " type: aggregated\n", - " dimensions:\n", - " - sales_date\n", - " - store_type\n", - " - store_name\n", - " measures:\n", - " - sales_sum\n", - " - sales_avg\n", - " - ytd_sales\n", - "\n", - " - name: product_lvl_aggregation\n", - " type: aggregated\n", - " dimensions:\n", - " - sales_date\n", - " - product_brand\n", - " - product_category\n", - " measures:\n", - " - sales_sum\n", - " - sales_avg\n", - " - ytd_sales\n", - " \n", - " - name: day_of_week_aggregation\n", - " type: aggregated\n", - " dimensions:\n", - " - dayOfWeek\n", - " measures:\n", - " - sales_sum\n", - " - sales_avg\n", - " - sales_stddev\n", - " - sales_quartile1\n", - " - sales_quartile2\n", - " - sales_quartile3\n", - " - sales_quartile4\n", - " - sales_largest\n", - " - sales_smallest\n", - "\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "4ae59ecf-2b57-4763-b0eb-0c13349ab7c4", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "DESCRIBE EXTENDED ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a191f22e-2e5b-4d0a-9fe3-bb0186d52e58", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "-- QUERY METRIC VIEW DIRECLTY\n", - "SELECT\n", - " dayOfWeek,\n", - " MEASURE(`sales_sum`),\n", - " MEASURE(`sales_avg`),\n", - " MEASURE(`sales_stddev`),\n", - " MEASURE(`sales_quartile1`),\n", - " MEASURE(`sales_quartile2`),\n", - " MEASURE(`sales_quartile3`),\n", - " MEASURE(`sales_quartile4`),\n", - " MEASURE(`sales_largest`),\n", - " MEASURE(`sales_smallest`)\n", - "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.sales_relationships\n", - "GROUP BY ALL\n", - "ORDER BY dayOfWeek" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "dcac9bae-2a84-471a-b1dd-76d6fbb5db00", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "-- QUERY MATERIALIZED METRIC VIEW\n", - "SELECT\n", - " dayOfWeek,\n", - " MEASURE(`sales_sum`),\n", - " MEASURE(`sales_avg`),\n", - " MEASURE(`sales_stddev`),\n", - " MEASURE(`sales_quartile1`),\n", - " MEASURE(`sales_quartile2`),\n", - " MEASURE(`sales_quartile3`),\n", - " MEASURE(`sales_quartile4`),\n", - " MEASURE(`sales_largest`),\n", - " MEASURE(`sales_smallest`)\n", - "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships\n", - "GROUP BY ALL\n", - "ORDER BY dayOfWeek" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "6bc68710-a09e-4238-9a88-d6a658968530", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "# Queries like the one below should run much faster, as the query engine will understand that it can use the materialized results!\n", - "\n", - "# To check if a query is using a materialized view, run EXPLAIN EXTENDED on your query to see the query plan. If the query is using materialized views, the leaf node includes __materialization_mat and the name of the materialization from the YAML file." - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "implicitDf": true, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "4e43fede-1398-43b1-843f-bc33305dd6c9", - "showTitle": false, - "tableResultSettingsMap": {}, - "title": "" - } - }, - "outputs": [], - "source": [ - "%sql\n", - "\n", - "-- QUERY MATERIALIZED METRIC VIEW\n", - "EXPLAIN EXTENDED\n", - "SELECT\n", - " dayOfWeek,\n", - " MEASURE(`sales_sum`),\n", - " MEASURE(`sales_avg`),\n", - " MEASURE(`sales_stddev`),\n", - " MEASURE(`sales_quartile1`),\n", - " MEASURE(`sales_quartile2`),\n", - " MEASURE(`sales_quartile3`),\n", - " MEASURE(`sales_quartile4`),\n", - " MEASURE(`sales_largest`),\n", - " MEASURE(`sales_smallest`)\n", - "FROM ${CATALOG_NAME}.${SCHEMA_NAME}.materialized_sales_relationships\n", - "GROUP BY ALL\n", - "ORDER BY dayOfWeek" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "computePreferences": null, - "dashboards": [], - "environmentMetadata": { - "base_environment": "", - "environment_version": "4" - }, - "inputWidgetPreferences": null, - "language": "python", - "notebookMetadata": { - "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 5175179492167482, - "dataframes": [ - "_sqldf" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "aaffdcfa-ecd7-444b-8e36-e3cdc6490ad2", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "source": [ + "Materialization for metric views is an [experimental](https://docs.databricks.com/aws/en/release-notes/release-types) feature. The idea is that you can create a materialized view on top of a metric view definition, and that will improve query performance. \n", + "\n", + "Check out more details about it here: https://docs.databricks.com/aws/en/metric-views/materialization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Parameters" + ] }, - "pythonIndentUnit": 2 - }, - "notebookName": "3_MaterializeMetricView", - "widgets": { - "CATALOG_NAME": { - "currentValue": "pedroz_catalog", - "nuid": "85e74c7a-766e-4e9e-a772-155cf1597384", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "validationRegex": null, - "widgetDisplayType": "Text" + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "9c2362d4-df39-4726-a68a-0879a54f74a0", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "defaultValue": "pedroz_catalog", - "label": "Catalog Name", - "name": "CATALOG_NAME", - "options": { - "autoCreated": null, - "validationRegex": null, - "widgetType": "text" + "outputs": [], + "source": [ + "dbutils.widgets.text(\"CATALOG_NAME\", \"\", \"Catalog Name\")\n", + "dbutils.widgets.text(\"SCHEMA_NAME\", \"\", \"Schema Name\")\n", + "CATALOG_NAME = dbutils.widgets.get(\"CATALOG_NAME\")\n", + "SCHEMA_NAME = dbutils.widgets.get(\"SCHEMA_NAME\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the metric view definition below is basically the same definition that we applied for the creation of the metric view from script ./1_CreateMetricView.ipynb. \n", + "\n", + "The main difference lies on the \"materialization\" key, which is introduced in this notebook, and shows how you can materialize a metric view (either unaggregated or aggregated) in a schedule." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "23ad13dc-894b-4c3f-9b26-4390697ebb59", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "widgetType": "text" - } + "outputs": [], + "source": [ + "sql_statement = f\"\"\"\n", + "CREATE OR REPLACE VIEW {CATALOG_NAME}.{SCHEMA_NAME}.materialized_sales_relationships WITH METRICS LANGUAGE YAML AS \n", + "$$\n", + "version: 1.1\n", + "\n", + "source: {CATALOG_NAME}.{SCHEMA_NAME}.fact_sales_normalized\n", + "\n", + "joins:\n", + " # Star join between fact table and dim_campaigns\n", + " - name: dim_campaigns\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_campaigns\n", + " \"on\": source.campaign_sk = dim_campaigns.campaign_sk\n", + " # Snowflake joins from dim_campaigns to campaign start/end dates\n", + " joins:\n", + " - name: campaign_start_date\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.start_date_sk = campaign_start_date.date_sk\n", + " - name: campaign_end_date\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": dim_campaigns.end_date_sk = campaign_end_date.date_sk\n", + " \n", + " # Star join between fact table and dim_customers\n", + " - name: dim_customers\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_customers\n", + " \"on\": source.customer_sk = dim_customers.customer_sk\n", + " \n", + " # Star join between fact table and dim_dates\n", + " - name: dim_dates\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_dates\n", + " \"on\": source.sales_date = dim_dates.full_date\n", + " \n", + " # Star join between fact table and dim_products\n", + " - name: dim_products\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_products\n", + " \"on\": source.product_sk = dim_products.product_sk\n", + " \n", + " # Star join between fact table and dim_salespersons\n", + " - name: dim_salespersons\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_salespersons\n", + " \"on\": source.salesperson_sk = dim_salespersons.salesperson_sk\n", + "\n", + " # Star join between fact table and dim_stores\n", + " - name: dim_stores\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_stores\n", + " \"on\": source.store_sk = dim_stores.store_sk\n", + " # Snowflake join from dim_stores to store_manager_salesperson\n", + " joins:\n", + " - name: store_manager_salesperson\n", + " source: {CATALOG_NAME}.{SCHEMA_NAME}.dim_salespersons\n", + " \"on\": dim_stores.store_manager_sk = store_manager_salesperson.salesperson_sk\n", + "\n", + "comment: \"Metric view for analyzing sales relationships across campaigns, customers, dates, products, salespersons, and stores. Includes time-based dimensions and aggregated sales dimensions. Also includes all columns from dimension tables for richer analysis.\"\n", + "\n", + "dimensions:\n", + "\n", + " # Columns from fact table\n", + " - name: sales_date\n", + " expr: date(source.sales_date)\n", + " comment: Sales Date\n", + " display_name: Sales Date\n", + " synonyms: ['date of sale']\n", + " - name: total_amount\n", + " expr: total_amount\n", + " comment: Sales amount\n", + " display_name: Sales amount\n", + " synonyms: ['total amount', 'sale amount']\n", + "\n", + " # Dimension columns from dim_customers\n", + " - name: first_name\n", + " expr: dim_customers.first_name\n", + " comment: Customer first name\n", + " display_name: First Name\n", + " synonyms: ['customer first', 'given name']\n", + " - name: last_name\n", + " expr: dim_customers.last_name\n", + " comment: Customer last name\n", + " display_name: Last Name\n", + " synonyms: ['customer last', 'surname']\n", + " - name: customer_segment\n", + " expr: dim_customers.customer_segment\n", + " comment: Customer segment\n", + " display_name: Customer Segment\n", + " synonyms: ['segment', 'customer type']\n", + " - name: customer_email\n", + " expr: dim_customers.email\n", + " comment: Customer email\n", + " display_name: Customer Email\n", + " synonyms: ['email', 'contact email']\n", + " - name: customer_residential_location\n", + " expr: dim_customers.residential_location\n", + " comment: Customer residential location\n", + " display_name: Customer Residential Location\n", + " synonyms: ['residence', 'home location']\n", + " # Calculated customer columns\n", + " - name: customer_name\n", + " expr: dim_customers.first_name || ' ' || dim_customers.last_name\n", + " comment: Customer name\n", + " display_name: Customer Name\n", + " synonyms: ['name', 'full name']\n", + "\n", + " # Dimension columns from dim_stores\n", + " - name: store_name\n", + " expr: dim_stores.store_name\n", + " comment: Store name\n", + " display_name: Store Name\n", + " synonyms: ['location name', 'retail name']\n", + " - name: store_type\n", + " expr: dim_stores.store_type\n", + " comment: Store type\n", + " display_name: Store Type\n", + " synonyms: ['type', 'retail type']\n", + " - name: store_location\n", + " expr: dim_stores.store_location\n", + " comment: Store location\n", + " display_name: Store Location\n", + " synonyms: ['location', 'address']\n", + "\n", + " # Dimension columns from dim_products\n", + " - name: product_name\n", + " expr: dim_products.product_name\n", + " comment: Product name\n", + " display_name: Product Name\n", + " synonyms: ['item name', 'sku name']\n", + " - name: product_category\n", + " expr: dim_products.category\n", + " comment: Product category\n", + " display_name: Product Category\n", + " synonyms: ['category', 'product type']\n", + " - name: product_brand\n", + " expr: dim_products.brand\n", + " comment: Product brand\n", + " display_name: Brand\n", + " synonyms: ['brand', 'manufacturer']\n", + " - name: product_origin_location\n", + " expr: dim_products.origin_location\n", + " comment: Product origin location\n", + " display_name: Origin Location\n", + " synonyms: ['origin', 'source location']\n", + "\n", + " # Dimension columns from dim_campaigns\n", + " - name: campaign_name\n", + " expr: dim_campaigns.campaign_name\n", + " comment: Campaign name\n", + " display_name: Campaign Name\n", + " synonyms: ['promotion name', 'marketing name']\n", + " - name: campaign_budget\n", + " expr: dim_campaigns.campaign_budget\n", + " comment: Campaign budget\n", + " display_name: Campaign Budget\n", + " synonyms: ['budget', 'promotion budget']\n", + "\n", + " # Dimension columns from dim_dates\n", + " - name: full_date\n", + " expr: dim_dates.full_date\n", + " comment: Full date\n", + " display_name: Full Date\n", + " synonyms: ['date', 'transaction date']\n", + " - name: year\n", + " expr: dim_dates.year\n", + " comment: Year\n", + " display_name: Year\n", + " synonyms: ['calendar year', 'fiscal year']\n", + " - name: month\n", + " expr: dim_dates.month\n", + " comment: Month\n", + " display_name: Month\n", + " synonyms: ['calendar month', 'fiscal month']\n", + " - name: day\n", + " expr: dim_dates.day\n", + " comment: Day\n", + " display_name: Day\n", + " synonyms: ['calendar day', 'date day']\n", + " - name: weekday\n", + " expr: dim_dates.weekday\n", + " comment: Weekday\n", + " display_name: Weekday\n", + " synonyms: ['day of week', 'weekday name']\n", + " - name: quarter\n", + " expr: dim_dates.quarter\n", + " comment: Quarter\n", + " display_name: Quarter\n", + " synonyms: ['fiscal quarter', 'calendar quarter']\n", + " # Calculated datetime columns\n", + " - name: week\n", + " expr: \"date_trunc('week', sales_date)\"\n", + " comment: Week of the sale\n", + " display_name: Week\n", + " format:\n", + " type: date\n", + " date_format: year_week\n", + " leading_zeros: false\n", + " synonyms: ['sales week', 'transaction week']\n", + " - name: dayOfWeek\n", + " expr: dayofweek(sales_date)\n", + " comment: \"Day of the week for the sale (1=Sunday, 7=Saturday)\"\n", + " display_name: Day of Week\n", + " format:\n", + " type: number\n", + " synonyms: ['weekday number', 'day index']\n", + " - name: YearMonth\n", + " expr: \"date_trunc('month', sales_date)\"\n", + " comment: Year and month of the sale\n", + " display_name: Year Month\n", + " format:\n", + " type: date\n", + " date_format: locale_number_month\n", + " leading_zeros: false\n", + " synonyms: ['month', 'year and month']\n", + "\n", + " # Dimension columns from dim_salespersons\n", + " - name: salesperson_name\n", + " expr: dim_salespersons.salesperson_name\n", + " comment: Salesperson name\n", + " display_name: Salesperson Name\n", + " synonyms: ['rep name', 'employee name']\n", + " - name: salesperson_role\n", + " expr: dim_salespersons.salesperson_role\n", + " comment: Salesperson role\n", + " display_name: Salesperson Role\n", + " synonyms: ['role', 'job title']\n", + "\n", + "measures:\n", + " # Calculated measures\n", + " - name: sales_sum\n", + " expr: SUM(total_amount)\n", + " comment: Total sales amount\n", + " display_name: Total Sales\n", + " synonyms: ['revenue', 'total sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_avg\n", + " expr: AVG(total_amount)\n", + " comment: Average sales amount\n", + " display_name: Average Sales\n", + " synonyms: ['average revenue', 'mean sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_stddev\n", + " expr: STDDEV(total_amount)\n", + " comment: Standard deviation of sales amount\n", + " display_name: Sales Standard Deviation\n", + " synonyms: ['sales variability', 'sales stddev']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_median\n", + " expr: percentile(total_amount, 0.5)\n", + " comment: Median sales amount\n", + " display_name: Sales Median\n", + " synonyms: ['median revenue', 'median sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile1\n", + " expr: percentile(total_amount, 0.25)\n", + " comment: First quartile (Q1) of sales amount\n", + " display_name: Sales Quartile 1\n", + " synonyms: ['Q1 sales', 'first quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile2\n", + " expr: percentile(total_amount, 0.5)\n", + " comment: Second quartile (Q2/Median) of sales amount\n", + " display_name: Sales Quartile 2 (Median)\n", + " synonyms: ['Q2 sales', 'median']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile3\n", + " expr: percentile(total_amount, 0.75)\n", + " comment: Third quartile (Q3) of sales amount\n", + " display_name: Sales Quartile 3\n", + " synonyms: ['Q3 sales', 'third quartile']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_quartile4\n", + " expr: percentile(total_amount, 1.0)\n", + " comment: Fourth quartile (Q4/Max) of sales amount\n", + " display_name: Sales Quartile 4 (Max)\n", + " synonyms: ['Q4 sales', 'max sales']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_largest\n", + " expr: MAX(total_amount)\n", + " comment: Largest Sale\n", + " display_name: Largest Sale\n", + " synonyms: ['max sale', 'highest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_smallest\n", + " expr: MIN(total_amount)\n", + " comment: Smallest Sale\n", + " display_name: Smallest Sale\n", + " synonyms: ['min sale', 'lowest sale']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + " - name: sales_mode\n", + " expr: mode(total_amount)\n", + " comment: Mode of sales amount\n", + " display_name: Sales Mode\n", + " synonyms: ['most common sale', 'mode']\n", + " format:\n", + " type: currency\n", + " currency_code: USD\n", + " decimal_places:\n", + " type: exact\n", + " places: 2\n", + " abbreviation: compact\n", + "\n", + " # Window measures\n", + " - name: previous_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Previous Day Sales\n", + " display_name: Previous Day Sales\n", + " synonyms: ['last day sales', 'yesterday sales']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 1 day\n", + " semiadditive: last\n", + " - name: current_day_sales\n", + " expr: SUM(total_amount)\n", + " comment: Current Day Sales\n", + " display_name: Current Day Sales\n", + " synonyms: ['today sales']\n", + " window:\n", + " - order: sales_date\n", + " range: current\n", + " semiadditive: last\n", + " - name: day_over_day_growth\n", + " expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100\n", + "\n", + " - name: running_total_sales\n", + " expr: SUM(total_amount)\n", + " comment: Running Total Sales\n", + " display_name: Running Total Sales\n", + " synonyms: ['running sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + "\n", + " - name: ytd_sales\n", + " expr: SUM(total_amount)\n", + " comment: YTD Sales\n", + " display_name: YTD Sales\n", + " synonyms: ['year-to-date sales']\n", + " window:\n", + " - order: sales_date\n", + " range: cumulative\n", + " semiadditive: last\n", + " - order: year\n", + " range: current\n", + " semiadditive: last\n", + "\n", + " - name: t7d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 7 days\n", + " display_name: Customers last 7 days\n", + " synonyms: ['last 7 days customers', 'number of customers last 7 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 7 day\n", + " semiadditive: last\n", + "\n", + " - name: t30d_customers\n", + " expr: COUNT(DISTINCT customer_sk)\n", + " comment: Customers last 30 days\n", + " display_name: Customers last 30 days\n", + " synonyms: ['last 30 days customers', 'number of customers last 30 days']\n", + " window:\n", + " - order: sales_date\n", + " range: trailing 30 day\n", + " semiadditive: last\n", + "\n", + "materialization:\n", + " schedule: every 10 hours\n", + " mode: relaxed\n", + "\n", + " materialized_views:\n", + " - name: baseline\n", + " type: unaggregated\n", + " \n", + " - name: day_of_week_aggregation\n", + " type: aggregated\n", + " dimensions:\n", + " - dayOfWeek\n", + " measures:\n", + " - sales_sum\n", + " - sales_avg\n", + " - sales_stddev\n", + " - sales_quartile1\n", + " - sales_quartile2\n", + " - sales_quartile3\n", + " - sales_quartile4\n", + " - sales_largest\n", + " - sales_smallest\n", + "\n", + "$$\n", + "\"\"\"\n", + "\n", + "spark.sql(sql_statement)" + ] }, - "SCHEMA_NAME": { - "currentValue": "metric_views_schema", - "nuid": "de4765bb-0385-4c48-aeaf-8b41fdb96113", - "typedWidgetInfo": { - "autoCreated": false, - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "validationRegex": null, - "widgetDisplayType": "Text" + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "4ae59ecf-2b57-4763-b0eb-0c13349ab7c4", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "parameterDataType": "String" - }, - "widgetInfo": { - "defaultValue": "metric_views_schema", - "label": "Schema Name", - "name": "SCHEMA_NAME", - "options": { - "autoCreated": null, - "validationRegex": null, - "widgetType": "text" + "outputs": [], + "source": [ + "display(spark.sql(f\"DESCRIBE EXTENDED {CATALOG_NAME}.{SCHEMA_NAME}.materialized_sales_relationships\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Describe Metric View" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Query Non-Materialized Metric View" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "a191f22e-2e5b-4d0a-9fe3-bb0186d52e58", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } }, - "widgetType": "text" - } + "outputs": [], + "source": [ + "# QUERY METRIC VIEW DIRECTLY\n", + "df = spark.sql(f\"\"\"\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM {CATALOG_NAME}.{SCHEMA_NAME}.sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek\n", + "\"\"\")\n", + "display(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Query Materialized Metric View" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "dcac9bae-2a84-471a-b1dd-76d6fbb5db00", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# QUERY MATERIALIZED METRIC VIEW\n", + "df = spark.sql(f\"\"\"\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM {CATALOG_NAME}.{SCHEMA_NAME}.materialized_sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek\n", + "\"\"\")\n", + "display(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Queries like the one below should run much faster, as the query engine will understand that it can use the materialized results!\n", + "\n", + "To check if a query is using a materialized view, run `EXPLAIN EXTENDED` on your query to see the query plan. If the query is using materialized views, the leaf node includes `__materialization_mat` and the name of the materialization from the YAML file. \n", + "\n", + "You can also check the materialized metric view in UC UI, and from there you'll be able to see the refresh status and frequency of updates.\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "implicitDf": true, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "4e43fede-1398-43b1-843f-bc33305dd6c9", + "showTitle": false, + "tableResultSettingsMap": {}, + "title": "" + } + }, + "outputs": [], + "source": [ + "# QUERY MATERIALIZED METRIC VIEW\n", + "df = spark.sql(f\"\"\"\n", + "EXPLAIN EXTENDED\n", + "SELECT\n", + " dayOfWeek,\n", + " MEASURE(`sales_sum`),\n", + " MEASURE(`sales_avg`),\n", + " MEASURE(`sales_stddev`),\n", + " MEASURE(`sales_quartile1`),\n", + " MEASURE(`sales_quartile2`),\n", + " MEASURE(`sales_quartile3`),\n", + " MEASURE(`sales_quartile4`),\n", + " MEASURE(`sales_largest`),\n", + " MEASURE(`sales_smallest`)\n", + "FROM {CATALOG_NAME}.{SCHEMA_NAME}.materialized_sales_relationships\n", + "GROUP BY ALL\n", + "ORDER BY dayOfWeek\n", + "\"\"\")\n", + "display(df)" + ] + } + ], + "metadata": { + "application/vnd.databricks.v1+notebook": { + "computePreferences": null, + "dashboards": [], + "environmentMetadata": { + "base_environment": "", + "environment_version": "4" + }, + "inputWidgetPreferences": null, + "language": "python", + "notebookMetadata": { + "mostRecentlyExecutedCommandWithImplicitDF": { + "commandId": 5175179492167482, + "dataframes": [ + "_sqldf" + ] + }, + "pythonIndentUnit": 2 + }, + "notebookName": "3_MaterializeMetricView", + "widgets": { + "CATALOG_NAME": { + "currentValue": "pedroz_catalog", + "nuid": "85e74c7a-766e-4e9e-a772-155cf1597384", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "pedroz_catalog", + "label": "Catalog Name", + "name": "CATALOG_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + }, + "SCHEMA_NAME": { + "currentValue": "metric_views_schema", + "nuid": "de4765bb-0385-4c48-aeaf-8b41fdb96113", + "typedWidgetInfo": { + "autoCreated": false, + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "validationRegex": null, + "widgetDisplayType": "Text" + }, + "parameterDataType": "String" + }, + "widgetInfo": { + "defaultValue": "metric_views_schema", + "label": "Schema Name", + "name": "SCHEMA_NAME", + "options": { + "autoCreated": null, + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" + } + } + } + }, + "language_info": { + "name": "python" } - } }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/data-warehousing/dbrx-metric-views/README.md b/data-warehousing/dbrx-metric-views/README.md index 08802c9..f31015a 100644 --- a/data-warehousing/dbrx-metric-views/README.md +++ b/data-warehousing/dbrx-metric-views/README.md @@ -1,13 +1,99 @@ -## Databricks Metric Views - Retail Store Dimensional Model (demo) +# Databricks Metric Views - Retail Store Dimensional Model dimensional model -This is a demo on how you can use Metric Views in Databricks to create your semantic models directly in our platform. -This demo is using the [Retail Store Star Schema Dataset](https://www.kaggle.com/datasets/shrinivasv/retail-store-star-schema-dataset?select=fact_sales_denormalized.csv). +This demo shows how to use [Metric Views](https://docs.databricks.com/aws/en/metric-views/) in Databricks to create semantic models directly on the platform. Adding your semantic models in Databricks lets you benefit from Databricks compute for querying your data, while being fully integrated with Unity Catalog for unified governance and optimal performance. -Adding your semantic models directly in Databricks lets you benefit from using the Databricks compute for querying your data, despites also being integrated to the Unity Catalog, allowing for truly unified governance and optimal performance. +## Dataset + +This demo uses the [Retail Store Star Schema Dataset](https://www.kaggle.com/datasets/shrinivasv/retail-store-star-schema-dataset) from Kaggle. The dataset contains a star schema with a `fact_sales_normalized` fact table and the following dimension tables: + +- `dim_campaigns` - Marketing campaigns with budget and date ranges +- `dim_customers` - Customer demographics and segmentation +- `dim_dates` - Date dimension for time-based analysis +- `dim_products` - Product catalog with categories and brands +- `dim_salespersons` - Sales team roles and details +- `dim_stores` - Store locations and types + +## Prerequisites + +Before running the notebooks, ensure you have: + +1. **Unity Catalog enabled workspace** with permissions to create catalogs, schemas, and volumes. +2. **Serverless compute** enabled on your workspace (materialized metric views require serverless). +3. **A SQL Warehouse** - needed for the Genie Space and Dashboard creation in notebook 2. To find your warehouse ID: + - Navigate to **SQL Warehouses** in the Databricks sidebar + - Click on your warehouse + - The warehouse ID is in the URL: `https:///sql/warehouses/` +4. **Kaggle access** - the dataset is downloaded via `kagglehub` (no API key required for public datasets). + +## What Gets Created + +| Resource | Name | Description | +|----------|------|-------------| +| Catalog | `` | Unity Catalog catalog for all objects | +| Schema | `.` | Schema containing tables and views | +| Volume | `..kaggle_files` | Volume for staging Kaggle CSV files | +| Tables | 7 Delta tables | Fact and dimension tables from the dataset | +| Metric View | `sales_relationships` | Metric view with joins, dimensions, measures, and window measures | +| Materialized Metric View | `materialized_sales_relationships` | Same metric view with materialization for improved query performance | +| Genie Space | `Sample Sales Genie Space` | AI-powered natural language query interface | +| Dashboard | `dashboard_parameterized.lvdash.json` | AI/BI dashboard consuming the metric view | + +## Notebooks + +Run the notebooks in order: + +### [`0_IngestData.ipynb`](./0_IngestData.ipynb) +Downloads the Kaggle dataset into a UC Volume and loads each CSV file as a Delta table. Creates the catalog, schema, and volume if they don't exist. + +**Parameters:** `CATALOG_NAME`, `SCHEMA_NAME`, `VOLUME_PATH` + +### [`1_CreateMetricView.ipynb`](./1_CreateMetricView.ipynb) +Creates the `sales_relationships` metric view with YAML definition including: +- Star and snowflake joins across all dimension tables +- Dimensions with semantic metadata (display names, synonyms, comments) +- Aggregate measures (sum, avg, stddev, percentiles, min, max, mode) +- Window measures (day-over-day growth, running totals, YTD, trailing 7d/30d customers) + +**Parameters:** `CATALOG_NAME`, `SCHEMA_NAME` + +### [`2_QueryMetricView.ipynb`](./2_QueryMetricView.ipynb) +Demonstrates querying the metric view using `MEASURE()` syntax, and optionally creates a Genie Space and a parameterized AI/BI Dashboard from serialized templates. + +**Parameters:** `CATALOG_NAME`, `SCHEMA_NAME`, `warehouse_id` + +### [`3_MaterializeMetricView.ipynb`](./3_MaterializeMetricView.ipynb) +Creates a materialized version of the metric view with scheduled refreshes. Compares query performance between the non-materialized and materialized versions, and shows how to verify materialization usage via `EXPLAIN EXTENDED`. + +**Parameters:** `CATALOG_NAME`, `SCHEMA_NAME` + +## Directory Structure + +``` +dbrx-metric-views/ +├── 0_IngestData.ipynb # Data ingestion from Kaggle +├── 1_CreateMetricView.ipynb # Metric view creation +├── 2_QueryMetricView.ipynb # Querying, Genie Space, and Dashboard +├── 3_MaterializeMetricView.ipynb # Materialized metric view +├── README.md +├── dashboard_and_genie/ +│ ├── dashboard.lvdash.json # Template dashboard definition +│ ├── dashboard_parameterized.lvdash.json # Parameterized dashboard (generated) +│ └── genie_space.json # Serialized Genie Space definition +└── figures/ + ├── dimensional_model.png # Star schema ERD + ├── materialized_metric_view_ui.png # UC UI showing materialization status + ├── metric_view_in_dashboards.png # Dashboard screenshot + └── metric_view_in_genie.png # Genie Space screenshot +``` + +## Resources -For more info on Metric Views, make sure to also check our public-facing materials: - [Docs - Unity Catalog metric views](https://docs.databricks.com/aws/en/metric-views/) +- [Docs - Metric view joins](https://docs.databricks.com/aws/en/metric-views/data-modeling/joins) +- [Docs - Semantic metadata](https://docs.databricks.com/aws/en/metric-views/data-modeling/semantic-metadata) +- [Docs - Window measures](https://docs.databricks.com/aws/en/metric-views/data-modeling/window-measures) +- [Docs - Materialization](https://docs.databricks.com/aws/en/metric-views/materialization) - [Video - Unity Catalog Metric Views Overview](https://www.databricks.com/resources/demos/videos/unity-catalog-metric-views-overview) -- [Video - Understanding Your Business With Unity Catalog Metric Views](https://www.databricks.com/resources/demos/videos/understanding-your-business-with-unity-catalog-metric-view) \ No newline at end of file +- [Video - Understanding Your Business With Unity Catalog Metric Views](https://www.databricks.com/resources/demos/videos/understanding-your-business-with-unity-catalog-metric-view) diff --git a/data-warehousing/dbrx-metric-views/figures/materialized_metric_view_ui.png b/data-warehousing/dbrx-metric-views/figures/materialized_metric_view_ui.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f85fe094f71781626fc7c8aac7c6bcaeb7063b GIT binary patch literal 174927 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 Tl65TP!yf}Z;~gp6Y|j4=_i7&o literal 0 HcmV?d00001 diff --git a/data-warehousing/genie-cicd.zip b/data-warehousing/genie-cicd.zip new file mode 100644 index 0000000000000000000000000000000000000000..b76d4842ef5ec1f25bcc49094a06619cfef4094b GIT binary patch literal 32086 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 m?|l6S3b}t_ys-T{h5sQr^wXUJ423;xqL2W+( literal 0 HcmV?d00001