Analisi dettagliata dei dati più efficace

Una funzionalità unica di Looker è la connessione diretta al tuo database. Ciò significa che puoi sempre accedere ai dati più recenti e puoi sempre visualizzare in dettaglio il livello di granularità più elevato disponibile. Pertanto, anche se puoi visualizzare i riepiloghi annuali o mensili, Looker offre anche la possibilità di visualizzare in dettaglio il giorno, l'ora o il secondo istantaneamente.

Questa pagina fornisce esempi di come personalizzare e sfruttare l'analisi in dettaglio per creare esperienze analitiche più efficaci per gli utenti, tra cui:

  • Personalizzare la modalità di presentazione dei valori nelle tabelle di dati di visualizzazione in dettaglio di base
  • Personalizzazione della visualizzazione in dettaglio per creare un'esperienza di drill-down visivo

Personalizzare la modalità di presentazione dei valori nelle tabelle di dati di visualizzazione in dettaglio di base

L'architettura moderna nativa per il web di Looker ti consente di fare molto di più che passare da un livello a quello più granulare successivo. Puoi creare qualsiasi percorso di drill-down personalizzato con pochi parametri.

Gli esempi riportati di seguito mostrano come personalizzare la modalità di presentazione dei dati nelle tabelle di analisi in dettaglio, tra cui:

  • Aggiunta di limiti di righe personalizzati (fino a 5000 righe) a una tabella di drill-down
  • Aggiungere ordinamenti a una tabella di visualizzazione in dettaglio
  • Aggiunta di pivot a una tabella di analisi in dettaglio

Aggiunta di limiti di righe (fino a 5000 righe) a una tabella di drill

L'aggiunta di limiti di righe a una tabella di analisi consente di controllare la modalità di presentazione dei dati agli utenti quando analizzano i valori delle metriche. Ad esempio, cosa succede se vuoi visualizzare solo i primi 20 risultati in una tabella di analisi in dettaglio quando un utente esamina in dettaglio un valore della metrica Conteggio restituito? Puoi utilizzare il parametro link e impostare il parametro secondario url su "{{ link }}&limit=20", come nel seguente codice 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]
}

In questo modo, gli utenti possono esaminare in dettaglio i primi 20 risultati selezionando Esplora i primi 20 risultati dal menu di visualizzazione in dettaglio della metrica Conteggio restituito:

Aggiungere ordinamenti a una tabella di visualizzazione in dettaglio

Oltre a limitare i dati, puoi anche controllare il modo in cui vengono ordinati in una tabella di visualizzazione in dettaglio. Ad esempio, cosa succede se vuoi visualizzare i 20 risultati in base al Prezzo scontato quando un utente visualizza in dettaglio un valore della metrica Conteggio resi? Puoi utilizzare il parametro link e impostare il parametro secondario url su "{{ link }}&sorts=order_items.sale_price". Il seguente codice LookML combina l'ordinamento personalizzato con un limite di righe personalizzato:

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

In questo modo, gli utenti possono visualizzare in dettaglio i primi 20 risultati in base al prezzo scontato selezionando Esplora i primi 20 risultati in base al prezzo scontato dal menu di visualizzazione in dettaglio della metrica Prezzo scontato:

Aggiunta di pivot a una tabella di analisi in dettaglio

Oltre a limitare e ordinare i dati, puoi anche pivotare le dimensioni in una tabella di visualizzazione in dettaglio. Ad esempio, cosa succede se vuoi aggiungere una tabella pivot a un campo Fascia d'età per mostrare la fascia di anno e percentuale di margine lordo per ogni gruppo di età quando un utente visualizza in dettaglio un valore della metrica Conteggio ordini? Puoi utilizzare il parametro link e impostare il sottoparametro url su "&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} ;;
}

In questo modo, gli utenti possono visualizzare in dettaglio l'anno e la percentuale di margine lordo per ogni gruppo di età quando selezionano Prezzo di vendita totale per mese per ogni livello di età dal menu di visualizzazione in dettaglio della metrica Conteggio ordini:

Creare un'esperienza di visualizzazione in dettaglio

Le tabelle di dati trasmettono i dati in modo efficace, ma cosa succede se vuoi visualizzare i dati che un utente vede quando esamina in dettaglio? Oltre alle tabelle di dati, esistono diversi modi per visualizzare i dati di drill-down nelle visualizzazioni. Questa sezione include i seguenti esempi:

  • Drill-down con la funzionalità Drill-down visivo
  • Visualizzazione in dettaglio di un grafico a dispersione con limite e media mobile
  • Visualizzazione in dettaglio di un grafico a linee in pila con tabelle pivot
  • Visualizzazione in dettaglio di una visualizzazione personalizzata
  • Visualizzazione in dettaglio di un calcolo tabulare con formattazione condizionale

Drill-down con la funzionalità Drill-down visivo

La funzionalità Visualizzazione in dettaglio consente agli utenti di esaminare in dettaglio un'esplorazione o un Look. Con una personalizzazione pari a zero e un set di livelli di analisi limitato, puoi visualizzare i dati di analisi in diversi tipi di visualizzazione preselezionati da Looker in base ai dati.

La funzionalità Visualizzazione in dettaglio non è supportata dai cruscotti. Per le dashboard, puoi creare un'esperienza di visualizzazione in dettaglio con il parametro link senza dover attivare la funzionalità. Le sezioni successive forniscono esempi di come creare un'esperienza di visualizzazione in dettaglio utilizzando il parametro link.

Ad esempio, per mostrare quanti articoli sono stati venduti al giorno, puoi creare una misura che esamina in dettaglio i campi Data creazione e Prezzo di vendita totale:

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

L'esplorazione visiva è l'opzione più semplice. Tuttavia, cosa succede se vuoi controllare il tipo di visualizzazione mostrato agli utenti quando eseguono il drill-down? Le sezioni seguenti forniscono esempi di come personalizzare ulteriormente una visualizzazione in dettaglio.

Visualizzazione in dettaglio di un grafico a dispersione con limite e media mobile

Puoi consentire agli utenti di visualizzare in dettaglio un grafico a dispersione che include una linea di tendenza della media mobile. Ad esempio, supponiamo che tu voglia visualizzare il numero di articoli venduti al giorno come grafico a dispersione con una media mobile di 30 giorni:

Per farlo, puoi specificare le impostazioni di visualizzazione in un URL utilizzando le variabili Liquid. Queste impostazioni controllano la visualizzazione che appare nel livello di analisi:

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

Visualizzazione in dettaglio di un grafico a linee in pila con tabelle pivot

Puoi anche consentire agli utenti di visualizzare in dettaglio un grafico a linee in pila, ad esempio un grafico a linee in pila che mostra il prezzo di vendita totale per ogni numero del mese, con pivot per anno di creazione:

Il seguente codice LookML specifica le impostazioni per la visualizzazione precedente:

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

Visualizzazione in dettaglio di una visualizzazione personalizzata

Puoi anche consentire agli utenti di visualizzare in dettaglio una visualizzazione personalizzata:

Per farlo, puoi includere la visualizzazione personalizzata nelle impostazioni di visualizzazione specificate per il parametro 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"
  }
}

Visualizzazione in dettaglio di un calcolo tabulare con formattazione condizionale

Puoi anche consentire agli utenti di visualizzare in dettaglio un calcolo tabellare che mostra la formattazione condizionale:

Può essere definito in LookML come segue:

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