Analisi più potente dei dati

Una caratteristica unica di Looker è che si connette direttamente al tuo database. Ciò significa che puoi sempre accedere ai dati più recenti e puoi sempre visualizzare in dettaglio il livello più granulare disponibile. Sebbene sia possibile visualizzare riepiloghi annuali o mensili, Looker ti offre anche la possibilità di visualizzare in dettaglio giorno, ora o secondi.

Questa pagina fornisce esempi di come personalizzare e utilizzare la visualizzazione in dettaglio dei dati per creare esperienze di analisi più efficaci per gli utenti, tra cui:

  • Personalizzazione del modo in cui i valori vengono presentati nelle tabelle di dati di base
  • Personalizzare la visualizzazione in dettaglio per creare un'esperienza di drill-down visiva

Personalizzazione del modo in cui i valori vengono presentati nelle tabelle di dati di base

La moderna architettura web-native di Looker ti consente di fare molto di più che passare da un livello a quello più granulare successivo. Puoi creare qualsiasi percorso di dettaglio personalizzato con pochi parametri.

I seguenti esempi mostrano come personalizzare il modo in cui i dati vengono presentati nelle tabelle drill, tra cui:

  • Aggiunta di limiti di righe personalizzati (fino a 5000 righe) a una tabella drill
  • Aggiunta di ordinamenti a una tabella drill
  • Aggiunta di pivot a una tabella drill

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

L'aggiunta di limiti di righe a una tabella drill consente di controllare il modo in cui i dati vengono presentati agli utenti quando visualizzano in dettaglio i valori di misurazione. Ad esempio, cosa succede se volessi visualizzare solo i primi 20 risultati in una tabella drill quando un utente visualizza in dettaglio un valore di misura Conteggio restituito? Puoi utilizzare il parametro link e impostare il sottoparametro 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]
}

Ciò consente agli utenti di visualizzare in dettaglio i primi 20 risultati selezionando Esplora i primi 20 risultati dal menu in dettaglio della misura Conteggio restituito:

Aggiunta di ordinamenti a una tabella drill

Oltre a limitare i dati, puoi anche controllare in che modo vengono ordinati i dati in una tabella drill. Ad esempio, cosa succede se volessi visualizzare i 20 risultati in base al prezzo scontato quando un utente visualizzava in dettaglio il valore di misura Conteggio restituito? Puoi utilizzare il parametro link e impostare il sottoparametro url su "{{ link }}&sorts=order_items.sale_price". Il seguente codice LookML combina un 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 per prezzo scontato selezionando Esplora i primi 20 risultati per prezzo scontato dal menu di visualizzazione in dettaglio della misura del prezzo scontato:

Aggiunta di pivot a una tabella drill

Oltre a limitare e ordinare i dati, puoi anche eseguire il pivot delle dimensioni in una tabella drill. Ad esempio, cosa accadrebbe se volessi aggiungere un pivot a un campo Livello di età per mostrare l'anno e la percentuale di margine lordo per ogni fascia d'età quando un utente visualizza in dettaglio un valore di misura di 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 fascia d'età quando selezionano Prezzo di vendita totale per mese per ogni livello di età dal menu dettagliato della misura Conteggio ordini:

Creazione di un'esperienza di analisi visiva

Le tabelle di dati trasmettono i dati in modo efficace, ma cosa succede se vuoi visualizzare i dati che un utente vede quando esegue il drill? Esistono diversi modi per mostrare i dati in dettaglio nelle visualizzazioni, oltre alle tabelle di dati. Questa sezione include i seguenti esempi:

  • Analisi con la funzionalità di analisi visiva di Labs
  • Visualizzazione in dettaglio di un grafico a dispersione con limite e media mobile
  • Eseguire il drill-down di un grafico a linee in pila con pivot
  • Esecuzione del drill-down in una visualizzazione personalizzata
  • Visualizzazione in dettaglio di un calcolo tabulare con formattazione condizionale

Analisi con la funzionalità di analisi visiva di Labs

La funzionalità di Labs Visualizzazione in dettaglio consente agli utenti di visualizzare in dettaglio un'esplorazione o un Look. Senza personalizzazione e un set di drill limitato, puoi visualizzare i dati di drill in diversi tipi di visualizzazione preselezionati in base ai dati da Looker.

La funzionalità di Labs Visualizzazione dettagliata non è supportata dalle dashboard. Per le dashboard, puoi creare un'esperienza di visualizzazione in dettaglio con il parametro link senza dover abilitare la funzionalità Labs. Le sezioni che seguono forniscono esempi di come creare un'esperienza di analisi visiva utilizzando il parametro link.

Ad esempio, per mostrare quanti articoli sono stati venduti in un giorno, puoi creare una misura che visualizzi 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]
}

Il drill-down visivo è l'opzione più semplice; tuttavia, cosa succede se vuoi controllare il tipo di visualizzazione da mostrare agli utenti durante la visualizzazione in dettaglio? Le seguenti sezioni 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, supponi di voler visualizzare quanti articoli sono stati venduti in un giorno in un grafico a dispersione con media mobile di 30 giorni:

A questo scopo, puoi specificare le impostazioni di visualizzazione in un URL utilizzando le variabili Liquid. Queste impostazioni controllano la visualizzazione mostrata nel dettaglio:

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

Eseguire il drill-down di un grafico a linee in pila con 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 di mese, basato su 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=
}

Esecuzione del drill-down in una visualizzazione personalizzata

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

A questo scopo, 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 tabulare che mostra la formattazione condizionale:

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