Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Hari ini, saya ingin bercakap tentang konsep pemodelan data yang dipanggil dimensi sampah . Daripada namanya, anda akan fikir ia adalah teknik yang menghina dan sesuatu yang anda ingin elakkan, tetapi ia sebenarnya pendekatan yang berguna.

Malah, saya mengerjakan soalan daripada , dan dimensi sampah adalah penyelesaian yang sempurna untuknya. Sebaik sahaja anda melihat dan memahaminya, anda akan mendapati banyak aplikasi untuknya dalam kerja anda sendiri. Anda boleh menonton video penuh tutorial ini di bahagian bawah blog ini.

Isi kandungan

Apakah Dimensi Sampah?

Kimball dan Ross The Data Warehouse Toolkit , salah satu bible pemodelan dimensi, mentakrifkannya sebagai pengelompokan bendera dan penunjuk kardinaliti rendah yang lazimnya . Kardinaliti rendah bermaksud sebilangan kecil pemerhatian unik dalam bidang tertentu.

Dalam contoh kami, kami mempunyai model data untuk perniagaan kami membina PC tersuai. Model data adalah berkaitan dengan pesanan dan invois. Kami juga mempunyai beberapa bendera yang membolehkan kami menangkap jenis pemproses , jenis konfigurasi menara (Kompak atau Penuh) dan tujuan (Permainan atau Stesen Kerja).

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Menentukan Dimensi Sampah Menggunakan Analogi Laci Sarap Dapur

Jika anda melihat setiap bidang ini, terdapat hanya dua pemerhatian unik dalam setiap bidang. Inilah yang Kimball akan rujuk sebagai bendera kardinaliti rendah . Dia mengatakan bahawa dengan mencipta dimensi abstrak, kami mengalih keluar bendera daripada jadual fakta sambil meletakkannya dalam rangka kerja dimensi yang berguna.

Analogi laci sampah dapur untuk dimensi sampah adalah yang bagus. Semua orang mempunyai laci yang penuh dengan gelang getah, staples, bateri, lilin hari jadi, dan sebagainya. Tidak penting bagi mana-mana perkara ini untuk menjamin mempunyai laci mereka sendiri, tetapi anda perlu mempunyai tempat untuk meletakkannya.

Menyimpannya boleh menyebabkan saiz meja fakta menjadi belon. Katakan kita mempunyai jadual fakta dengan sejuta rekod. Kami membina banyak komputer, dan untuk setiap komputer yang kami bina, kami perlu membenderakan pemproses, menara dan tujuan. Ini bermakna bahawa untuk satu juta baris PC yang telah dipesan, kami juga mempunyai 3 juta bendera dalam jadual fakta.

Mengurangkan Saiz Jadual Fakta

Kami boleh mengalihkannya ke jadual dimensi dan memautkan hanya pada ID Model untuk mengalih keluar 3 juta bendera daripada jadual fakta. Untuk melakukan ini, kita boleh membuat jadual berasingan untuk setiap bendera ini dan ia akan berfungsi. Tetapi proses ini akan merumitkan model data, di mana anda biasanya ingin mengelakkan jadual satu lajur.

Penyelesaian yang ideal ialah menggunakan dimensi sampah , di mana anda mempunyai sekumpulan bendera kardinaliti rendah yang berkaitan secara umum. Ini semua berkaitan dengan atribut komputer yang sedang kami bina, tetapi bukan dengan cara yang betul-betul langsung seperti yang biasa anda miliki untuk jadual dimensi tertentu.

Mengkaji Masalah Ahli Forum

Mari kita lihat aplikasi khusus yang disiarkan di forum. Ahli itu ingin mencipta dua medan berbeza, satu untuk Stalled dan satu untuk Active . Jika pelanggan membuat transaksi dalam tempoh 45 hari yang lalu, ia akan dibenderakan sebagai aktif; jika tidak, ia akan dibenderakan sebagai terhenti.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Ahli itu juga mahukan jadual dimensi lain untuk Jenis Pelanggan, iaitu sama ada berbilang pesanan atau pesanan tunggal. Jika akaun itu mempunyai dua atau lebih transaksi pada bila-bila masa melalui sejarah menggunakan satu nombor akaun, itu akan dianggap sebagai pelanggan berbilang pesanan. Dan jika mereka hanya mempunyai satu pesanan untuk nombor akaun tertentu, itu akan menjadi pelanggan pesanan tunggal.

Jadi itulah dua bendera yang ingin kita bangunkan. Mari beralih ke LuckyTemplates dan cari cara untuk melakukannya.

Pemodelan Data Untuk Dimensi Sampah

Mari kita lihat model data. Ia adalah model data yang sangat mudah. Kami mempunyai jadual Tarikh lanjutan dan jadual Transaksi .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Jadual urus niaga kami hanya mempunyai tiga medan: nombor akaun , tarikh invois dan kuantiti jualan .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Secara amnya, jika kita boleh menolak transformasi lebih dekat kepada sumber, kita akan melakukannya. Ini tidak dinamik semasa sesi pelaporan, jadi kami tidak perlu melakukannya dalam DAX .

Kita harus melakukannya sama ada dalam pertanyaan kuasa, atau gudang data/SQL jika kita mempunyai pilihan itu. Tetapi buat masa ini, mari kita anggap kita tidak melakukannya dan kita hanya melakukannya dalam pertanyaan kuasa .

Mengenalpasti Jenis Pelanggan Untuk Dimensi Sampah

