Exploration plus performante des données

Looker offre une fonctionnalité unique : il se connecte directement à votre base de données. Cela signifie que vous pouvez toujours accéder aux données les plus récentes et afficher le détail jusqu'au niveau le plus précis disponible. Ainsi, bien que vous puissiez consulter des résumés annuels ou mensuels, Looker offre également la possibilité d'afficher instantanément le détail du jour, de l'heure ou de la seconde.

Cette page fournit des exemples illustrant comment personnaliser et exploiter l'exploration des données afin de créer des expériences d'analyse plus performantes pour vos utilisateurs. Par exemple:

  • Personnaliser la présentation des valeurs dans les tableaux de données d'analyse de base
  • Personnaliser la visualisation de l'analyse pour créer une expérience d'analyse visuelle

Personnaliser la présentation des valeurs dans les tableaux de données d'analyse de base

L'architecture moderne native de Looker vous permet de faire bien plus que passer d'un niveau au niveau le plus précis. Vous pouvez créer n'importe quel chemin d'analyse personnalisé avec seulement quelques paramètres.

Les exemples suivants montrent comment personnaliser la présentation des données dans les tableaux d'analyse, y compris:

  • Ajouter des limites de lignes personnalisées (jusqu'à 5 000 lignes) à un tableau d'analyse
  • Ajouter des tris à un tableau d'analyse
  • Ajouter des tableaux croisés dynamiques à un tableau d'analyse

Ajouter des limites de lignes (jusqu'à 5 000 lignes) à un tableau d'analyse

Ajouter des limites de lignes à un tableau d'analyse vous permet de contrôler la façon dont les données sont présentées aux utilisateurs lorsqu'ils explorent les valeurs de mesure. Par exemple, que se passe-t-il si vous souhaitez n'afficher que les 20 premiers résultats dans un tableau d'analyse lorsqu'un utilisateur détaille une valeur de mesure Nombre renvoyé ? Vous pouvez utiliser le paramètre link et définir le sous-paramètre url sur "{{ link }}&limit=20", comme dans le code LookML suivant:

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]
}

Cela permet aux utilisateurs d'afficher les 20 premiers résultats en sélectionnant Explorer les 20 premiers résultats dans le menu d'analyse de la mesure Nombre renvoyé:

Ajouter des tris à un tableau d'analyse

En plus de limiter les données, vous pouvez également contrôler le tri des données dans un tableau d'analyse. Imaginons que vous souhaitiez afficher les 20 résultats par prix soldé lorsqu'un utilisateur détaille une valeur de mesure Nombre renvoyé. Vous pouvez utiliser le paramètre link et définir le sous-paramètre url sur "{{ link }}&sorts=order_items.sale_price". Le code LookML suivant associe un tri personnalisé à une limite de lignes personnalisée:

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]
}

Cela permet aux utilisateurs d'afficher les 20 premiers résultats par prix soldé en sélectionnant Explorer les 20 meilleurs résultats par prix soldé dans le menu d'analyse de la mesure Prix soldé:

Ajouter des tableaux croisés dynamiques à un tableau d'analyse

En plus de limiter et de trier les données, vous pouvez également créer des tableaux croisés dynamiques dans un tableau d'analyse. Imaginons que vous souhaitiez ajouter un tableau croisé dynamique à un champ Tranche d'âge pour afficher l'année et le pourcentage de marge brute pour chaque tranche d'âge lorsqu'un utilisateur détaille une valeur de mesure Nombre de commandes ? Vous pouvez utiliser le paramètre link et définir le sous-paramètre url sur "&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} ;;
}

Cela permet aux utilisateurs d'afficher le détail de l'année et du pourcentage de marge brute pour chaque tranche d'âge lorsqu'ils sélectionnent Prix de vente total par mois pour chaque tranche d'âge dans le menu d'analyse de la mesure Nombre de commandes:

Créer une expérience d'exploration visuelle

Les tableaux de données transmettent des données de manière efficace, mais que se passe-t-il si vous souhaitez visualiser les données qu'un utilisateur voit lorsqu'il analyse ? Il existe plusieurs façons d'afficher des données détaillées dans des visualisations en plus des tableaux de données. Cette section comprend les exemples suivants:

  • Analyser des données avec la fonctionnalité de laboratoire Analyse visuelle
  • Exploration d'un graphique à nuage de points avec une limite et une moyenne mobile
  • Afficher la vue détaillée d'un graphique en courbes empilées avec tableaux croisés dynamiques
  • Afficher le détail d'une visualisation personnalisée
  • Afficher la vue détaillée d'un calcul de table avec une mise en forme conditionnelle

Analyser des données avec la fonctionnalité de laboratoire Analyse visuelle

La fonctionnalité de laboratoire Exploration visuelle permet aux utilisateurs d'afficher le détail d'une exploration ou d'une présentation. Vous n'avez aucune personnalisation et vous disposez d'un ensemble d'analyse limité, ce qui vous permet d'afficher les données d'analyse dans différents types de visualisation présélectionnés en fonction des données fournies par Looker.

La fonctionnalité de laboratoire Analyse visuelle n'est pas compatible avec les tableaux de bord. Pour les tableaux de bord, vous pouvez créer une expérience d'analyse visuelle à l'aide du paramètre link sans avoir à activer la fonctionnalité Labs. Les sections qui suivent celle-ci fournissent des exemples de création d'une expérience d'analyse visuelle à l'aide du paramètre link.

Par exemple, pour afficher le nombre d'articles vendus par jour, vous pouvez créer une mesure qui détaille les champs Date de création et Prix de vente total:

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

L'analyse visuelle est l'option la plus simple. Mais que se passe-t-il si vous souhaitez contrôler le type de visualisation présenté aux utilisateurs lorsqu'ils explorent le graphique ? Les sections suivantes fournissent des exemples illustrant comment personnaliser davantage une visualisation d'analyse.

Exploration d'un graphique à nuage de points avec une limite et une moyenne mobile

Vous pouvez autoriser les utilisateurs à afficher le détail d'un graphique à nuage de points qui inclut une ligne de tendance de moyenne mobile. Par exemple, supposons que vous souhaitiez afficher le nombre d'articles vendus par jour sous la forme d'un graphique à nuage de points avec une moyenne mobile sur 30 jours:

Pour ce faire, vous pouvez spécifier les paramètres de visualisation dans une URL à l'aide des variables Liquid. Ces paramètres permettent de contrôler la visualisation qui s'affiche dans l'analyse:

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"
  }
}

Afficher la vue détaillée d'un graphique en courbes empilées avec tableaux croisés dynamiques

Vous pouvez également permettre aux utilisateurs d'afficher un graphique en courbes empilé, par exemple un graphique en courbes empilées qui affiche le prix total de vente pour chaque numéro de mois, pivoté par année de création:

Le code LookML suivant spécifie les paramètres de la visualisation précédente:

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=
}

Afficher le détail d'une visualisation personnalisée

Vous pouvez également autoriser les utilisateurs à accéder à une visualisation personnalisée :

Pour ce faire, vous pouvez inclure la visualisation personnalisée dans les paramètres de visualisation que vous spécifiez pour le paramètre 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"
  }
}

Afficher la vue détaillée d'un calcul de table avec une mise en forme conditionnelle

Vous pouvez également autoriser les utilisateurs à afficher le détail d'un calcul de table qui affiche une mise en forme conditionnelle:

Ce code peut être défini dans LookML comme suit:

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 }}"
  }
}