Una funzionalità unica di Looker è che si connette direttamente al tuo database. Ciò significa che puoi sempre accedere ai dati più recenti e eseguire drill-down fino al livello più granulare disponibile. Pertanto, anche se puoi visualizzare i riepiloghi annuali o mensili, Looker offre anche la possibilità di visualizzare immediatamente i dati giornalieri, orari o secondari.
Questa pagina fornisce esempi di come personalizzare e sfruttare la visualizzazione dettagliata dei dati per creare esperienze analitiche più efficaci per gli utenti, tra cui:
- Personalizzazione della presentazione dei valori nelle tabelle di dati di analisi di base
- Personalizzare la visualizzazione del drill per creare un'esperienza di visualizzazione dettagliata
Personalizzazione della presentazione dei valori nelle tabelle di dati di analisi di base
La moderna architettura web-native di Looker ti consente di fare molto di più che passare da un livello al livello più granulare successivo. Puoi creare qualsiasi percorso di visualizzazione dettagliata personalizzato con pochi parametri.
I seguenti esempi mostrano come personalizzare il modo in cui i dati vengono presentati nelle tabelle di visualizzazione in dettaglio, tra cui:
- Aggiunta di limiti di righe personalizzati (fino a 5000 righe) a una tabella di visualizzazione in dettaglio
- Aggiunta di ordinamento a una tabella di visualizzazione dettagliata
- Aggiunta di pivot a una tabella di analisi dettagliata
Aggiungere limiti di righe (fino a 5000 righe) a una tabella di visualizzazione in dettaglio
L'aggiunta di limiti di righe a una tabella di visualizzazione dettagliata ti consente di controllare la modalità di presentazione dei dati agli utenti quando eseguono drill-down sui valori delle misure. Ad esempio, cosa succede se vuoi visualizzare solo i primi 20 risultati in una tabella di visualizzazione dettagliata quando un utente esegue la visualizzazione dettagliata di un valore della misura 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 visualizzare in dettaglio i primi 20 risultati selezionando Esplora i primi 20 risultati dal menu di analisi della misura Conteggio restituito:
Aggiunta di ordinamento a una tabella di visualizzazione dettagliata
Oltre a limitare i dati, puoi anche controllare il modo in cui vengono ordinati in una tabella di visualizzazione dettagliata. Ad esempio, cosa succederebbe se volessi visualizzare i 20 risultati per Prezzo scontato quando un utente visualizza in dettaglio un 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 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 20 risultati principali in base al prezzo scontato selezionando Esplora i 20 risultati principali in base al prezzo scontato dal menu di visualizzazione dettagliata della misura Prezzo scontato:
Aggiunta di pivot a una tabella di analisi dettagliata
Oltre a limitare e ordinare i dati, puoi anche eseguire il pivot delle dimensioni in una tabella di visualizzazione dettagliata. Ad esempio, cosa succederebbe se volessi aggiungere un pivot a un campo Età per mostrare il livello percentuale di margine lordo e anno per ogni fascia d'età quando un utente visualizza in dettaglio il valore di misurazione 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 di analisi della misura Conteggio ordini:
Creare 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 analizza i dati? Esistono diversi modi per visualizzare i dati di visualizzazione nelle visualizzazioni oltre alle tabelle di dati. In questa sezione sono inclusi i seguenti esempi:
- Eseguire la perforazione con la funzionalità di Labs Visual Drilling
- Esaminare in dettaglio un grafico a dispersione con un limite e una media mobile
- Eseguire drill-down in un grafico a linee in pila con i pivot
- Visualizzare in dettaglio una visualizzazione personalizzata.
- Visualizzare in dettaglio un calcolo tabulare con formattazione condizionale
Esaminare in dettaglio con la funzionalità di Labs Visualizzazione in dettaglio.
La funzionalità di Visual Drilling Labs consente agli utenti di visualizzare in dettaglio un'esplorazione o un look. Senza personalizzazione e con un set di analisi limitato, puoi mostrare i dati di analisi in diversi tipi di visualizzazione preselezionati in base ai dati di Looker.
La funzionalità di visualizzazione in dettaglio di Labs non è supportata dalle dashboard. Per le dashboard, puoi creare un'esperienza di visualizzazione dettagliata con il parametrolink
senza dover attivare la funzionalità Labs. Le sezioni che seguono forniscono esempi di come creare un'esperienza di visualizzazione dettagliata 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 di creazione e Prezzo totale di vendita:
measure: count { type: count_distinct sql: ${id} ;; drill_fields: [created_date, total_sale_price] }
L'esplorazione visiva è l'opzione più semplice, ma cosa succede se vuoi controllare il tipo di visualizzazione mostrato agli utenti quando eseguono l'esplorazione? Le seguenti sezioni forniscono esempi di come personalizzare ulteriormente una visualizzazione dettagliata.
Eseguire drill-down in un grafico a dispersione con un limite e una 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 al giorno sotto forma di grafico a dispersione con una media mobile di 30 giorni:
A questo scopo, puoi specificare le impostazioni di visualizzazione in un URL utilizzando le variabili liquide. 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" } }
Eseguire drill-down in un grafico a linee in pila con i 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, in base a 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= }
Eseguire il drill-down in una visualizzazione personalizzata
Puoi anche consentire agli utenti di visualizzare in dettaglio una visualizzazione personalizzata:
A tale 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" } }
Eseguire drill-down in un calcolo della tabella con formattazione condizionale
Puoi anche consentire agli utenti di visualizzare un calcolo della tabella che mostra la formattazione condizionale:
Questo valore 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 }}" } }