Untuk dialek yang mendukungnya, fitur kalender kustom di Looker memungkinkan Anda menentukan kalender kustom di database, seperti kalender fiskal atau ritel tertentu, lalu menerapkan kalender ke grup dimensi berbasis tanggal di model LookML. Pengguna Anda kemudian dapat membuat kueri Eksplorasi menggunakan jangka waktu kustom, seperti custom_week, custom_period, seolah-olah jangka waktu tersebut adalah jangka 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 Use Legacy LookML Runtime diaktifkan di instance Anda, Anda harus menambahkan pernyataan
new_lookml_runtime: yeske file manifes project.
Membuat kalender kustom
Untuk menerapkan kalender kustom, Anda harus melakukan langkah-langkah umum yang dijelaskan di bagian berikut:
- Membuat tabel kalender di database
- Menentukan tampilan kalender kustom di LookML
- Membuat grup dimensi kalender kustom
Membuat tabel kalender di database
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 Anda menentukan tampilan kalender kustom di LookML, Anda akan menggunakan blok calendar_definition untuk memetakan kolom di 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 penggabungan. 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 'Winter'). |
season_num |
INTEGER |
Musim kustom numerik (seperti 1). |
Untuk mengilustrasikan, berikut beberapa baris contoh 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 Anda membuat tabel kalender di database, Anda harus 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 di database Anda. - Blok
calendar_definitionuntuk memetakan kolom tabel Anda ke jenis jangka waktu kustom Looker. dimensionparameter untuk 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 Anda membuat tabel kalender di database dan memodelkan 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 kumpulan jangka waktu kustom baru untuk grup dimensi created (seperti "Created Custom Year", "Created Custom Week"). Pengguna kemudian dapat menggunakan kolom ini untuk eksplorasi, 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 terkait kalender kustom:
- Metrik yang difilter: Kalender kustom tidak didukung untuk metrik yang difilter: Anda tidak dapat mereferensikan dimensi kalender kustom dalam parameter
filtersmetrik. - Filter lanjutan: Kalender kustom tidak didukung dalam filter lanjutan: Anda tidak dapat mereferensikan dimensi kalender kustom dalam ekspresi filter Looker.
- Agregat simetris: Dalam beberapa skenario gabungan yang kompleks, agregat 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.
- Pemfilteran di luar batas kalender: Jika filter diterapkan ke jangka waktu kustom yang menghasilkan tanggal yang tidak ada dalam kalender, hasil yang tidak terduga mungkin akan ditampilkan. Hal ini berkaitan dengan aritmetika ordinal yang digunakan untuk menghitung awal periode.
- Filter
OR:FilterORtidak didukung untuk kueri dengan kalender kustom. - Perilaku konversi zona waktu: Looker menggunakan semantik konversi zona waktu yang ada. Artinya, jika zona waktu database dan kueri cocok, konversi zona waktu tidak akan diterapkan. Jika tidak cocok, Looker akan menerapkan konversi zona waktu. Anda dapat mengganti perilaku ini dengan menentukan
convert_tz: noke grup dimensi kalender kustom. - 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 di Looker versi 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 |