Perkara pertama yang akan kami lakukan ialah mengetahui jenis pelanggan, sama ada urus niaga pesanan tunggal atau berbilang pesanan. Kami akan menggunakan Kumpulan Mengikut , Count dan Count Rows .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kemudian tambah semua data dan jadikan operasi Semua Baris supaya kami tidak mengembalikan jadual agregat, tetapi jadual awal dengan kiraan baris itu dalam setiap baris.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Mari kita lihat hasilnya dan kembangkannya.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kita boleh menambah lajur tersuai dan menamakannya Jenis Klien dan kemudian mencipta pernyataan IF. Pernyataannya ialah jika Count bersamaan dengan 1, maka ia adalah satu susunan; jika tidak, ia adalah pelbagai pesanan.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami hanya akan menukar lajur kepada jenis teks. Kini, kami mempunyai satu daripada dua dimensi kami yang ditetapkan dalam jadual fakta.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Mari selesaikan jadual dimensi kedua. Untuk yang ini, jika pesanan terbaharu ialah 45 hari atau kurang dari tarikh hari ini, maka pelanggan dilihat sebagai aktif. Jika tiada pesanan dalam masa 45 hari dari hari ini, maka pelanggan tidak aktif.

Kami akan menambah lajur tersuai dan menamakan lajur Hari Ini . Kemudian tambah DateTime.LocalNow untuk memberi kami tarikh dan masa semasa, kemudian Date.From untuk memberi kami bahagian tarikh sahaja.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Mari kita tukar ini kepada jenis data tarikh, dan kemudian alihkan lajur ke hadapan.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Terdapat cara mudah untuk membuat penolakan antara dua lajur tarikh. Hanya serlahkan dua tarikh tersebut, klik pada Tarikh pada reben, dan kemudian klik pada Tolak Hari .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Ini akan memberi anda perbezaan antara dua tarikh tersebut dari segi bilangan hari. Mari namakan lajur baharu ini Hari Sebelum Hari Ini.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Langkah seterusnya ialah mencari hari minimum sebelum hari ini, yang bermaksud pesanan terbaharu untuk setiap nombor akaun. Jika nombor itu kurang daripada atau sama dengan 45, ia adalah aktif.

Mari lakukan Kumpulan Mengikut , kemudian Lanjutan , kemudian Nombor Akaun .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Sekali lagi, kami akan menggunakan Semua Data untuk nama lajur baharu dan Semua Baris untuk operasi.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kali ini, kami akan menambah Hari Minimum Antara dengan Minimum sebagai operasinya dan Hari Sebelum Hari Ini sebagai lajurnya. Ini akan memberi kami pesanan terkini.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kemudian kami mengembangkan Semua Data dan mengalih keluar Nombor Akaun .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Sebaik sahaja kami mengembangkannya, kami akan mempunyai Hari Minimum Antara untuk nombor akaun.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Akhir sekali, kami akan menambah satu lagi lajur tersuai dan memanggilnya Pemasa Pelanggan . Kami akan memasukkan parameter bagaimana jika jika Antara Hari Min kami kurang daripada atau sama dengan 45, maka ia adalah Aktif atau Terhenti .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Mengalih keluar Lajur yang Tidak Diperlukan

Memandangkan kita kini mempunyai banyak lajur sokongan, mari klik pada Pilih Lajur dan keluarkan lajur yang tidak kita perlukan.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami akan mengalih keluar Count , Today , Days Before Today , dan Min Days Between lajur. Kami kini hanya mempunyai jadual fakta asal, serta lajur Jenis Pelanggan dan Masa Pelanggan .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Daripada menyimpannya dalam jadual fakta, mari kita salin jadual ini.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami akan memanggil jadual pendua Bendera Akaun .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Mari kembali ke jadual Transaksi dan keluarkan medan Jenis Pelanggan dan Masa Pelanggan .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami kini mempunyai jadual fakta asal dan jadual Bendera Akaun.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Untuk jadual Bendera Akaun, kami tidak memerlukan medan Jenis Pelanggan dan Masa Pelanggan jadi kami mengeluarkannya. Kami hanya menyerlahkan semua medan ini, mengalih keluar baris dan mengalih keluar pendua.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami kini mempunyai jadual dimensi sampah kami. Apa yang tinggal ialah tekan Close & Apply . Langkah seterusnya ialah menyambungkan Nombor Akaun daripada jadual Bendera Akaun kami ke Nombor Akaun dalam jadual Transaksi kami .

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kami mempunyai hubungan satu dengan banyak antara jadual Transaksi (iaitu jadual fakta kami) dan jadual Bendera Akaun (iaitu jadual dimensi sampah kami).


Membina Perhubungan Model Data Anda Dalam
Pemodelan Data LuckyTemplates Dalam LuckyTemplates: Petua & Amalan Terbaik

Kesimpulan

Mari letakkan dimensi Pemasa Klien dan Jenis Klien ke dalam kanvas kita dan ubahnya menjadi penghiris. Kita kini boleh melakukan apa yang ahli mahu lakukan pada mulanya, iaitu memotong berdasarkan atribut ini.

Jika kami mengklik pada Berbilang Pesanan, ia akan meninggalkan kami hanya dengan pesanan yang mempunyai berbilang pesanan dan jika kami menggunakan Pesanan Tunggal, ia akan meninggalkan kami dengan pesanan yang mempunyai satu pembelian.

Dimensi Sarap: Apa Itu Dan Mengapa Ia Bukan Sampah

Kesimpulannya, ini pada asasnya ialah dimensi sampah, dan bagaimana anda boleh menciptanya. Ini adalah teknik yang sangat berguna jika anda mempunyai pelbagai jenis bendera kardinaliti rendah yang anda ingin masukkan dalam model data anda dengan cara yang cekap.

Teknik kumpulan mengikut semua baris amat berguna untuk mencipta dimensi sampah ini. Saya harap anda mendapati ini membantu dan seperti biasa.


Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu