Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Dalam tutorial ini, kami akan membincangkan perbezaan tentang cara pengindeksan data berfungsi dalam pangkalan data hubungan berbanding dalam Vertipaq.
Pangkalan data perhubungan menyimpan data secara baris demi baris. Sebaliknya, Vertipaq melakukannya lajur demi lajur.
Mari lihat bagaimana kedua-dua cara menyimpan dan mengindeks data ini boleh memberi kesan kepada proses pembangunan laporan anda terutamanya apabila menjalankan pertanyaan anda.
Isi kandungan
Pengindeksan Data Setiap Baris
Menyimpan data baris demi baris ialah cara tradisional menyimpan data. Walau bagaimanapun, proses ini mengambil lebih banyak masa, yang akan memberi kesan kepada prestasi pertanyaan anda.
Katakan kita mempunyai jadual yang mengandungi Jenama, Warna, Jantina, Kuantiti dan Harga Bersih.
Jika kita menyimpan segala-galanya dalam jadual ini dalam pangkalan data, maka ia akan menyimpan data dalam baris demi baris. Itulah sebabnya struktur storan data tradisional juga dipanggil sebagai stor baris.
Pertama, dalam baris yang sama, ia akan menyimpan pengepala lajur yang terdapat pada baris pertama — Jenama, Warna, Jantina, Kuantiti dan Harga Bersih. Kemudian ia bergerak ke baris seterusnya untuk menyimpan item pertama di bawah setiap lajur — A. Datum, Azure, kosong, 1 dan 103.2. Ini meneruskan baris demi baris.
Jadi bagaimana kita hendak mengira Kuantiti menggunakan kaedah pengindeksan data ini?
Pertama, ia bermula dengan baris pertama, yang mengandungi pengepala lajur. Kemudian, ia melompat ke baris seterusnya dan melangkau cebisan data yang lain sehingga ia mencapai kuantiti pertama yang dilihatnya, iaitu 1. Kemudian ia melompat dari baris ke baris, berjalan melalui semua data yang terkandung dalam setiap baris dan mengumpulkan semua kuantiti adalah dapatan.
Sebaik sahaja ia telah mengetepikan semua kuantiti dari setiap baris, itulah satu-satunya masa pengiraan selesai.
Anda mungkin boleh bayangkan betapa membosankan proses itu jika anda menyediakan laporan LuckyTemplates yang menggunakan sambungan DirectQuery kepada sumber data SQL. Dalam kes ini, perkhidmatan analisis akan menukar kod DAX ke dalam bahasa SQL, kemudian mula melalui struktur data baris demi baris.
Pengindeksan Data Setiap Lajur
Untuk mengelakkan proses panjang yang terlibat, anda mempunyai pilihan untuk menyimpan data berdasarkan lajur demi lajur melalui Vertipaq apabila anda memilih mod import.
Apabila anda menggunakan stor lajur dan bukannya stor baris, Jenama, Warna, Jantina, Kuantiti dan Harga Bersih setiap satu akan disimpan dalam struktur data yang berbeza.
Katakan kita ingin mendapatkan JUMLAH nilai dalam lajur Kuantiti. Tidak ada keperluan untuk melalui Jenama, Warna dan kepingan data lain di luar lajur Kuantiti. Dalam satu imbasan, ia membaca keseluruhan lajur Kuantiti dari atas ke bawah dan meringkaskan semua nilai.
Oleh sebab itu, pertanyaan akan dilaksanakan dengan lebih cepat berbanding dengan melakukannya dari kiri ke kanan.
Membandingkan Masa Pelaksanaan Dalam Pertanyaan Mudah
Untuk benar-benar melihat perbezaan besar antara stor baris dan stor lajur, mari lakukan beberapa pertanyaan ujian dalam kedua-dua SQL dan Vertipaq. Masa pelaksanaan harus memberitahu kita betapa cepatnya satu proses dibandingkan dengan yang lain.
Mari kita mulakan dengan pertanyaan mudah dalam SQL. Kami akan mengira JUMLAH lajur Kuantiti dalam jadual Jualan.
Seperti yang anda lihat, jumlah masa pelaksanaan ialah 2.2 saat.
Sekarang, mari pergi ke DAX Studio dan gunakan fungsi EVALUATE untuk melaksanakan pertanyaan yang sama. Kita perlu menghidupkan pemasaan pelayan dan menunggu jejak selesai.
Kami juga perlu memastikan bahawa pilihan "Kosongkan Cache kemudian Jalankan" dipilih apabila kami menjalankan pertanyaan.
Setelah pertanyaan dilaksanakan, anda akan melihat bahawa hanya memerlukan 3 milisaat untuk menyelesaikan pertanyaan yang sama yang kami lakukan dalam SQL sebelum ini.
Keputusan yang ditetapkan juga harus sepadan untuk SQL dan DAX Studio. Jika kami meletakkannya bersebelahan, anda dapat melihat bahawa kami mengembalikan nilai yang sama.
Anda boleh cuba menjalankan pertanyaan beberapa kali lagi untuk melihat sejauh mana konsisten masa pelaksanaan.
Membandingkan Masa Pelaksanaan Dalam Pertanyaan Yang Lebih Rumit
Kali ini, mari kita bandingkan masa pelaksanaan apabila kita menjalankan pertanyaan yang lebih rumit.
Katakan kita ingin mengenal pasti JUMLAH Kuantiti Jualan untuk setiap jenama. Untuk melakukan ini, kami boleh menggunakan berbanding setiap Jenama Produk. Dalam konteks yang rendah, kami juga akan mencipta jadual baharu yang dipanggil Jumlah Kuantiti di mana kami akan untuk JUMLAH Kuantiti Jualan.
Jika kami menjalankan kod ini, anda dapat melihat bahawa jumlah masa pelaksanaan ialah 7 milisaat.
Di latar belakang, kod ini sebenarnya menjalankan dua pertanyaan. Yang pertama mengambil lajur Jenama daripada jadual Produk, kemudian melaksanakan OUTER JOIN pada lajur Kunci Produk daripada lajur Jualan dan lajur Produk.
Pertanyaan kedua hanya mendapatkan semula lajur Jenama daripada jadual Produk.
Jika saya pergi ke skrin hasil, anda dapat melihat bahawa ukuran Jumlah Kuantiti telah dibahagikan berdasarkan setiap Jenama.
Sekarang mari pergi ke pelayan SQL dan tulis pertanyaan yang sama.
Kami akan menolak jadual Jualan DaxStudio ke baris seterusnya, merujuk jadual Jualan AS S. Kemudian, kami juga akan melaksanakan LEFT JOIN dalam jadual Produk DaxStudio yang dirujuk AS P, dengan Kunci Produk S sama dengan P.Kunci Produk. Kami juga akan menggunakan P.Brand dengan JUMLAH Kuantiti dan Jumlah Kuantiti dalam pernyataan SELECT . Akhir sekali, kami akan menggunakan untuk P.brand.
Setelah kami menjalankan kod ini, kami akan mendapat jadual yang mengandungi Jumlah Kuantiti yang diasingkan oleh setiap Jenama, yang merupakan perkara yang sama yang kami perolehi sebelum ini dalam Vertipaq.
Bagi jumlah masa pelaksanaan, ia kekal lebih perlahan pada 2.5 saat.
DAX Untuk LuckyTemplates: Mengoptimumkan Menggunakan Enjin Formula dalam DAX Studio
Teknik Pengoptimuman Pertanyaan DAX Dan
Prestasi Pertanyaan Pelajaran Serta Persediaan Studio DAX
Kesimpulan
Jelas sekali betapa cepatnya stor lajur melalui Vertipaq berbanding dengan stor baris dalam pangkalan data SQL. Ini menunjukkan kepentingan untuk benar-benar mengenali cara pengindeksan data berfungsi melalui platform yang berbeza.
Ia mungkin kelihatan seperti pengorbanan kecil pada mulanya jika anda masih memilih untuk pergi selama 2.5 saat yang kedai baris menjalankan pertanyaan anda berbanding dengan 7 milisaat. Tetapi kami semua menjalankan beberapa pertanyaan apabila kami membuat laporan kami dan semua masa pelaksanaan itu akan bertambah, memberi kesan kepada produktiviti dan pengalaman pengguna dalam jangka masa panjang.
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