Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
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).
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.
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 .
Jadual urus niaga kami hanya mempunyai tiga medan: nombor akaun , tarikh invois dan kuantiti jualan .
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 .
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.
Mari kita lihat hasilnya dan kembangkannya.
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.
Kami hanya akan menukar lajur kepada jenis teks. Kini, kami mempunyai satu daripada dua dimensi kami yang ditetapkan dalam jadual fakta.
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.
Mari kita tukar ini kepada jenis data tarikh, dan kemudian alihkan lajur ke hadapan.
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 .
Ini akan memberi anda perbezaan antara dua tarikh tersebut dari segi bilangan hari. Mari namakan lajur baharu ini Hari Sebelum Hari Ini.
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 .
Sekali lagi, kami akan menggunakan Semua Data untuk nama lajur baharu dan Semua Baris untuk operasi.
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.
Kemudian kami mengembangkan Semua Data dan mengalih keluar Nombor Akaun .
Sebaik sahaja kami mengembangkannya, kami akan mempunyai Hari Minimum Antara untuk nombor akaun.
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 .
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.
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 .
Daripada menyimpannya dalam jadual fakta, mari kita salin jadual ini.
Kami akan memanggil jadual pendua Bendera Akaun .
Mari kembali ke jadual Transaksi dan keluarkan medan Jenis Pelanggan dan Masa Pelanggan .
Kami kini mempunyai jadual fakta asal dan jadual Bendera Akaun.
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.
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 .
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.
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
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.
Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.
Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.
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.
Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.
Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.
Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.
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