更强大的数据深入分析

Looker 的一项独特功能是它直接连接到您的数据库。这意味着,您始终可以访问最新的数据,并且可以随时展开细目到最详细的级别。因此,虽然您可以查看年度或每月摘要,但 Looker 还提供即时深入查看当日、小时或秒的选项。

本页面举例说明了如何自定义和利用数据深入分析为用户打造更强大的分析体验,包括:

  • 自定义值在基本深入分析数据表中的显示方式
  • 自定义深入分析可视化图表,打造直观深入分析体验

自定义值在基本深入分析数据表中的显示方式

借助 Looker 的 Web 原生现代架构,您不仅可以从一个级别深入到下一个最精细的级别,您只需几个参数即可构建任何自定义深入分析路径。

以下示例演示了如何自定义数据在深入分析表中的显示方式,包括:

  • 向深入分析表添加自定义行数上限(最多 5,000 行)
  • 向深入分析表添加排序
  • 向深入分析表添加数据透视

向深入分析表添加行数上限(最多 5,000 行)

通过向深入分析表添加行数上限,您可以控制在用户深入分析衡量值时如何向其呈现数据。例如,当用户深入到“返回的计数”测量值时,如果您希望在展开细目中显示前 20 个结果,该怎么办?您可以使用 link 参数并将 url 子参数设置为 "{{ link }}&limit=20",如以下 LookML 代码所示:

measure: returned_count {
  type: count_distinct
  sql: ${id} ;;
  filters: [is_returned: "yes"]
  drill_fields: [detail*]
  link: {
    label: "Explore Top 20 Results"
    url: "{{ link }}&limit=20"
  }
}

set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

这样,用户就可以从返回的计数测量的深入菜单中选择浏览前 20 个结果来深入查看前 20 个结果:

向深入分析表添加排序

除了限制数据以外,您还可以控制深入分析表中数据的排序方式。例如,当用户深入到“返回次数”衡量值时,如果您想按“促销价”显示 20 条结果,该怎么办?您可以使用 link 参数并将 url 子参数设置为 "{{ link }}&sorts=order_items.sale_price"。以下 LookML 代码将自定义排序与自定义行数上限相结合:

measure: returned_count {
  type: count_distinct
  sql: ${id} ;;
  filters: [is_returned: "yes"]
  drill_fields: [detail*]
  link: {
    label: "Explore Top 20 Results by Sale Price"
    url: "{{ link }}&sorts=order_items.sale_price+desc&limit=20"
  }
}

set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

这样,用户就可以从促销价衡量的深入菜单中选择按促销价浏览前 20 名结果,以便深入研究促销价排名前 20 的结果:

向深入分析表添加数据透视

除了对数据进行限制和排序之外,您还可以在深入分析表中透视维度。例如,如果您想在用户深入到订单数衡量值时向“年龄层级”字段添加数据透视,以显示每个年龄段的年份和毛利润百分比层级,该怎么办?您可以使用 link 参数并将 url 子参数设置为 "&pivots=users.age_tier"

measure: order_count {
  type: count_distinct
  drill_fields: [created_year, item_gross_margin_percentage_tier, users.age_tier, total_sale_price]
  link: {
    label: "Total Sale Price by Month for Each Age Tier"
    url: "{{link}}&pivots=users.age_tier"
  }
  sql: ${order_id} ;;
}

这样,当用户在订单数量衡量的深入菜单中选择按年龄层级按月计算的总售价时,就可以深入研究每个年龄段的年份和毛利润率百分比:

打造视觉深入分析体验

数据表格可以有效传达数据,但如果您希望以可视化方式呈现用户深入分析时看到的数据,该怎么办?除了数据表格之外,您还可以通过多种方式在可视化图表中显示深入分析数据。本部分包括以下示例:

  • 通过可视化深入分析实验室功能进行深入分析
  • 深入分析包含极限和移动平均值的散点图
  • 深入到包含数据透视的堆叠折线图
  • 深入探究自定义可视化图表
  • 深入到具有条件格式的表计算

使用可视化深入分析实验室功能进行深入分析

借助可视化深入分析实验室功能,用户可以深入研究探索Look。无需任何自定义和有限的深入分析设置,您可以使用基于 Looker 数据预先选择的不同可视化类型来显示深入的数据。

信息中心不支持可视化深入分析实验室功能。对于信息中心,您可以使用 link 参数创建直观的深入分析体验,而无需启用实验室功能。本文后面的部分提供了有关如何使用 link 参数打造视觉深入分析体验的示例。

例如,要显示每天售出的商品数量,您可以创建一个深入到创建日期总促销价字段的度量方式:

measure: count {
  type: count_distinct
  sql: ${id} ;;
  drill_fields: [created_date, total_sale_price]
}

可视化深入分析是最简单的选项;但是,如果您想控制在用户展开细目时向其显示的可视化类型,该怎么办?以下部分提供了有关如何进一步自定义深入分析可视化图表的示例。

深入分析包含极限和移动平均值的散点图

您可以允许用户展开细目到包含移动平均趋势线散点图。例如,假设您想要以 30 天移动平均值的散点图的形式显示每天售出的商品数量:

为此,您可以使用流体变量在网址中指定可视化设置。以下设置可控制展开细目中显示的可视化图表:

measure: count {
  type: count_distinct
  sql: ${id} ;;
  drill_fields: [created_date, total_sale_price]
  link: {
    label: "Show as scatter plot"
    url: "
    {% assign vis_config = '{
     \"stacking\" : \"\",
     \"show_value_labels\" : false,
     \"label_density\" : 25,
     \"legend_position\" : \"center\",
     \"x_axis_gridlines\" : true,
     \"y_axis_gridlines\" : true,
     \"show_view_names\" : false,
     \"limit_displayed_rows\" : false,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"y_axis_tick_density_custom\": 5,
     \"show_x_axis_label\" : false,
     \"show_x_axis_ticks\" : true,
     \"x_axis_scale\" : \"auto\",
     \"y_axis_scale_mode\" : \"linear\",
     \"show_null_points\" : true,
     \"point_style\" : \"circle\",
     \"ordering\" : \"none\",
     \"show_null_labels\" : false,
     \"show_totals_labels\" : false,
     \"show_silhouette\" : false,
     \"totals_color\" : \"#808080\",
     \"type\" : \"looker_scatter\",
     \"interpolation\" : \"linear\",
     \"series_types\" : {},
     \"colors\": [
     \"palette: Santa Cruz\"
     ],
     \"series_colors\" : {},
     \"x_axis_datetime_tick_count\": null,
     \"trend_lines\": [
      {
      \"color\" : \"#000000\",
      \"label_position\" : \"left\",
      \"period\" : 30,
      \"regression_type\" : \"average\",
      \"series_index\" : 1,
      \"show_label\" : true,
      \"label_type\" : \"string\",
      \"label\" : \"30 day moving average\"
      }
     ]
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&toggle=dat,pik,vis&limit=5000"
  }
}

深入到包含数据透视的堆叠折线图

您还可以允许用户展开细目到堆叠折线图,例如显示每个月份总售价的堆叠折线图,并按创建年份透视:

以下 LookML 指定了上述可视化图表的设置:

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [total_sale_price, created_month_name, created_year]
  link: {
    label: "Show as stacked line"
    url: "
    {% assign vis_config = '{
     \"stacking\" : \"normal\",
     \"legend_position\" : \"right\",
     \"x_axis_gridlines\" : false,
     \"y_axis_gridlines\" : true,
     \"show_view_names\" : false,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"show_x_axis_label\" : true,
     \"show_x_axis_ticks\" : true,
     \"show_null_points\" : false,
     \"interpolation\" : \"monotone\",
     \"type\" : \"looker_line\",
     \"colors\": [
     \"#5245ed\",
     \"#ff8f95\",
     \"#1ea8df\",
     \"#353b49\",
     \"#49cec1\",
     \"#b3a0dd\"
     ],
     \"x_axis_label\" : \"Month Number\"
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&sorts=order_items.created_year+asc,order_items.created_month_name+asc&pivots=order_items.created_year&toggle=dat,pik,vis&limit=500&column_limit=15"
  } # NOTE the &pivots=
}

深入到自定义可视化图表

您还可以允许用户展开细目到自定义可视化图表

为此,您可以在为 link 参数指定的可视化图表设置中添加自定义可视化图表:

measure: average_shipping_time {
  type: average
  value_format_name: decimal_2
  sql: ${shipping_time} ;;
  drill_fields: [products.category, users.age_tier, average_shipping_time]
  link: {
    label: "See as custom viz (heatmap)"
    url: "
    {% assign vis_config = '{
     \"minColor\" : \"#d6d6d6\",
     \"maxColor\" : \"#9a33e3\",
     \"dataLabels\" : false,
     \"custom_color_enabled\" : false,
     \"custom_color\" : \"forestgreen\",
     \"show_single_value_title\": true,
     \"show_comparison\" : false,
     \"comparison_type\" : \"value\",
     \"comparison_reverse_colors\": false,
     \"show_comparison_label\" : true,
     \"show_view_names\" : true,
     \"show_row_numbers\" : true,
     \"truncate_column_names\" : false,
     \"hide_totals\" : false,
     \"hide_row_totals\" : false,
     \"table_theme\" : \"editable\",
     \"limit_displayed_rows\" : false,
     \"enable_conditional_formatting\": false,
     \"conditional_formatting_include_totals\": false,
     \"conditional_formatting_include_nulls\": false,
     \"type\" : \"highcharts_heatmap\",
     \"stacking\" : \"\",
     \"show_value_labels\" : false,
     \"label_density\" : 25,
     \"legend_position\" : \"center\",
     \"x_axis_gridlines\" : false,
     \"y_axis_gridlines\" : true,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"y_axis_tick_density_custom\": 5,
     \"show_x_axis_label\" : true,
     \"show_x_axis_ticks\" : true,
     \"x_axis_scale\" : \"auto\",
     \"y_axis_scale_mode\" : \"linear\",
     \"ordering\" : \"none\",
     \"show_null_labels\" : false,
     \"show_totals_labels\" : false,
     \"show_silhouette\" : false,
     \"totals_color\" : \"#808080\",
     \"series_types\" : {},
     \"hidden_fields\" : [
     \"order_items.count\",
     \"order_items.total_sale_price\"
     ]
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&sorts=products.category+asc,users.age_tier+asc&toggle=dat,pik,vis&limit=5000"
  }
}

深入到具有条件格式的表计算

您还可以允许用户深入到显示条件格式表格计算

这可以在 LookML 中定义,如下所示:

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [created_month, users.gender, total_sale_price]
  link: {
    label: "Table Calc & Total"
    url: "
    {% assign table_calc = '[
     { \"table_calculation\": \"percent_of_total\",
     \"label\": \"Percent of Total\",
     \"expression\": \"${order_items.total_sale_price:row_total} / sum(${order_items.total_sale_price:row_total})\",
     \"value_format\": null,
     \"value_format_name\": \"percent_2\",
     \"_kind_hint\": \"supermeasure\",
     \"_type_hint\": \"number\"
     },
     { \"table_calculation\": \"growth_rate\",
     \"label\": \"Growth Rate\",
     \"expression\": \"${order_items.total_sale_price} / offset(${order_items.total_sale_price},1) - 1\",
     \"value_format\": null,
     \"value_format_name\": \"percent_2\",
     \"_kind_hint\": \"measure\",
     \"_type_hint\": \"number\"
    }]' %}
    {% assign vis_config = '{
     \"type\": \"table\",
     \"show_view_names\": false,
     \"show_row_numbers\": false,
     \"truncate_column_names\": false,
     \"table_theme\": \"gray\",
     \"enable_conditional_formatting\": true,
     \"conditional_formatting\": [
     {
     \"type\": \"low to high\",
     \"value\": null,
     \"background_color\": null,
     \"font_color\": null,
     \"palette\": {
     \"name\": \"Custom\",
     \"colors\": [
     \"#FFFFFF\",
     \"#6e00ff\"
     ]},
     \"bold\": false,
     \"italic\": false,
     \"strikethrough\": false,
     \"fields\": [
     \"growth_rate\"
     ]},{
     \"type\": \"low to high\",
     \"value\": null,
     \"background_color\": null,
     \"font_color\": null,
     \"palette\": {
     \"name\": \"Custom\",
     \"colors\": [
     \"#FFFFFF\",
     \"#88ff78\"
     ]},
     \"bold\": false,
     \"italic\": false,
     \"strikethrough\": false,
     \"fields\": [
     \"percent_of_total\"
    ]}]}' %}
     {{link}}&total=on&row_total=right&dynamic_fields={{ table_calc |replace(') ', '' | encode_uri }}&pivots=users.gender&vis_config={{ vis_config |replace(') ', '' | encode_uri }}"
  }
}