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 l'esplorazione dei dati per creare esperienze di analisi più efficaci per gli utenti, tra cui:
- Personalizzazione della modalità di presentazione dei valori nelle tabelle di dati di visualizzazione in dettaglio di base
- Personalizzare la visualizzazione del drill per creare un'esperienza di visualizzazione dettagliata
Personalizzazione della modalità di presentazione dei valori nelle tabelle di dati di visualizzazione in dettaglio di base
L'architettura moderna nativa web di Looker ti consente di fare molto di più che passare da un livello all'altro più granulare. Puoi creare qualsiasi percorso di visualizzazione dettagliata personalizzato con pochi parametri.
Gli esempi riportati di seguito mostrano come puoi personalizzare il modo in cui i dati vengono presentati nelle tabelle di visualizzazione dettagliata, ad esempio:
- Aggiunta di limiti di righe personalizzate (fino a 5000 righe) a una tabella di visualizzazione dettagliata
- Aggiunta di ordinamento a una tabella di visualizzazione dettagliata
- Aggiunta di pivot a una tabella di analisi dettagliata
Aggiunta di limiti di righe (fino a 5000 righe) a una tabella di visualizzazione dettagliata
L'aggiunta di limiti di righe a una tabella di visualizzazione 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 20 risultati principali selezionando Esplora i 20 risultati principali dal menu di visualizzazione 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 succede se vuoi visualizzare i 20 risultati per Prezzo scontato quando un utente esegue drill-down in un valore della misura Conteggio restituito? 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 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 succede se vuoi aggiungere un pivot a un campo Fascia d'età per mostrare l'anno e la fascia percentuale del margine lordo per ogni fascia d'età quando un utente esegue drill-down in un valore della misura 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 fascia d'età dal menu di visualizzazione dettagliata della misura Conteggio ordini:
Creazione di un'esperienza di visualizzazione dettagliata
Le tabelle di dati trasmettono i dati in modo efficace, ma cosa succede se vuoi visualizzare i dati che un utente vede quando esegue un'analisi dettagliata? Esistono diversi modi per visualizzare i dati di visualizzazione nelle visualizzazioni oltre alle tabelle di dati. Questa sezione include i seguenti esempi:
- Eseguire la perforazione con la funzionalità di Visual Drilling di Labs
- Eseguire drill-down in un grafico a dispersione con un limite e una media mobile
- Eseguire drill-down in un grafico a linee in pila con i pivot
- Eseguire drill-down in una visualizzazione personalizzata
- Eseguire drill-down in un calcolo della tabella con formattazione condizionale
Eseguire la perforazione con la funzionalità di Visual Drilling di Labs
La funzionalità di Visual Drilling di Labs consente agli utenti di visualizzare in dettaglio un'esplorazione o un look. Senza alcuna personalizzazione e con un set di drill limitato, puoi visualizzare i dati di drill 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 il numero di articoli venduti in base al giorno, puoi creare una misura che esamini in dettaglio i campi Data di 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, 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 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 in base al giorno sotto forma di 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 visualizzata nell'esplorazione:
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 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, 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= }
Eseguire drill-down in una visualizzazione personalizzata
Puoi anche consentire agli utenti di visualizzare 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 }}" } }