From 77cae64ccd89a451d89fdcf2b812c8dc061479bc Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Tue, 15 Dec 2020 14:21:51 -0800 Subject: [PATCH] feat: Add new default dashboard (#12044) * feat: Add new default dashboard * Fix license * Update data URL --- .../datasets/commands/importers/v1/utils.py | 22 +- superset/db_engine_specs/sqlite.py | 9 + superset/examples/configs/charts/Filter.yaml | 48 ++ .../Number_of_Deals_for_each_Combination.yaml | 56 +++ .../charts/Overall_Sales_By_Product_Line.yaml | 70 +++ ...Proportion_of_Revenue_by_Product_Line.yaml | 78 ++++ .../configs/charts/Quarterly_Sales.yaml | 89 ++++ .../Quarterly_Sales_By_Product_Line.yaml | 92 ++++ .../configs/charts/Revenue_by_Deal_Size.yaml | 79 ++++ ...asonality_of_Revenue_per_Product_Line.yaml | 62 +++ .../configs/charts/Total_Items_Sold.yaml | 57 +++ .../Total_Items_Sold_By_Product_Line.yaml | 68 +++ .../configs/charts/Total_Revenue.yaml | 58 +++ .../configs/dashboards/Sales_Dashboard.yaml | 415 ++++++++++++++++++ .../datasets/examples/Cleaned_Sales_Data.yaml | 293 +++++++++++++ 15 files changed, 1489 insertions(+), 7 deletions(-) create mode 100644 superset/examples/configs/charts/Filter.yaml create mode 100644 superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml create mode 100644 superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml create mode 100644 superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml create mode 100644 superset/examples/configs/charts/Quarterly_Sales.yaml create mode 100644 superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml create mode 100644 superset/examples/configs/charts/Revenue_by_Deal_Size.yaml create mode 100644 superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml create mode 100644 superset/examples/configs/charts/Total_Items_Sold.yaml create mode 100644 superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml create mode 100644 superset/examples/configs/charts/Total_Revenue.yaml create mode 100644 superset/examples/configs/dashboards/Sales_Dashboard.yaml create mode 100644 superset/examples/configs/datasets/examples/Cleaned_Sales_Data.yaml diff --git a/superset/datasets/commands/importers/v1/utils.py b/superset/datasets/commands/importers/v1/utils.py index 92b660d9e5c..9941b1d2d3c 100644 --- a/superset/datasets/commands/importers/v1/utils.py +++ b/superset/datasets/commands/importers/v1/utils.py @@ -22,7 +22,7 @@ from typing import Any, Dict from urllib import request import pandas as pd -from sqlalchemy import Date, Float, String +from sqlalchemy import BigInteger, Date, DateTime, Float, String, Text from sqlalchemy.orm import Session from sqlalchemy.sql.visitors import VisitableType @@ -36,12 +36,20 @@ VARCHAR = re.compile(r"VARCHAR\((\d+)\)", re.IGNORECASE) JSON_KEYS = {"params", "template_params", "extra"} -def get_sqla_type(native_type: str) -> VisitableType: - if native_type.upper() == "DATE": - return Date() +type_map = { + "BIGINT": BigInteger(), + "FLOAT": Float(), + "DATE": Date(), + "DOUBLE PRECISION": Float(precision=32), + "TEXT": Text(), + "TIMESTAMP WITHOUT TIME ZONE": DateTime(timezone=False), + "TIMESTAMP WITH TIME ZONE": DateTime(timezone=True), +} - if native_type.upper() == "FLOAT": - return Float() + +def get_sqla_type(native_type: str) -> VisitableType: + if native_type.upper() in type_map: + return type_map[native_type.upper()] match = VARCHAR.match(native_type) if match: @@ -102,7 +110,7 @@ def import_dataset( # convert temporal columns for column_name, sqla_type in dtype.items(): - if isinstance(sqla_type, Date): + if isinstance(sqla_type, (Date, DateTime)): df[column_name] = pd.to_datetime(df[column_name]) df.to_sql( diff --git a/superset/db_engine_specs/sqlite.py b/superset/db_engine_specs/sqlite.py index d105d9b748a..9b0aa9f33e0 100644 --- a/superset/db_engine_specs/sqlite.py +++ b/superset/db_engine_specs/sqlite.py @@ -31,6 +31,7 @@ class SqliteEngineSpec(BaseEngineSpec): engine = "sqlite" engine_name = "SQLite" + # pylint: disable=line-too-long _time_grain_expressions = { None: "{col}", "PT1S": "DATETIME(STRFTIME('%Y-%m-%dT%H:%M:%S', {col}))", @@ -39,6 +40,14 @@ class SqliteEngineSpec(BaseEngineSpec): "P1D": "DATE({col})", "P1W": "DATE({col}, -strftime('%W', {col}) || ' days')", "P1M": "DATE({col}, -strftime('%d', {col}) || ' days', '+1 day')", + "P0.25Y": ( + "DATETIME(STRFTIME('%Y-', {col}) || " # year + "SUBSTR('00' || " # pad with zeros to 2 chars + "((CAST(STRFTIME('%m', {col}) AS INTEGER)) - " # month as integer + "(((CAST(STRFTIME('%m', {col}) AS INTEGER)) - 1) % 3)), " # month in quarter + "-2) || " # close pad + "'-01T00:00:00')" + ), "P1Y": "DATETIME(STRFTIME('%Y-01-01T00:00:00', {col}))", "P1W/1970-01-03T00:00:00Z": "DATE({col}, 'weekday 6')", "1969-12-28T00:00:00Z/P1W": "DATE({col}, 'weekday 0', '-7 days')", diff --git a/superset/examples/configs/charts/Filter.yaml b/superset/examples/configs/charts/Filter.yaml new file mode 100644 index 00000000000..1acb5066301 --- /dev/null +++ b/superset/examples/configs/charts/Filter.yaml @@ -0,0 +1,48 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Filter +viz_type: filter_box +params: + adhoc_filters: [] + datasource: 23__table + date_filter: true + filter_configs: + - asc: true + clearable: true + column: ProductLine + key: 7oUjq15eQ + multiple: true + searchAllOptions: false + - asc: true + clearable: true + column: DealSize + key: c3hO6Eub8 + multiple: true + searchAllOptions: false + granularity_sqla: OrderDate + queryFields: {} + slice_id: 671 + time_range: '2003-01-01T00:00:00 : 2005-06-01T00:00:00' + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: filter_box +cache_timeout: null +uuid: a5689df7-98fc-7c51-602c-ebd92dc3ec70 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml b/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml new file mode 100644 index 00000000000..af9b4e84a7b --- /dev/null +++ b/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml @@ -0,0 +1,56 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Number of Deals (for each Combination) +viz_type: heatmap +params: + adhoc_filters: [] + all_columns_x: DealSize + all_columns_y: ProductLine + bottom_margin: 100 + canvas_image_rendering: pixelated + datasource: 23__table + granularity_sqla: OrderDate + left_margin: 75 + linear_color_scheme: schemePuBuGn + metric: count + normalize_across: heatmap + normalized: true + queryFields: + metric: metrics + row_limit: null + show_legend: true + show_perc: true + show_values: true + slice_id: 2810 + sort_x_axis: alpha_asc + sort_y_axis: alpha_asc + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: heatmap + xscale_interval: null + y_axis_bounds: + - null + - null + y_axis_format: SMART_NUMBER + yscale_interval: null +cache_timeout: null +uuid: bd20fc69-dd51-46c1-99b5-09e37a434bf1 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml b/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml new file mode 100644 index 00000000000..26b395d47b1 --- /dev/null +++ b/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml @@ -0,0 +1,70 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Overall Sales (By Product Line) +viz_type: pie +params: + adhoc_filters: [] + color_scheme: supersetColors + datasource: 23__table + donut: true + granularity_sqla: OrderDate + groupby: + - ProductLine + innerRadius: 41 + label_line: true + labels_outside: true + metric: + aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: (Sales) + optionName: metric_3sk6pfj3m7i_64h77bs4sly + sqlExpression: null + number_format: SMART_NUMBER + outerRadius: 65 + pie_label_type: key + queryFields: + groupby: groupby + metric: metrics + row_limit: null + show_labels: true + show_labels_threshold: 2 + show_legend: false + slice_id: 670 + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: pie +cache_timeout: null +uuid: 09c497e0-f442-1121-c9e7-671e37750424 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml b/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml new file mode 100644 index 00000000000..bc671e98f0a --- /dev/null +++ b/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml @@ -0,0 +1,78 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Proportion of Revenue by Product Line +viz_type: area +params: + adhoc_filters: [] + annotation_layers: [] + bottom_margin: auto + color_scheme: supersetColors + comparison_type: values + contribution: true + datasource: 23__table + granularity_sqla: OrderDate + groupby: + - ProductLine + label_colors: {} + line_interpolation: linear + metrics: + - aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: (Sales) + optionName: metric_3is69ofceho_6d0ezok7ry6 + sqlExpression: null + order_desc: true + queryFields: + groupby: groupby + metrics: metrics + rich_tooltip: true + rolling_type: None + row_limit: null + show_brush: auto + show_legend: true + stacked_style: stack + time_grain_sqla: P1M + time_range: '2003-01-01T00:00:00 : 2005-06-01T00:00:00' + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: area + x_axis_format: smart_date + x_ticks_layout: auto + y_axis_bounds: + - null + - null + y_axis_format: SMART_NUMBER +cache_timeout: null +uuid: 08aff161-f60c-4cb3-a225-dc9b1140d2e3 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Quarterly_Sales.yaml b/superset/examples/configs/charts/Quarterly_Sales.yaml new file mode 100644 index 00000000000..acdd2673101 --- /dev/null +++ b/superset/examples/configs/charts/Quarterly_Sales.yaml @@ -0,0 +1,89 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Quarterly Sales +viz_type: bar +params: + adhoc_filters: [] + annotation_layers: [] + bottom_margin: auto + color_scheme: supersetColors + comparison_type: null + datasource: 23__table + granularity_sqla: OrderDate + groupby: [] + label_colors: + Classic Cars: '#5AC189' + Motorcycles: '#666666' + Planes: '#FCC700' + QuantityOrdered: '#454E7C' + SUM(Sales): '#1FA8C9' + Ships: '#A868B7' + Trains: '#3CCCCB' + Trucks and Buses: '#E04355' + Vintage Cars: '#FF7F44' + left_margin: auto + line_interpolation: linear + metrics: + - aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: SUM(Sales) + optionName: metric_tjn8bh6y44_7o4etwsqhal + sqlExpression: null + order_desc: true + queryFields: + groupby: groupby + metrics: metrics + rich_tooltip: true + rolling_type: null + row_limit: 10000 + show_brush: auto + show_legend: false + slice_id: 668 + time_compare: null + time_grain_sqla: P0.25Y + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: bar + x_axis_format: '%m/%d/%Y' + x_axis_label: Quarter starting + x_ticks_layout: auto + y_axis_bounds: + - null + - null + y_axis_format: null + y_axis_label: Total Sales +cache_timeout: null +uuid: 692aca26-a526-85db-c94c-411c91cc1077 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml b/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml new file mode 100644 index 00000000000..85968bd81ee --- /dev/null +++ b/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml @@ -0,0 +1,92 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Quarterly Sales (By Product Line) +viz_type: bar +params: + adhoc_filters: [] + annotation_layers: [] + bar_stacked: true + bottom_margin: auto + color_scheme: supersetColors + comparison_type: null + datasource: 23__table + granularity_sqla: OrderDate + groupby: + - ProductLine + label_colors: + Classic Cars: '#5AC189' + Motorcycles: '#666666' + Planes: '#FCC700' + QuantityOrdered: '#454E7C' + SUM(Sales): '#1FA8C9' + Ships: '#A868B7' + Trains: '#3CCCCB' + Trucks and Buses: '#E04355' + Vintage Cars: '#FF7F44' + left_margin: auto + line_interpolation: linear + metrics: + - aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: SUM(Sales) + optionName: metric_tjn8bh6y44_7o4etwsqhal + sqlExpression: null + order_desc: true + queryFields: + groupby: groupby + metrics: metrics + rich_tooltip: true + rolling_type: null + row_limit: 10000 + show_brush: auto + show_controls: false + show_legend: true + slice_id: 2806 + time_compare: null + time_grain_sqla: P0.25Y + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: bar + x_axis_format: '%m/%d/%Y' + x_axis_label: Quarter starting + x_ticks_layout: "45\xB0" + y_axis_bounds: + - null + - null + y_axis_format: null + y_axis_label: Revenue ($) +cache_timeout: null +uuid: db9609e4-9b78-4a32-87a7-4d9e19d51cd8 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml b/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml new file mode 100644 index 00000000000..e7bb9e160c4 --- /dev/null +++ b/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Revenue by Deal Size +viz_type: bar +params: + adhoc_filters: [] + annotation_layers: [] + bar_stacked: true + bottom_margin: auto + color_scheme: supersetColors + comparison_type: values + contribution: false + datasource: 23__table + granularity_sqla: OrderDate + groupby: + - DealSize + label_colors: {} + left_margin: auto + line_interpolation: linear + metrics: + - aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: (Sales) + optionName: metric_3is69ofceho_6d0ezok7ry6 + sqlExpression: null + order_desc: true + queryFields: + groupby: groupby + metrics: metrics + rich_tooltip: true + rolling_type: None + row_limit: null + show_brush: auto + show_legend: true + time_grain_sqla: P1M + time_range: '2003-01-01T00:00:00 : 2005-06-01T00:00:00' + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: bar + x_axis_format: smart_date + x_ticks_layout: auto + y_axis_bounds: + - null + - null + y_axis_format: SMART_NUMBER +cache_timeout: null +uuid: f065a533-2e13-42b9-bd19-801a21700dff +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml b/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml new file mode 100644 index 00000000000..3f9fcaa99f2 --- /dev/null +++ b/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml @@ -0,0 +1,62 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Seasonality of Revenue (per Product Line) +viz_type: horizon +params: + adhoc_filters: [] + datasource: 23__table + granularity_sqla: OrderDate + groupby: + - ProductLine + horizon_color_scale: series + metrics: + - aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: (Sales) + optionName: metric_e3kxby3hnjs_nfd4adbcnsn + sqlExpression: null + order_desc: true + queryFields: + groupby: groupby + metrics: metrics + row_limit: null + series_height: '25' + slice_id: 2811 + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: horizon +cache_timeout: null +uuid: cf0da099-b3ab-4d94-ab62-cf353ac3c611 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Total_Items_Sold.yaml b/superset/examples/configs/charts/Total_Items_Sold.yaml new file mode 100644 index 00000000000..63bd19a07af --- /dev/null +++ b/superset/examples/configs/charts/Total_Items_Sold.yaml @@ -0,0 +1,57 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Total Items Sold +viz_type: big_number_total +params: + adhoc_filters: [] + datasource: 23__table + granularity_sqla: OrderDate + header_font_size: 0.4 + metric: + aggregate: SUM + column: + column_name: QuantityOrdered + description: null + expression: null + filterable: true + groupby: true + id: 914 + is_dttm: false + python_date_format: null + type: BIGINT + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: SUM(Sales) + optionName: metric_twq59hf4ej_g70qjfmehsq + sqlExpression: null + queryFields: + metric: metrics + subheader: '' + subheader_font_size: 0.15 + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: big_number_total + y_axis_format: SMART_NUMBER +cache_timeout: null +uuid: c3d643cd-fd6f-4659-a5b7-59402487a8d0 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml b/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml new file mode 100644 index 00000000000..3a4dec63f03 --- /dev/null +++ b/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml @@ -0,0 +1,68 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Total Items Sold (By Product Line) +viz_type: table +params: + adhoc_filters: [] + all_columns: [] + color_pn: true + datasource: 23__table + granularity_sqla: OrderDate + groupby: + - ProductLine + metrics: + - aggregate: SUM + column: + column_name: QuantityOrdered + description: null + expression: null + filterable: true + groupby: true + id: 914 + is_dttm: false + optionName: _col_QuantityOrdered + python_date_format: null + type: BIGINT + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: true + isNew: false + label: '# of Products Sold' + optionName: metric_skdbciwba6g_z1r5w1pxlqj + sqlExpression: null + order_by_cols: [] + order_desc: true + percent_metrics: null + queryFields: + groupby: groupby + metrics: metrics + query_mode: aggregate + row_limit: null + show_cell_bars: true + slice_id: 2807 + table_timestamp_format: smart_date + time_grain_sqla: P1D + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: table +cache_timeout: null +uuid: b8b7ca30-6291-44b0-bc64-ba42e2892b86 +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/charts/Total_Revenue.yaml b/superset/examples/configs/charts/Total_Revenue.yaml new file mode 100644 index 00000000000..c1e5de25630 --- /dev/null +++ b/superset/examples/configs/charts/Total_Revenue.yaml @@ -0,0 +1,58 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +slice_name: Total Revenue +viz_type: big_number_total +params: + adhoc_filters: [] + datasource: 23__table + granularity_sqla: OrderDate + header_font_size: 0.4 + metric: + aggregate: SUM + column: + column_name: Sales + description: null + expression: null + filterable: true + groupby: true + id: 917 + is_dttm: false + optionName: _col_Sales + python_date_format: null + type: DOUBLE PRECISION + verbose_name: null + expressionType: SIMPLE + hasCustomLabel: false + isNew: false + label: (Sales) + optionName: metric_twq59hf4ej_g70qjfmehsq + sqlExpression: null + queryFields: + metric: metrics + subheader: '' + subheader_font_size: 0.15 + time_range: No filter + time_range_endpoints: + - inclusive + - exclusive + url_params: {} + viz_type: big_number_total + y_axis_format: $,.2f +cache_timeout: null +uuid: 7b12a243-88e0-4dc5-ac33-9a840bb0ac5a +version: 1.0.0 +dataset_uuid: e8623bb9-5e00-f531-506a-19607f5f8005 diff --git a/superset/examples/configs/dashboards/Sales_Dashboard.yaml b/superset/examples/configs/dashboards/Sales_Dashboard.yaml new file mode 100644 index 00000000000..a6ce2947b82 --- /dev/null +++ b/superset/examples/configs/dashboards/Sales_Dashboard.yaml @@ -0,0 +1,415 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +dashboard_title: Sales Dashboard +description: null +css: '' +slug: null +uuid: 04f79081-fb49-7bac-7f14-cc76cd2ad93b +position: + CHART-1NOOLm5YPs: + children: [] + id: CHART-1NOOLm5YPs + meta: + chartId: 2805 + height: 25 + sliceName: Total Items Sold + sliceNameOverride: Total Products Sold + uuid: c3d643cd-fd6f-4659-a5b7-59402487a8d0 + width: 2 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-Tyv02UA_6W + - COLUMN-8Rp54B6ikC + type: CHART + CHART-AYpv8gFi_q: + children: [] + id: CHART-AYpv8gFi_q + meta: + chartId: 2810 + height: 91 + sliceName: Number of Deals (for each Combination) + uuid: bd20fc69-dd51-46c1-99b5-09e37a434bf1 + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-0l1WcDzW3 + type: CHART + CHART-KKT9BsnUst: + children: [] + id: CHART-KKT9BsnUst + meta: + chartId: 2806 + height: 59 + sliceName: Quarterly Sales (By Product Line) + sliceNameOverride: Quarterly Revenue (By Product Line) + uuid: db9609e4-9b78-4a32-87a7-4d9e19d51cd8 + width: 7 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-oAtmu5grZ + type: CHART + CHART-OJ9aWDmn1q: + children: [] + id: CHART-OJ9aWDmn1q + meta: + chartId: 2808 + height: 91 + sliceName: Proportion of Revenue by Product Line + sliceNameOverride: Proportion of Monthly Revenue by Product Line + uuid: 08aff161-f60c-4cb3-a225-dc9b1140d2e3 + width: 6 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-0l1WcDzW3 + type: CHART + CHART-YFg-9wHE7s: + children: [] + id: CHART-YFg-9wHE7s + meta: + chartId: 2811 + height: 63 + sliceName: Seasonality of Revenue (per Product Line) + uuid: cf0da099-b3ab-4d94-ab62-cf353ac3c611 + width: 6 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-E7MDSGfnm + type: CHART + CHART-_LMKI0D3tj: + children: [] + id: CHART-_LMKI0D3tj + meta: + chartId: 2809 + height: 62 + sliceName: Revenue by Deal SIze + sliceNameOverride: Monthly Revenue by Deal SIze + uuid: f065a533-2e13-42b9-bd19-801a21700dff + width: 6 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-E7MDSGfnm + type: CHART + CHART-id4RGv80N-: + children: [] + id: CHART-id4RGv80N- + meta: + chartId: 2807 + height: 40 + sliceName: Total Items Sold (By Product Line) + sliceNameOverride: Total Products Sold (By Product Line) + uuid: b8b7ca30-6291-44b0-bc64-ba42e2892b86 + width: 2 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-oAtmu5grZ + - COLUMN-G6_2DvG8aK + type: CHART + CHART-iyvXMcqHt9: + children: [] + id: CHART-iyvXMcqHt9 + meta: + chartId: 671 + height: 39 + sliceName: Filter + uuid: a5689df7-98fc-7c51-602c-ebd92dc3ec70 + width: 2 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-0l1WcDzW3 + - COLUMN-jlNWyWCfTC + type: CHART + CHART-j24u8ve41b: + children: [] + id: CHART-j24u8ve41b + meta: + chartId: 670 + height: 59 + sliceName: Overall Sales (By Product Line) + sliceNameOverride: Total Revenue (By Product Line) + uuid: 09c497e0-f442-1121-c9e7-671e37750424 + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-oAtmu5grZ + type: CHART + CHART-lFanAaYKBK: + children: [] + id: CHART-lFanAaYKBK + meta: + chartId: 2804 + height: 26 + sliceName: Total Revenue + uuid: 7b12a243-88e0-4dc5-ac33-9a840bb0ac5a + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-Tyv02UA_6W + - COLUMN-8Rp54B6ikC + type: CHART + CHART-vomBOiI7U9: + children: [] + id: CHART-vomBOiI7U9 + meta: + chartId: 668 + height: 53 + sliceName: Quarterly Sales + sliceNameOverride: Quarterly Revenue + uuid: 692aca26-a526-85db-c94c-411c91cc1077 + width: 7 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-Tyv02UA_6W + type: CHART + COLUMN-8Rp54B6ikC: + children: + - CHART-lFanAaYKBK + - CHART-1NOOLm5YPs + id: COLUMN-8Rp54B6ikC + meta: + background: BACKGROUND_TRANSPARENT + width: 2 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-Tyv02UA_6W + type: COLUMN + COLUMN-G6_2DvG8aK: + children: + - CHART-id4RGv80N- + id: COLUMN-G6_2DvG8aK + meta: + background: BACKGROUND_TRANSPARENT + width: 2 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-oAtmu5grZ + type: COLUMN + COLUMN-jlNWyWCfTC: + children: + - MARKDOWN-HrzsMmvGQo + - CHART-iyvXMcqHt9 + id: COLUMN-jlNWyWCfTC + meta: + background: BACKGROUND_TRANSPARENT + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-0l1WcDzW3 + type: COLUMN + DASHBOARD_VERSION_KEY: v2 + GRID_ID: + children: [] + id: GRID_ID + parents: + - ROOT_ID + type: GRID + HEADER_ID: + id: HEADER_ID + meta: + text: Sales Dashboard + type: HEADER + MARKDOWN--AtDSWnapE: + children: [] + id: MARKDOWN--AtDSWnapE + meta: + code: "# \U0001F697 Vehicle Sales Dashboard \U0001F3CD\n\nThis example dashboard\ + \ provides insight into the business operations of vehicle seller. The dataset\ + \ powering this dashboard can be found [here on Kaggle](https://www.kaggle.com/kyanyoga/sample-sales-data).\n\ + \n### Timeline\n\nThe dataset contains data on all orders from the 2003 and\ + \ 2004 fiscal years, and some orders from 2005.\n\n### Products Sold\n\nThis\ + \ shop mainly sells the following products:\n\n- \U0001F697 Classic Cars\n\ + - \U0001F3CE\uFE0F Vintage Cars\n- \U0001F3CD\uFE0F Motorcycles\n- \U0001F69A\ + \ Trucks & Buses \U0001F68C\n- \U0001F6E9\uFE0F Planes\n- \U0001F6A2 Ships\n\ + - \U0001F688 Trains" + height: 53 + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + - ROW-Tyv02UA_6W + type: MARKDOWN + MARKDOWN-HrzsMmvGQo: + children: [] + id: MARKDOWN-HrzsMmvGQo + meta: + code: "# \U0001F50D Filter Box\n\nDashboard filters are a powerful way to enable\ + \ teams to dive deeper into their business operations data. This filter box\ + \ helps focus the charts along the following variables:\n\n- Time Range: Focus\ + \ in on a specific time period (e.g. a holiday or quarter)\n- Product Line:\ + \ Choose 1 or more product lines to see relevant sales data\n- Deal Size:\ + \ Zoom in on small, medium, and / or large sales deals\n\nThe filter box below\ + \ \U0001F447 is configured to only apply to the charts in this tab (**Exploratory**).\ + \ You can customize the charts that this filter box applies to by:\n\n- entering\ + \ Edit mode in this dashboard\n- selecting the `...` in the top right corner\n\ + - selecting the **Set filter mapping** button" + height: 50 + width: 3 + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + - ROW-0l1WcDzW3 + - COLUMN-jlNWyWCfTC + type: MARKDOWN + ROOT_ID: + children: + - TABS-e5Ruro0cjP + id: ROOT_ID + type: ROOT + ROW-0l1WcDzW3: + children: + - COLUMN-jlNWyWCfTC + - CHART-OJ9aWDmn1q + - CHART-AYpv8gFi_q + id: ROW-0l1WcDzW3 + meta: + background: BACKGROUND_TRANSPARENT + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + type: ROW + ROW-E7MDSGfnm: + children: + - CHART-YFg-9wHE7s + - CHART-_LMKI0D3tj + id: ROW-E7MDSGfnm + meta: + background: BACKGROUND_TRANSPARENT + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-4fthLQmdX + type: ROW + ROW-Tyv02UA_6W: + children: + - COLUMN-8Rp54B6ikC + - CHART-vomBOiI7U9 + - MARKDOWN--AtDSWnapE + id: ROW-Tyv02UA_6W + meta: + background: BACKGROUND_TRANSPARENT + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + type: ROW + ROW-oAtmu5grZ: + children: + - COLUMN-G6_2DvG8aK + - CHART-KKT9BsnUst + - CHART-j24u8ve41b + id: ROW-oAtmu5grZ + meta: + background: BACKGROUND_TRANSPARENT + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + - TAB-d-E0Zc1cTH + type: ROW + TAB-4fthLQmdX: + children: + - ROW-0l1WcDzW3 + - ROW-E7MDSGfnm + id: TAB-4fthLQmdX + meta: + text: "\U0001F9ED Exploratory" + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + type: TAB + TAB-d-E0Zc1cTH: + children: + - ROW-Tyv02UA_6W + - ROW-oAtmu5grZ + id: TAB-d-E0Zc1cTH + meta: + text: "\U0001F3AF Sales Overview" + parents: + - ROOT_ID + - TABS-e5Ruro0cjP + type: TAB + TABS-e5Ruro0cjP: + children: + - TAB-d-E0Zc1cTH + - TAB-4fthLQmdX + id: TABS-e5Ruro0cjP + meta: {} + parents: + - ROOT_ID + type: TABS +metadata: + timed_refresh_immune_slices: [] + expanded_slices: {} + refresh_frequency: 0 + default_filters: '{"671": {"__time_range": "No filter"}}' + filter_scopes: + '671': + ProductLine: + scope: + - TAB-4fthLQmdX + immune: [] + DealSize: + scope: + - ROOT_ID + immune: [] + __time_range: + scope: + - ROOT_ID + immune: [] + color_scheme: supersetColors + label_colors: + Medium: '#1FA8C9' + Small: '#454E7C' + Large: '#5AC189' + SUM(SALES): '#1FA8C9' + Classic Cars: '#454E7C' + Vintage Cars: '#5AC189' + Motorcycles: '#FF7F44' + Trucks and Buses: '#666666' + Planes: '#E04355' + Ships: '#FCC700' + Trains: '#A868B7' +version: 1.0.0 diff --git a/superset/examples/configs/datasets/examples/Cleaned_Sales_Data.yaml b/superset/examples/configs/datasets/examples/Cleaned_Sales_Data.yaml new file mode 100644 index 00000000000..f03cfff43ac --- /dev/null +++ b/superset/examples/configs/datasets/examples/Cleaned_Sales_Data.yaml @@ -0,0 +1,293 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +table_name: Cleaned Sales Data +main_dttm_col: OrderDate +description: null +default_endpoint: null +offset: 0 +cache_timeout: null +schema: null +sql: null +params: null +template_params: null +filter_select_enabled: false +fetch_values_predicate: null +extra: null +uuid: e8623bb9-5e00-f531-506a-19607f5f8005 +metrics: +- metric_name: count + verbose_name: COUNT(*) + metric_type: count + expression: COUNT(*) + description: null + d3format: null + extra: null + warning_text: null +columns: +- column_name: OrderDate + verbose_name: null + is_dttm: true + is_active: true + type: TIMESTAMP WITHOUT TIME ZONE + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: PriceEach + verbose_name: null + is_dttm: false + is_active: true + type: DOUBLE PRECISION + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Sales + verbose_name: null + is_dttm: false + is_active: true + type: DOUBLE PRECISION + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: AddressLine1 + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: AddressLine2 + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: ContactLastName + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: ContactFirstName + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: QuantityOrdered + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Year + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: PostalCode + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: CustomerName + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: DealSize + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: State + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Status + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: OrderLineNumber + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: OrderNumber + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Month + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Quarter + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: MSRP + verbose_name: null + is_dttm: false + is_active: true + type: BIGINT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: ProductCode + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: ProductLine + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: City + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Country + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Phone + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +- column_name: Territory + verbose_name: null + is_dttm: false + is_active: true + type: TEXT + groupby: true + filterable: true + expression: null + description: null + python_date_format: null +version: 1.0.0 +database_uuid: a2dc77af-e654-49bb-b321-40f6b559a1ee +data: https://raw.githubusercontent.com/apache-superset/examples-data/master/datasets/examples/sales.csv