Une exploration des données plus efficace

L'une des fonctionnalités uniques de Looker est qu'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 analyser les données les plus détaillées disponibles. Ainsi, même si vous pouvez consulter des récapitulatifs annuels ou mensuels, Looker vous permet également d'analyser instantanément les données au jour, à l'heure ou à la seconde près.

Cette page fournit des exemples de personnalisation et d'exploitation de l'exploration des données pour créer des expériences analytiques plus puissantes pour vos utilisateurs. Voici quelques exemples :

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

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

L'architecture moderne et Web de Looker vous permet de faire bien plus que d'analyser les données d'un niveau à un autre, jusqu'au niveau le plus précis. Vous pouvez créer n'importe quel chemin d'analyse personnalisé avec quelques paramètres seulement.

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 croisé dynamique
  • 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 croisé dynamique

L'ajout de 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 analysent des valeurs de mesures. Par exemple, que se passe-t-il si vous souhaitez n'afficher que les 20 premiers résultats d'un tableau croisé dynamique lorsqu'un utilisateur affiche le détail d'une valeur de mesure Nombre de résultats ? 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]
}

Les utilisateurs peuvent ainsi examiner en détail les 20 premiers résultats en sélectionnant Explorer les 20 premiers résultats dans le menu déroulant de la métrique Nombre de résultats renvoyés :

Ajouter des tris à un tableau d'analyse

En plus de limiter les données, vous pouvez également contrôler la façon dont elles sont triées dans un tableau d'analyse. Par exemple, si vous souhaitez afficher les 20 résultats par Prix soldé lorsqu'un utilisateur affiche le détail d'une valeur de mesure Nombre de retours. 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 combine le tri personnalisé avec 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]
}

Les utilisateurs peuvent ainsi examiner en détail les 20 premiers résultats par prix soldé en sélectionnant Explorer les 20 premiers résultats par prix soldé dans le menu déroulant de la métrique 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 croiser les dimensions dans un tableau d'analyse. Par exemple, que se passerait-il si vous souhaitiez ajouter un tableau croisé dynamique à un champ Tranche d'âge pour afficher la tranche d'année et de pourcentage de marge brute pour chaque tranche d'âge lorsqu'un utilisateur affiche le détail d'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'examiner en détail l'année et le 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éroulant de la métrique Nombre de commandes :

Créer une expérience de navigation visuelle

Les tableaux de données permettent de transmettre efficacement les données, mais que faire si vous souhaitez visualiser les données qu'un utilisateur voit lorsqu'il analyse les données ? Il existe plusieurs façons d'afficher les données d'analyse dans les visualisations, en plus des tableaux de données. Cette section inclut les exemples suivants :

  • Explorer les données avec la fonctionnalité Analyse visuelle
  • Analyse détaillée d'un graphique en nuage de points avec une limite et une moyenne mobile
  • Exploration d'un graphique linéaire empilé avec des tableaux croisés dynamiques
  • Accéder à une visualisation personnalisée
  • Exploration détaillée d'un calcul de tableau avec mise en forme conditionnelle

Explorer les données avec la fonctionnalité Analyse visuelle

La fonctionnalité Exploration visuelle permet aux utilisateurs d'explorer une exploration ou un Look. Sans aucune personnalisation et avec un ensemble de forages limité, vous pouvez afficher les données de forage dans différents types de visualisations présélectionnés par Looker en fonction des données.

La fonctionnalité Exploration visuelle n'est pas compatible avec les tableaux de bord. Pour les tableaux de bord, vous pouvez créer une expérience de forage visuel avec le paramètre link sans avoir à activer la fonctionnalité. Les sections suivantes fournissent des exemples de création d'une expérience de forage visuel à l'aide du paramètre link.

Par exemple, pour afficher le nombre d'articles vendus par jour, vous pouvez créer une mesure qui analyse 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]
}

Le forage visuel est l'option la plus simple. Toutefois, que faire si vous souhaitez contrôler le type de visualisation affiché aux utilisateurs lorsqu'ils effectuent un forage ? Les sections suivantes fournissent des exemples de personnalisation supplémentaire d'une visualisation de l'analyse.

Analyse détaillée d'un graphique en nuage de points avec une limite et une moyenne mobile

Vous pouvez autoriser les utilisateurs à afficher un graphique à nuage de points incluant 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 des paramètres de visualisation dans une URL à l'aide de variables Liquid. Ces paramètres contrôlent 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"
  }
}

Exploration d'un graphique linéaire empilé avec des tableaux croisés dynamiques

Vous pouvez également permettre aux utilisateurs d'accéder à un graphique en courbes empilées. Par exemple, un graphique en courbes empilées qui affiche le prix de vente total 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=
}

Accéder à 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"
  }
}

Exploration détaillée d'un calcul de tableau avec mise en forme conditionnelle

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

Vous pouvez le définir 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 }}"
  }
}