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 parametrolink
senza dover abilitare la funzionalità Labs. Le sezioni che seguono forniscono esempi di come creare un'esperienza di analisi visiva utilizzando il parametrolink
.
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 }}" } }