Penelusuran data yang lebih andal

Salah satu fitur unik Looker adalah terhubung langsung ke database Anda. Artinya, Anda selalu dapat mengakses data terbaru dan selalu dapat mendetail ke tingkat yang paling terperinci yang tersedia. Jadi, meskipun Anda dapat melihat ringkasan tahunan atau bulanan, Looker juga menyediakan opsi untuk melihat perincian hari, jam, atau detik secara instan.

Halaman ini memberikan contoh cara menyesuaikan dan memanfaatkan pengelompokan data untuk menciptakan pengalaman analisis yang lebih efektif bagi pengguna, termasuk:

  • Menyesuaikan cara nilai ditampilkan dalam tabel data perincian dasar
  • Menyesuaikan visualisasi penelusuran untuk membuat pengalaman penelusuran visual

Menyesuaikan cara nilai ditampilkan dalam tabel data perincian dasar

Arsitektur modern native web Looker memungkinkan Anda melakukan lebih dari sekadar melihat perincian dari satu tingkat ke tingkat yang lebih terperinci. Anda dapat membuat jalur penelusuran kustom hanya dengan beberapa parameter.

Contoh berikut menunjukkan cara menyesuaikan cara data ditampilkan dalam tabel perincian, termasuk:

  • Menambahkan batas baris kustom (hingga 5.000 baris) ke tabel perincian
  • Menambahkan pengurutan ke tabel perincian
  • Menambahkan pivot ke tabel perincian

Menambahkan batas baris (hingga 5.000 baris) ke tabel perincian

Menambahkan batas baris ke tabel perincian memungkinkan Anda mengontrol cara data ditampilkan kepada pengguna saat mereka melihat perincian nilai ukuran. Misalnya, bagaimana jika Anda hanya ingin menampilkan 20 hasil pertama dalam tabel perincian saat pengguna melihat perincian nilai ukuran Jumlah yang Ditampilkan? Anda dapat menggunakan parameter link dan menetapkan subparameter url ke "{{ link }}&limit=20", seperti dalam kode LookML berikut:

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

Hal ini memungkinkan pengguna melihat perincian 20 hasil teratas dengan memilih Jelajahi 20 Hasil Teratas dari menu perincian ukuran Jumlah yang Ditampilkan:

Menambahkan pengurutan ke tabel perincian

Selain membatasi data, Anda juga dapat mengontrol cara data diurutkan dalam tabel perincian. Misalnya, bagaimana jika Anda ingin menampilkan 20 hasil menurut Harga Promo saat pengguna melihat perincian nilai ukuran Jumlah yang Ditampilkan? Anda dapat menggunakan parameter link dan menetapkan subparameter url ke "{{ link }}&sorts=order_items.sale_price". Kode LookML berikut menggabungkan pengurutan kustom dengan batas baris kustom:

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

Hal ini memungkinkan pengguna melihat perincian 20 hasil teratas berdasarkan harga jual dengan memilih Jelajahi 20 Hasil Teratas berdasarkan Harga Jual dari menu perincian ukuran Harga Jual:

Menambahkan pivot ke tabel perincian

Selain membatasi dan mengurutkan data, Anda juga dapat membuat pivot dimensi di tabel perincian. Misalnya, bagaimana jika Anda ingin menambahkan pivot ke kolom Tingkat Usia untuk menampilkan tahun dan tingkat persentase margin kotor untuk setiap kelompok usia saat pengguna melihat perincian nilai metrik Jumlah Pesanan? Anda dapat menggunakan parameter link dan menetapkan subparameter url ke "&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} ;;
}

Hal ini memungkinkan pengguna melihat perincian tahun dan persentase margin kotor untuk setiap kelompok usia saat mereka memilih Total Harga Penjualan menurut Bulan untuk Setiap Tingkat Usia dari menu perincian ukuran Jumlah Pesanan:

Membuat pengalaman pengeboran visual

Tabel data menyampaikan data dengan cara yang efektif, tetapi bagaimana jika Anda ingin memvisualisasikan data yang dilihat pengguna saat mereka melakukan penelusuran? Ada beberapa cara untuk menampilkan data perincian dalam visualisasi selain tabel data. Bagian ini menyertakan contoh berikut:

  • Menelusuri dengan fitur Labs Visual Drilling
  • Membuka perincian ke diagram pencar dengan batas dan moving average
  • Membuka diagram garis bertumpuk dengan pivot
  • Membuka visualisasi kustom
  • Membuka kalkulasi tabel yang memiliki pemformatan bersyarat

Menelusuri dengan fitur Labs Visual Drilling

Fitur Labs Visual Drilling memungkinkan pengguna melihat perincian Jelajahi atau Tampilan. Tanpa penyesuaian dan set perincian yang terbatas, Anda dapat menampilkan data perincian dalam berbagai jenis visualisasi yang telah dipilih sebelumnya berdasarkan data oleh Looker.

Fitur Labs Visual Drilling tidak didukung oleh dasbor. Untuk dasbor, Anda dapat membuat pengalaman pengeboran visual dengan parameter link tanpa perlu mengaktifkan fitur Labs. Bagian berikut memberikan contoh cara membuat pengalaman pengeboran visual menggunakan parameter link.

Misalnya, untuk menampilkan jumlah item yang telah terjual berdasarkan hari, Anda dapat membuat ukuran yang mengelompokkan kolom Tanggal Pembuatan dan Total Harga Penjualan:

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

Penelusuran visual adalah opsi yang paling sederhana; tetapi, bagaimana jika Anda ingin mengontrol jenis visualisasi yang ditampilkan kepada pengguna saat mereka melakukan penelusuran? Bagian berikut memberikan contoh cara menyesuaikan visualisasi pengeboran lebih lanjut.

Membuka perincian ke diagram pencar dengan batas dan moving average

Anda dapat mengizinkan pengguna melihat perincian diagram plot sebar yang menyertakan garis tren moving average. Misalnya, Anda ingin menampilkan jumlah item yang telah terjual berdasarkan hari sebagai diagram plot sebar dengan rata-rata bergerak 30 hari:

Untuk melakukannya, Anda dapat menentukan setelan visualisasi di URL menggunakan Variabel likuid. Setelan ini mengontrol visualisasi yang muncul dalam pengeboran:

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

Membuka diagram garis bertumpuk dengan pivot

Anda juga dapat mengizinkan pengguna melihat perincian diagram garis bertumpuk, misalnya, diagram garis bertumpuk yang menampilkan Total Harga Penjualan untuk setiap Nomor Bulan, yang diputar berdasarkan Tahun Pembuatan:

LookML berikut menentukan setelan untuk visualisasi sebelumnya:

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

Membuka visualisasi kustom

Anda juga dapat mengizinkan pengguna melihat perincian visualisasi kustom:

Untuk melakukannya, Anda dapat menyertakan visualisasi kustom dalam setelan visualisasi yang Anda tentukan untuk parameter 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"
  }
}

Membuka kalkulasi tabel yang memiliki pemformatan bersyarat

Anda juga dapat mengizinkan pengguna melihat perincian kalkulasi tabel yang menampilkan pemformatan bersyarat:

Hal ini dapat ditentukan dalam LookML sebagai berikut:

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