Untuk dialek yang mendukungnya, fitur kalender kustom di Looker memungkinkan Anda menentukan kalender kustom di database, seperti kalender fiskal atau retail tertentu, lalu menerapkan kalender tersebut ke grup dimensi berbasis tanggal dalam model LookML. Pengguna Anda kemudian dapat membuat kueri Eksplorasi menggunakan rentang waktu kustom Anda, seperti custom_week, custom_period, seolah-olah itu adalah rentang waktu standar.
Prasyarat
Sebelum menggunakan kalender kustom, pastikan prasyarat berikut terpenuhi:
- Anda harus memiliki koneksi Looker ke dialek yang mendukung kalender kustom.
- Anda harus membuat tabel kalender di database yang kemudian dapat Anda modelkan sebagai tampilan di Looker. Looker menggunakan tabel kalender di database Anda untuk menghitung jangka waktu kustom. Lihat bagian Membuat tabel kalender di database Anda untuk mengetahui informasi selengkapnya.
- Project LookML Anda harus menggunakan runtime LookML baru. Jika fitur lama Gunakan Runtime LookML Lama diaktifkan di instance Anda, Anda harus menambahkan pernyataan
new_lookml_runtime: yeske file manifes project Anda.
Membuat kalender kustom
Untuk menerapkan kalender kustom, Anda perlu melakukan langkah-langkah umum berikut yang dijelaskan di bagian berikut:
- Buat tabel kalender di database Anda
- Menentukan tampilan kalender kustom di LookML
- Membuat grup dimensi kalender kustom
Membuat tabel kalender di database Anda
Untuk menghitung tanggal kalender kustom, Looker memerlukan tabel kalender khusus di database Anda yang menentukan jangka waktu kustom. Tabel Anda harus memiliki kolom tanggal referensi yang menggunakan tanggal kalender standar. Looker menggabungkan tabel kalender ke tabel data Anda (seperti tabel orders) berdasarkan kolom tanggal referensi.
Nama kolom dalam tabel kalender bersifat fleksibel. Saat menentukan tampilan kalender kustom di LookML, Anda akan menggunakan blok calendar_definition untuk memetakan kolom dalam database ke nama jangka waktu kustom standar.
Berikut adalah contoh skema tabel untuk tabel kalender bernama fiscal_calendar_table.
| Nama Kolom | Jenis Data | Deskripsi |
|---|---|---|
reference_date |
DATE |
Tanggal kalender standar (seperti '2023-01-01'). Digunakan untuk bergabung. Harus berupa kunci utama atau unik. |
fiscal_year |
VARCHAR |
Tahun fiskal (seperti 'FY2023'). |
fiscal_year_num |
INTEGER |
Tahun fiskal numerik (seperti 2023). |
fiscal_quarter_of_year |
VARCHAR |
Kuartal fiskal (seperti 'FQ1'). |
fiscal_quarter_of_year_num |
INTEGER |
Kuartal fiskal numerik (seperti 1). |
fiscal_week_of_year |
VARCHAR |
Minggu fiskal dalam setahun (seperti 'Week01', 'FW01'). |
fiscal_week_of_year_num |
INTEGER |
Minggu fiskal numerik dalam setahun (seperti 1). |
fiscal_period_of_year |
VARCHAR |
Nama periode kustom (seperti 'P01'). |
fiscal_period_of_year_num |
INTEGER |
Periode kustom numerik (seperti 1). |
season |
VARCHAR |
Nama musim kustom (seperti 'Musim Dingin'). |
season_num |
INTEGER |
Musim kustom numerik (seperti 1). |
Untuk mengilustrasikannya, berikut beberapa contoh baris dari tabel fiscal_calendar_table:
reference_date |
fiscal_year |
fiscal_year_num |
fiscal_period |
fiscal_period_num |
|---|---|---|---|---|
2023-12-25 |
FY2024 |
2024 |
P01 |
1 |
2023-12-26 |
FY2024 |
2024 |
P01 |
1 |
2024-01-01 |
FY2024 |
2024 |
P02 |
2 |
2024-01-02 |
FY2024 |
2024 |
P02 |
2 |
Menentukan tampilan kalender kustom di LookML
Setelah membuat tabel kalender di database, Anda perlu membuat tampilan LookML untuk memodelkan tabel kalender database.
File tampilan kalender kustom harus menyertakan hal berikut:
- Parameter
sql_table_nameyang mengarah ke tabel kalender kustom dalam database Anda. - Blok
calendar_definitionuntuk memetakan kolom tabel Anda ke jenis jangka waktu kustom Looker. - Parameter
dimensionuntuk memodelkan kolom tabel kalender kustom di database Anda.
Berikut adalah contoh file tampilan bernama fiscal_calendar.view.lkml yang memodelkan contoh fiscal_calendar_table:
view: fiscal_calendar {
sql_table_name: fiscal_calendar_table ;;
calendar_definition: {
reference_date: reference_date
timeframe_mapping: {
custom_year: fiscal_year
custom_quarter: fiscal_quarter_of_year
custom_date: fiscal_date
custom_week: fiscal_week_of_year
custom_period: fiscal_period_of_year
custom_season: season
}
timeframe_ordinal_mapping: {
custom_year: fiscal_year_num
custom_quarter: fiscal_quarter_of_year_num
custom_date: fiscal_date_num
custom_week: fiscal_week_of_year_num
custom_period: fiscal_period_of_year_num
custom_season: season_num
}
}
dimension: reference_date {
type: date
primary_key: yes
sql: ${TABLE}.reference_date ;; # Assuming column name is reference_date
}
dimension: fiscal_date {
type: string
sql: FORMAT_TIMESTAMP('%Y-%m-%d', ${TABLE}.reference_date) ;;
}
dimension: fiscal_year {
type: string
sql: ${TABLE}.fiscal_year ;;
}
dimension: fiscal_year_num {
type: number
sql: ${TABLE}.fiscal_year_num ;;
}
# ... other dimensions for quarters, weeks, periods, seasons, etc. ...
# Example placeholder dimensions for unused timeframes
dimension: season {
type: string
sql: 'N/A' ;;
hidden: yes
}
dimension: season_num {
type: number
sql: 0 ;;
hidden: yes
}
}
Lihat halaman parameter calendar_definition untuk mengetahui detail parameter calendar_definition.
Membuat grup dimensi kalender kustom
Setelah membuat tabel kalender di database dan membuat model tabel kalender database di LookML, Anda dapat membuat grup dimensi type: custom_calendar yang didasarkan pada tampilan kalender kustom.
Misalnya, berikut adalah file tampilan bernama orders.view.lkml yang menentukan grup dimensi kalender kustom.
include: "/views/fiscal_calendar.view"
view: orders {
sql_table_name: public.orders ;;
dimension_group: created {
type: custom_calendar
# Optional list of allowed timeframes
custom_timeframes: [
custom_date,
custom_week,
custom_year
]
sql: ${TABLE}.created_at ;;
based_on_calendar: fiscal_calendar # This links to your calendar view
}
}
Dengan LookML ini, Looker akan otomatis membuat serangkaian jangka waktu kustom baru untuk grup dimensi created (seperti "Tahun Kustom Dibuat", "Minggu Kustom Dibuat"). Kemudian, pengguna dapat menggunakan kolom ini untuk penjelajahan, pelaporan, dan pemfilteran.
Lihat halaman dokumentasi dimension_group untuk mengetahui detail tentang cara membuat grup dimensi untuk kalender kustom.
Hal-hal yang perlu dipertimbangkan
Perhatikan batasan berikut pada kalender kustom:
- Ukuran yang difilter: Kalender kustom tidak didukung untuk ukuran yang difilter: Anda tidak dapat mereferensikan dimensi kalender kustom dalam parameter
filtersdari ukuran. - Filter lanjutan: Kalender kustom tidak didukung dalam filter lanjutan: Anda tidak dapat mereferensikan dimensi kalender kustom dalam ekspresi filter Looker.
- Gabungan simetris: Dalam beberapa skenario gabungan yang kompleks, gabungan simetris mungkin tidak sepenuhnya didukung untuk kueri yang melibatkan dimensi kalender kustom.
- Pengisian dimensi: Looker tidak dapat mengisi dimensi tanggal yang tidak ada untuk dimensi kalender kustom.
- Memfilter di luar batas kalender: Jika filter diterapkan ke jangka waktu kustom yang menghasilkan tanggal yang tidak ada dalam kalender, hasil yang tidak terduga dapat ditampilkan. Hal ini berkaitan dengan aritmetika ordinal yang digunakan untuk menghitung awal periode.
- Perilaku konversi zona waktu: Looker mematuhi semantik konversi zona waktu yang ada. Artinya, jika zona waktu database dan kueri cocok, tidak ada konversi zona waktu yang diterapkan. Jika tidak setuju, Looker akan menerapkan konversi zona waktu. Anda dapat mengganti perilaku ini dengan menentukan
convert_tz: noke grup dimensi kalender kustom Anda. - Pengurutan default: Looker menerapkan pengurutan default ke kolom tanggal pertama saat kolom kalender kustom dipilih. Pengguna kemudian dapat menentukan pengurutan data yang berbeda.
- Filter kalender kustom: Dimensi kalender kustom mendukung opsi filter tertentu, seperti is in the last 3 custom years atau is this custom period. Untuk mengetahui informasi selengkapnya, lihat bagian Filter kalender kustom di halaman dokumentasi Memfilter dan membatasi data.
Dialek database yang didukung untuk kalender kustom
Tabel berikut menunjukkan dialek yang mendukung kalender kustom dalam rilis Looker terbaru:
| Dialek | Didukung? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |