Une exploration des données plus efficace

Looker se distingue par sa capacité à se connecter directement à votre base de données. Vous pouvez ainsi accéder aux données les plus récentes et approfondir vos analyses au niveau le plus détaillé possible. Vous pouvez donc consulter des résumés annuels ou mensuels, mais Looker vous permet également d'accéder instantanément au jour, à l'heure ou à la seconde.

Cette page présente des exemples de personnalisation et d'exploitation du forage de données pour créer des expériences analytiques plus puissantes pour vos utilisateurs, y compris:

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

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

L'architecture moderne native Web de Looker vous permet d'effectuer bien plus que des analyses transversales d'un niveau à un autre. 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 croisés dynamiques, y compris:

  • Ajouter des limites de lignes personnalisées (jusqu'à 5 000 lignes) à un tableau croisé dynamique
  • Ajouter des tri à un tableau d'analyse
  • Ajouter des pivots à un tableau croisé dynamique

Ajouter des limites de lignes (jusqu'à 5 000 lignes) à un tableau croisé dynamique

Ajouter des limites de lignes à un tableau croisé dynamique vous permet de contrôler la façon dont les données sont présentées aux utilisateurs lorsqu'ils effectuent une analyse transversale sur les valeurs de mesure. Par exemple, que faire si vous souhaitez n'afficher que les 20 premiers résultats d'une table croisée dynamique lorsqu'un utilisateur explore une valeur de mesure Nombre de résultats renvoyés ? 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 les 20 premiers résultats en sélectionnant Explorer les 20 premiers résultats dans le menu d'analyse de la mesure Nombre de résultats renvoyés:

Ajouter des tri à un tableau d'analyse

En plus de limiter les données, vous pouvez également contrôler la manière dont elles sont triées dans un tableau croisé dynamique. Par exemple, que faire si vous souhaitez afficher les 20 résultats par Prix soldé lorsqu'un utilisateur explore une valeur de mesure Nombre de résultats renvoyés ? 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 les 20 premiers résultats par prix de vente en sélectionnant Explorer les 20 premiers résultats par prix de vente dans le menu d'analyse de la mesure Prix de vente:

Ajouter des pivots à un tableau croisé dynamique

En plus de limiter et de trier les données, vous pouvez également faire pivoter des dimensions dans un tableau croisé dynamique. Par exemple, si vous souhaitez ajouter un tableau croisé dynamique à un champ Tranche d'âge pour afficher l'année et le niveau de marge brute pour chaque tranche d'âge lorsqu'un utilisateur explore 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} ;;
}

Les utilisateurs peuvent ainsi examiner l'année et le pourcentage de marge brute pour chaque tranche d'âge en sélectionnant 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 de forage visuel

Les tableaux de données transmettent les données de manière efficace, mais que faire si vous souhaitez visualiser les données qu'un utilisateur voit lorsqu'il effectue une 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 inclut les exemples suivants:

  • Analyse détaillée avec la fonctionnalité Labs Visual Drilling (Analyse visuelle)
  • Analyser un graphique en nuage de points avec une limite et une moyenne mobile
  • Accéder à un graphique linéaire empilé avec des pivots
  • Explorer une visualisation personnalisée
  • Explorer un calcul de table avec mise en forme conditionnelle

Analyse détaillée avec la fonctionnalité Labs Visual Drilling (Analyse visuelle)

La fonctionnalité Labs Visual Drilling (Analyse visuelle) permet aux utilisateurs d'explorer une exploration ou une présentation. Sans aucune personnalisation et avec un ensemble d'analyse limité, vous pouvez afficher les données d'analyse dans différents types de visualisation présélectionnés par Looker en fonction des données.

La fonctionnalité Labs Visual Drilling n'est pas compatible avec les tableaux de bord. Pour les tableaux de bord, vous pouvez créer une expérience de drill-down visuel avec le paramètre link sans avoir à activer la fonctionnalité Labs. 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 explore 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. Toutefois, que faire si vous souhaitez contrôler le type de visualisation affiché aux utilisateurs lorsqu'ils effectuent une analyse ? Les sections suivantes fournissent des exemples de personnalisation d'une visualisation de données détaillées.

Analyser un graphique en nuage de points avec une limite et une moyenne mobile

Vous pouvez permettre aux utilisateurs d'accéder à 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 forme de 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"
  }
}

Explorer un graphique linéaire empilé avec des pivots

Vous pouvez également permettre aux utilisateurs d'accéder à un graphique linéaire empilé, par exemple un graphique linéaire empilé 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=
}

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

Explorer un calcul de table avec mise en forme conditionnelle

Vous pouvez également autoriser les utilisateurs à accéder à un calcul de table qui affiche un formatage conditionnel:

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