Olap cube bekerja dengan tutorial tabel pivot. Kubus data OLAP

Olap cube bekerja dengan tutorial tabel pivot. Kubus data OLAP

Sebagai bagian dari pekerjaan ini, isu-isu berikut akan dipertimbangkan:

  • Apa itu kubus OLAP?
  • Apa yang dimaksud dengan ukuran, dimensi, hierarki?
  • Jenis operasi apa yang dapat dilakukan pada kubus OLAP?
Konsep kubus OLAP

Postulat utama OLAP adalah multidimensi dalam penyajian data. Dalam terminologi OLAP, konsep kubus, atau hypercube, digunakan untuk menggambarkan ruang data diskrit multidimensi.

Kubus adalah struktur data multidimensi tempat analis pengguna dapat menanyakan informasi. Kubus dibuat dari fakta dan dimensi.

Fakta- ini adalah data tentang objek dan peristiwa di perusahaan yang akan dianalisis. Fakta-fakta yang sejenis membentuk ukuran-ukuran. Ukuran adalah jenis nilai dalam sel kubus.

Pengukuran- ini adalah elemen data yang digunakan untuk menganalisis fakta. Kumpulan elemen tersebut membentuk atribut dimensi (misalnya, hari dalam seminggu dapat membentuk atribut dimensi waktu). Dalam tugas analisis bisnis untuk perusahaan komersial, dimensinya sering kali mencakup kategori seperti “waktu”, “penjualan”, “produk”, “pelanggan”, “karyawan”, “lokasi geografis”. Dimensi paling sering merupakan struktur hierarki, mewakili kategori logis yang dengannya pengguna dapat menganalisis data aktual. Setiap hierarki dapat memiliki satu atau lebih level. Dengan demikian, hierarki dimensi “lokasi geografis” dapat mencakup tingkatan: “negara - wilayah - kota”. Dalam hierarki waktu, kita dapat membedakan, misalnya, urutan level berikut: Sebuah dimensi dapat memiliki beberapa hierarki (setiap hierarki dalam satu dimensi harus memiliki atribut kunci yang sama pada tabel dimensi).

Sebuah kubus dapat berisi data aktual dari satu atau lebih tabel fakta dan paling sering berisi beberapa dimensi. Kubus apa pun biasanya memiliki fokus khusus untuk analisis.

Gambar 1 menunjukkan contoh kubus yang dirancang untuk menganalisis penjualan produk minyak bumi oleh perusahaan tertentu berdasarkan wilayah. Kubus ini memiliki tiga dimensi (waktu, produk dan wilayah) dan satu ukuran (volume penjualan dinyatakan dalam satuan moneter). Nilai pengukuran disimpan di sel kubus yang sesuai. Setiap sel diidentifikasi secara unik oleh sekumpulan anggota dari setiap dimensi, yang disebut tupel. Misalnya, sel yang terletak di sudut kiri bawah kubus (berisi nilai $98399) ditentukan oleh tuple [Juli 2005, Far East, Diesel]. Di sini nilai $98,399 menunjukkan volume penjualan (dalam istilah moneter) solar di Timur Jauh pada bulan Juli 2005.

Perlu juga dicatat bahwa beberapa sel tidak berisi nilai apa pun: sel ini kosong karena tabel fakta tidak berisi data untuk sel tersebut.

Beras. 1. Kubus dengan informasi penjualan produk minyak bumi di berbagai daerah

Tujuan akhir pembuatan kubus tersebut adalah untuk meminimalkan waktu pemrosesan kueri yang mengekstrak informasi yang diperlukan dari data aktual. Untuk menyelesaikan tugas ini, kubus biasanya berisi total yang telah dihitung sebelumnya yang disebut agregasi(agregasi). Itu. Kubus mencakup ruang data yang lebih besar dari yang sebenarnya - terdapat titik-titik logis dan terhitung di dalamnya. Fungsi agregasi memungkinkan Anda menghitung nilai titik dalam ruang logis berdasarkan nilai sebenarnya. Fungsi agregasi yang paling sederhana adalah SUM, MAX, MIN, COUNT. Jadi, misalnya dengan menggunakan fungsi MAX, untuk kubus yang ditunjukkan pada contoh, Anda dapat mengidentifikasi kapan puncak penjualan solar terjadi di Timur Jauh, dll.

Ciri khusus lain dari kubus multidimensi adalah sulitnya menentukan asal usulnya. Misalnya, bagaimana Anda menetapkan titik 0 untuk dimensi Produk atau Wilayah? Solusi untuk masalah ini adalah dengan memperkenalkan atribut khusus yang menggabungkan semua elemen dimensi. Atribut ini (dibuat secara otomatis) hanya berisi satu elemen - Semua. Untuk fungsi agregasi sederhana seperti penjumlahan, elemen Semua setara dengan jumlah nilai semua elemen dalam ruang sebenarnya pada dimensi tertentu.

Konsep penting dalam model data multidimensi adalah subruang, atau subkubus. Subkubus adalah bagian dari seluruh ruang kubus yang berbentuk bangun multidimensi di dalam kubus. Karena ruang multidimensi sebuah kubus bersifat diskrit dan terbatas, maka subkubus juga bersifat diskrit dan terbatas.

Operasi pada kubus OLAP

Operasi berikut dapat dilakukan pada kubus OLAP:

  • mengiris;
  • rotasi;
  • konsolidasi;
  • merinci.
Mengiris(Gambar 2) adalah kasus khusus dari subkubus. Ini adalah prosedur untuk membentuk subset dari larik data multidimensi yang sesuai dengan nilai tunggal dari satu atau lebih elemen dimensi yang tidak termasuk dalam subset ini. Misalnya, untuk mengetahui bagaimana penjualan produk minyak bumi berkembang dari waktu ke waktu hanya di wilayah tertentu, yaitu di Ural, Anda perlu memperbaiki dimensi “Produk” pada elemen “Ural” dan mengekstrak subset (subkubus) yang sesuai dari elemen tersebut. kubus.
  • Beras. 2. Irisan kubus OLAP

    Rotasi(Gambar 3) - operasi mengubah lokasi pengukuran yang disajikan dalam laporan atau pada halaman yang ditampilkan. Misalnya, operasi rotasi mungkin melibatkan penataan ulang baris dan kolom tabel. Selain itu, memutar kubus data akan memindahkan dimensi di luar tabel ke tempatnya dengan dimensi yang ada di halaman yang ditampilkan, dan sebaliknya.

    Sistem informasi perusahaan yang serius, pada umumnya, berisi aplikasi yang dirancang untuk analisis data yang kompleks, dinamikanya, trennya, dll. Oleh karena itu, manajemen puncak menjadi konsumen utama dari hasil analisis. Analisis tersebut pada akhirnya dimaksudkan untuk mendukung pengambilan keputusan. Dan untuk membuat keputusan manajemen, diperlukan informasi yang diperlukan, biasanya kuantitatif. Untuk melakukan hal ini, perlu mengumpulkan data dari semua pihak sistem Informasi perusahaan, membawanya ke format umum dan kemudian menganalisisnya. Untuk tujuan ini, Gudang Data dibuat.

    Apa itu gudang data?

    Biasanya - tempat di mana semua informasi bernilai analitis dikumpulkan. Persyaratan untuk penyimpanan tersebut sesuai dengan definisi klasik OLAP dan akan dijelaskan di bawah.

    Terkadang Gudang memiliki tujuan lain - integrasi semua data perusahaan, untuk menjaga integritas dan relevansi informasi dalam semua sistem informasi. Itu. repositori tidak hanya mengumpulkan analitis, tetapi hampir semua informasi, dan dapat menyediakannya dalam bentuk direktori kembali ke sistem lain.

    Gudang data pada umumnya berbeda dari database relasional pada umumnya. Pertama, database reguler dirancang untuk membantu pengguna melakukan pekerjaan sehari-hari, sedangkan gudang data dirancang untuk pengambilan keputusan. Misalnya, penjualan barang dan penerbitan faktur dilakukan dengan menggunakan database yang dirancang untuk pemrosesan transaksi, dan analisis dinamika penjualan selama beberapa tahun, yang memungkinkan perencanaan kerja dengan pemasok, dilakukan dengan menggunakan gudang data.

    Kedua, meskipun database tradisional dapat berubah terus-menerus seiring dengan aktivitas pengguna, gudang data relatif stabil: data di dalamnya biasanya diperbarui sesuai jadwal (misalnya, mingguan, harian, atau setiap jam, tergantung kebutuhan). Idealnya, proses pengayaan hanyalah penambahan data baru dalam jangka waktu tertentu tanpa mengubah informasi sebelumnya yang sudah ada di repositori.

    Dan ketiga, database biasa paling sering menjadi sumber data yang berakhir di gudang. Selain itu, repositori dapat diisi ulang dari sumber eksternal, seperti laporan statistik.

    Bagaimana fasilitas penyimpanan dibangun?

    DLL– konsep dasar: Tiga tahap:
    • Ekstraksi – mengekstraksi data dari sumber eksternal dalam format yang dapat dimengerti;
    • Transformasi – transformasi struktur data awal menjadi struktur yang sesuai untuk membangun sistem analitik;
    Mari tambahkan satu tahap lagi - pembersihan data ( Pembersihan) – proses menyaring data yang tidak relevan atau mengoreksi data yang salah berdasarkan metode statistik atau pakar. Agar tidak menghasilkan laporan seperti “Penjualan 20011” nantinya.

    Mari kita kembali ke analisis.

    Apa itu analisis dan mengapa diperlukan?

    Analisis adalah studi data untuk tujuan pengambilan keputusan. Sistem analitik disebut sistem pendukung keputusan ( DSS).

    Di sini penting untuk menunjukkan perbedaan antara bekerja dengan DSS dan serangkaian laporan sederhana yang diatur dan tidak diatur. Analisis dalam DSS hampir selalu bersifat interaktif dan berulang. Itu. analis menggali data, menyusun dan menyesuaikan kueri analitis, dan menerima laporan, yang strukturnya mungkin tidak diketahui sebelumnya. Kami akan kembali membahasnya secara lebih rinci di bawah ketika kami membahas bahasa kueri. MDX.

    OLAP

    Sistem pendukung keputusan biasanya memiliki sarana untuk menyediakan data agregat kepada pengguna untuk berbagai sampel dari kumpulan asli dalam bentuk yang nyaman untuk persepsi dan analisis (tabel, bagan, dll.). Pendekatan tradisional segmentasi data sumber menggunakan pemilihan dari data sumber satu atau lebih kumpulan data multidimensi (sering disebut hypercube atau metacube), yang sumbunya berisi atribut, dan selnya berisi data kuantitatif agregat. (Data tersebut juga dapat disimpan dalam tabel relasional, tetapi dalam hal ini kita berbicara tentang organisasi data yang logis, dan bukan tentang implementasi fisik penyimpanannya.) Di sepanjang setiap sumbu, atribut dapat diatur dalam bentuk hierarki, mewakili tingkat detail yang berbeda-beda. Berkat model data ini, pengguna dapat merumuskan kueri kompleks, menghasilkan laporan, dan memperoleh subkumpulan data.

    Teknologi analisis data multidimensi yang kompleks disebut OLAP (On-Line Analytical Processing). OLAP adalah komponen kunci dari data warehousing tradisional. Konsep OLAP dijelaskan pada tahun 1993 oleh Edgar Codd, seorang peneliti database terkenal dan penulis model data relasional. Pada tahun 1995, berdasarkan persyaratan yang ditetapkan oleh Codd, apa yang disebut tes FASMI (Analisis Cepat Informasi Multidimensi Bersama) dirumuskan, yang mencakup persyaratan berikut untuk aplikasi analisis multidimensi:

    • memberikan hasil analisis kepada pengguna dalam waktu yang dapat diterima (biasanya tidak lebih dari 5 detik), bahkan dengan biaya analisis yang kurang rinci;
    • kemampuan untuk melakukan karakteristik analisis logis dan statistik aplikasi ini, dan menyimpannya dalam bentuk yang dapat diakses oleh pengguna akhir;
    • akses multi-pengguna ke data dengan dukungan mekanisme penguncian yang sesuai dan sarana akses resmi;
    • representasi data konseptual multidimensi, termasuk dukungan penuh untuk hierarki dan banyak hierarki (ini adalah persyaratan utama OLAP);
    • kemampuan untuk mengakses informasi apa pun yang diperlukan, terlepas dari volume dan lokasi penyimpanannya.
    Perlu dicatat bahwa fungsionalitas OLAP dapat diimplementasikan dalam berbagai cara, dimulai dengan alat analisis data paling sederhana dalam aplikasi perkantoran dan diakhiri dengan terdistribusi sistem analitis berdasarkan produk server. Itu. OLAP bukanlah sebuah teknologi, tapi ideologi.

    Sebelum kita membahas berbagai implementasi OLAP, mari kita lihat lebih dekat apa itu kubus dari sudut pandang logis.

    Konsep multidimensi

    Kami akan menggunakannya untuk mengilustrasikan prinsip-prinsipnya basis data OLAP Data Northwind disertakan dalam kit pengiriman Microsoft SQL Server dan merupakan database khas yang menyimpan informasi tentang operasi perdagangan suatu perusahaan yang bergerak dalam penyediaan makanan grosir. Data tersebut meliputi informasi tentang pemasok, klien, daftar barang yang dipasok dan kategorinya, data pesanan dan barang pesanan, daftar karyawan perusahaan.

    Kubus

    Mari kita ambil contoh tabel Invoices1, yang berisi pesanan perusahaan. Bidang dalam tabel ini adalah sebagai berikut:
    • Tanggal Pemesanan
    • Negara
    • Kota
    • Nama pelanggan
    • Perusahaan pengiriman
    • Nama Produk
    • Kuantitas produk
    • Jumlah pesanan
    Data agregat apa yang dapat kita peroleh dari tampilan ini? Biasanya ini adalah jawaban atas pertanyaan seperti:
    • Berapa nilai total pesanan yang dilakukan oleh pelanggan dari negara tertentu?
    • Berapa nilai total pesanan yang dilakukan oleh pelanggan di negara tertentu dan dikirimkan oleh perusahaan tertentu?
    • Berapa nilai total pesanan yang dilakukan oleh pelanggan di negara tertentu pada tahun tertentu dan dikirimkan oleh perusahaan tertentu?
    Semua data ini dapat diperoleh dari tabel ini menggunakan kueri SQL yang cukup jelas dengan pengelompokan.

    Hasil dari kueri ini akan selalu berupa kolom angka dan daftar atribut yang mendeskripsikannya (misalnya, negara) - ini adalah kumpulan data satu dimensi atau, dalam bahasa matematika, vektor.

    Bayangkan kita perlu memperoleh informasi tentang total biaya pesanan dari semua negara dan distribusinya di antara perusahaan pengiriman - kita akan mendapatkan tabel (matriks) angka, di mana perusahaan pengiriman akan dicantumkan di kolom judul, negara di baris judul, dan di dalam sel akan ada jumlah pesanan. Ini - array dua dimensi data. Kumpulan data ini disebut tabel pivot ( tabel pivot) atau tab silang.

    Jika kita ingin mendapatkan data yang sama, tetapi juga berdasarkan tahun, maka akan muncul perubahan lain, yaitu. kumpulan data akan menjadi tiga dimensi (tensor orde ke-3 bersyarat atau “kubus” 3 dimensi).

    Jelasnya, jumlah dimensi maksimum adalah jumlah semua atribut (Tanggal, Negara, Pelanggan, dll.) yang menggambarkan data agregat kami (jumlah pesanan, jumlah produk, dll.).

    Inilah bagaimana kita sampai pada konsep multidimensi dan perwujudannya - kubus multidimensi. Kami akan menyebut tabel seperti itu “ tabel fakta" Dimensi atau Sumbu Kubus ( ukuran) adalah atribut yang koordinatnya dinyatakan oleh nilai individual dari atribut tersebut yang ada dalam tabel fakta. Itu. misalnya, jika informasi tentang pesanan disimpan dalam sistem dari tahun 2003 hingga 2010, maka sumbu tahun ini akan terdiri dari 8 titik yang sesuai. Jika pesanan datang dari tiga negara, maka sumbu negara akan berisi 3 titik, dst. Terlepas dari berapa banyak negara yang disertakan dalam direktori Negara. Titik-titik pada suatu sumbu disebut “anggotanya” ( Anggota).

    Dalam hal ini, data agregat itu sendiri akan disebut “ukuran” ( Ukuran). Untuk menghindari kebingungan dengan "dimensi", yang terakhir ini lebih disukai disebut "sumbu". Serangkaian ukuran membentuk sumbu "Ukuran" lainnya ( Tindakan). Jumlah anggota (poin) sama banyaknya dengan ukuran (kolom gabungan) dalam tabel fakta.

    Anggota dimensi atau sumbu dapat digabungkan oleh satu atau lebih hierarki ( hirarki). Mari kita jelaskan apa itu hierarki dengan sebuah contoh: kota-kota dari tatanan dapat disatukan menjadi distrik, distrik menjadi wilayah, wilayah suatu negara, negara menjadi benua atau entitas lainnya. Itu. ada struktur hierarki - benua- negara-wilayah-kabupaten-kota– 5 tingkat ( Tingkat). Untuk suatu wilayah, data dikumpulkan untuk seluruh kota yang termasuk di dalamnya. Untuk wilayah di semua distrik yang berisi semua kota, dll. Mengapa kita memerlukan banyak hierarki? Misalnya, pada sumbu tanggal pesanan kita mungkin ingin mengelompokkan titik (yaitu hari) ke dalam hierarki Tahun-Bulan-Hari atau oleh Tahun-Minggu-Hari: dalam kedua kasus ada tiga level. Jelas sekali, hari kelompok Minggu dan Bulan berbeda. Ada juga hierarki, jumlah levelnya tidak deterministik dan bergantung pada data. Misalnya folder di disk komputer.

    Agregasi data dapat terjadi menggunakan beberapa fungsi standar: jumlah, minimum, maksimum, rata-rata, hitungan.

    MDX

    Mari beralih ke bahasa kueri dalam data multidimensi.
    Bahasa SQL awalnya dirancang bukan untuk pemrogram, tetapi untuk analis (dan karena itu memiliki sintaksis yang mirip dengan bahasa alami). Namun seiring berjalannya waktu, hal ini menjadi semakin rumit dan sekarang hanya sedikit analis yang mengetahui cara menggunakannya dengan baik, jika memang ada. Ini telah menjadi alat bagi programmer. Bahasa kueri MDX, yang dikabarkan telah dikembangkan oleh mantan rekan senegaranya Mosha (atau Mosha) Posumansky di belantara Microsoft, pada awalnya juga dimaksudkan untuk ditujukan kepada para analis, tetapi konsep dan sintaksisnya (yang secara samar-samar menyerupai SQL, dan sepenuhnya dalam sia-sia, yaitu karena hanya membingungkan), bahkan lebih rumit dari SQL. Namun dasar-dasarnya masih mudah dipahami.

    Kami akan melihatnya secara detail karena ini adalah satu-satunya bahasa yang telah menerima status standar dalam kerangka standar protokol XMLA umum, dan kedua karena ada implementasi open source dalam bentuk proyek Mondrian dari perusahaan. pentaho. Sistem analisis OLAP lainnya (misalnya, Oracle OLAP Option) biasanya menggunakan ekstensi sintaksisnya sendiri bahasa SQL, namun, mereka menyatakan dukungan untuk MDX.

    Bekerja dengan kumpulan data analitis hanya berarti membacanya dan tidak berarti menulisnya. Itu. MDX tidak memiliki klausa untuk mengubah data, tetapi hanya satu klausa pemilihan - pilih.

    Di OLAP Anda dapat membuat kubus multidimensi irisan– yaitu ketika data difilter sepanjang satu atau lebih sumbu, atau proyeksi– ketika kubus “runtuh” sepanjang satu sumbu atau lebih, mengumpulkan data. Misalnya, contoh pertama kita mengenai jumlah pesanan dari negara adalah proyeksi kubus ke sumbu Negara. Kueri MDX untuk kasus ini akan terlihat seperti ini:

    Pilih ...Anak-anak di baris dari
    Ada apa disini?

    Memilihkata kunci dan dimasukkan dalam sintaksis semata-mata untuk kecantikan.
    adalah nama sumbunya. Semua nama diri di MDX ditulis dalam tanda kurung siku.
    adalah nama hierarki. Dalam kasus kami, ini adalah hierarki Negara-Kota
    – ini adalah nama anggota sumbu pada tingkat pertama hierarki (yaitu negara) Semua – ini adalah anggota meta yang menyatukan semua anggota sumbu. Ada istilah meta di setiap sumbu. Misalnya, pada sumbu tahun ada “Semua tahun”, dll.
    Anak-anak adalah fungsi anggota. Setiap anggota memiliki beberapa fungsi yang tersedia. Seperti Orang Tua. Level, Hirarki, masing-masing mengembalikan leluhur, level dalam hierarki, dan hierarki itu sendiri yang menjadi milik anggota dalam kasus ini. Anak-anak - Mengembalikan satu set anggota anak dari anggota ini. Itu. dalam kasus kami – negara.
    di baris– Menunjukkan cara mengatur data ini dalam tabel yang dihasilkan. Dalam hal ini - di header baris. Kemungkinan nilai di sini: pada kolom, pada halaman, pada paragraf, dll. Dimungkinkan juga untuk menunjukkan berdasarkan indeks, mulai dari 0.
    dari– ini adalah indikasi kubus tempat pemilihan dilakukan.

    Bagaimana jika kita tidak membutuhkan semua negara, tetapi hanya beberapa negara tertentu? Untuk melakukan hal ini, kita dapat secara eksplisit menentukan negara yang kita perlukan dalam permintaan, daripada memilih semuanya menggunakan fungsi Anak.

    Pilih ( ..., ... ) pada baris dari
    Kurung kurawal dalam hal ini adalah deklarasi himpunan ( Mengatur). Himpunan adalah daftar, pencacahan anggota dari satu sumbu.

    Sekarang mari kita tulis kueri untuk contoh kedua – keluaran dalam konteks petugas pengantaran:

    Pilih ...Anak-anak di baris .Anggota di kolom dari
    Ditambahkan di sini:
    – sumbu;
    .Anggota– fungsi sumbu yang mengembalikan semua suku di dalamnya. Hierarki dan level memiliki fungsi yang sama. Karena Hanya ada satu hierarki pada sumbu ini, maka indikasinya dapat dihilangkan, karena level dan hierarkinya juga sama, lalu Anda bisa menampilkan semua anggota dalam satu daftar.

    Saya pikir sudah jelas bagaimana kita dapat melanjutkan ini dengan contoh ketiga kita dengan detail berdasarkan tahun. Tapi sebaiknya kita tidak menelusuri berdasarkan tahun, tapi memfilter – yaitu. membangun sepotong Untuk melakukan ini, kami akan menulis kueri berikut:

    Pilih ..Anak-anak di baris .Anggota di kolom dari mana (.)
    Dimana penyaringannya disini?

    Di mana– kata kunci
    adalah salah satu anggota hierarki . Nama lengkap dengan mempertimbangkan semua persyaratannya akan menjadi seperti ini: .. , tapi karena Karena nama anggota ini unik di dalam sumbu, semua klarifikasi perantara atas nama tersebut dapat dihilangkan.

    Mengapa istilah tanggal ada di dalam tanda kurung? Tanda kurung adalah tupel ( tupel). Tuple adalah satu atau lebih koordinat bermacam-macam sumbu Misalnya, untuk memfilter sepanjang dua sumbu sekaligus tanda kurung kami akan mencantumkan dua anggota dari berbeda pengukuran dipisahkan dengan koma. Artinya, tupel mendefinisikan “irisan” kubus (atau “penyaringan”, jika terminologi tersebut lebih dekat).

    Tuple digunakan untuk lebih dari sekedar pemfilteran. Tupel juga bisa berada di header baris/kolom/halaman, dll.

    Hal ini diperlukan, misalnya, untuk menampilkan hasil query tiga dimensi dalam tabel dua dimensi.

    Pilih crossjoin(...Children, ..Children) pada baris .Members pada kolom dari mana (.)
    Bergabung silang adalah sebuah fungsi. Ia mengembalikan satu set tupel (ya, satu set dapat berisi tupel!) yang dihasilkan dari produk Cartesian dari dua set. Itu. kumpulan yang dihasilkan akan berisi semua kemungkinan kombinasi Negara dan Tahun. Header baris akan berisi sepasang nilai: Negara-Tahun.

    Pertanyaannya, dimanakah indikasi karakteristik numerik apa yang harus ditampilkan? Dalam hal ini, ukuran default yang ditentukan untuk kubus ini digunakan, yaitu. Jumlah pesanan. Jika kita ingin memperoleh ukuran lain, maka kita ingat bahwa ukuran adalah anggota suatu dimensi Tindakan. Dan kami bertindak dengan cara yang persis sama seperti sumbu lainnya. Itu. memfilter kueri berdasarkan salah satu ukuran akan menampilkan ukuran ini dengan tepat di dalam sel.

    Pertanyaan: Apa perbedaan antara memfilter di mana dan memfilter dengan menentukan anggota sumbu di baris. Jawaban: praktis tidak ada. Sederhananya di mana irisan diindikasikan untuk sumbu-sumbu yang tidak berpartisipasi dalam pembentukan judul. Itu. sumbu yang sama tidak bisa hadir pada waktu yang sama di baris, dan di Di mana.

    Anggota yang Dihitung

    Untuk lebih lanjut pertanyaan yang kompleks Anda dapat mendeklarasikan anggota yang dihitung. Anggota sumbu atribut dan ukuran. Itu. Anda dapat mendeklarasikan, misalnya, ukuran baru yang akan menampilkan kontribusi masing-masing negara terhadap jumlah total pesanan:

    Dengan anggota. sebagai '.CurrentMember / ..', FORMAT_STRING='0.00%' pilih ...Anak-anak pada baris dari mana .
    Penghitungan terjadi dalam konteks sel yang semua atribut koordinatnya diketahui. Koordinat (anggota) yang sesuai dapat diperoleh dengan fungsi CurrentMember untuk masing-masing sumbu kubus. Di sini kita harus memahami ungkapan itu .Anggota Saat Ini/..’ tidak membagi satu suku dengan suku lainnya, melainkan membagi data agregat yang relevan irisan kubus! Itu. potongan untuk wilayah saat ini akan dibagi menjadi potongan untuk semua wilayah, mis. nilai total semua pesanan. FORMAT_STRING – mengatur format untuk menampilkan nilai, mis. %.

    Contoh lain dari anggota terhitung, tetapi pada sumbu tahun:

    Dengan anggota. sebagai '. - .'
    Jelasnya, laporan tersebut tidak akan memuat satuan, melainkan perbedaan dari bagian-bagian yang bersangkutan, yaitu. perbedaan jumlah pesanan dalam dua tahun ini.

    Tampilan di ROLAP

    Sistem OLAP entah bagaimana didasarkan pada beberapa jenis penyimpanan data dan sistem organisasi. Kapan yang sedang kita bicarakan tentang RDBMS, lalu mereka berbicara tentang ROLAP (kita tinggalkan MOLAP dan HOLAP saja belajar mandiri). ROLAP – OLAP pada database relasional, mis. digambarkan dalam bentuk tabel dua dimensi biasa. Sistem ROLAP mengubah kueri MDX menjadi SQL. Masalah komputasi utama untuk database adalah agregasi yang cepat. Untuk mengumpulkan lebih cepat, data dalam database biasanya didenormalisasi secara besar-besaran, mis. tidak disimpan dengan sangat efisien dalam hal penggunaan ruang disk dan pemantauan integritas basis data. Selain itu, tabel tersebut juga berisi tabel tambahan yang menyimpan sebagian data agregat. Oleh karena itu, untuk OLAP, skema database terpisah biasanya dibuat, yang hanya mereplikasi sebagian struktur database transaksional asli dalam bentuk direktori.

    Navigasi

    Banyak sistem OLAP menawarkan alat navigasi interaktif untuk kueri yang sudah dibuat (dan data yang dipilih). Dalam hal ini, apa yang disebut “pengeboran” atau “pengeboran” digunakan. Terjemahan yang lebih tepat ke dalam bahasa Rusia adalah kata “mendalam”. Tapi ini masalah selera, di beberapa lingkungan kata “pengeboran” masih melekat.

    Mengebor– ini adalah perincian laporan dengan mengurangi tingkat agregasi data, dikombinasikan dengan pemfilteran sepanjang beberapa sumbu lainnya (atau beberapa sumbu). Ada beberapa jenis pengeboran:

    • menelusuri– memfilter sepanjang salah satu sumbu sumber laporan dengan tampilan informasi rinci tentang keturunan dalam hierarki anggota pemfilteran yang dipilih. Misalnya, jika terdapat laporan distribusi pesanan berdasarkan Negara dan Tahun, maka mengklik tahun 2007 akan menampilkan laporan yang dikelompokkan berdasarkan Negara dan bulan yang sama pada tahun 2007.
    • sisi bor– memfilter di bawah satu atau lebih sumbu yang dipilih dan menghapus agregasi di sepanjang satu atau lebih sumbu lainnya. Misalnya, jika ada laporan distribusi pesanan yang dikelompokkan berdasarkan Negara dan Tahun, maka mengklik tahun 2007 akan menampilkan laporan lain yang dikelompokkan, misalnya berdasarkan Negara dan Pemasok dengan filter pada tahun 2007.
    • palung bor– menghapus agregasi di sepanjang semua sumbu dan memfilter secara simultan di sepanjang sumbu tersebut – memungkinkan Anda melihat data sumber dari tabel fakta yang menjadi sumber nilai dalam laporan. Itu. Saat Anda mengklik nilai sel, laporan ditampilkan dengan semua pesanan yang memberikan jumlah ini. Semacam pengeboran instan ke “kedalaman” kubus.
    Itu saja. Sekarang, jika Anda telah memutuskan untuk mengabdikan diri pada Business Intelligence dan OLAP, inilah saatnya untuk mulai membaca literatur yang serius.

    Tag: Tambahkan tag

    Saya sudah cukup lama menjadi penduduk Habr, namun saya belum pernah membaca artikel tentang topik kubus multidimensi, OLAP dan MDX, meskipun topiknya sangat menarik dan semakin relevan setiap hari.
    Bukan rahasia lagi bahwa dalam jangka waktu singkat dalam pengembangan database, akuntansi elektronik Dan sistem daring, banyak data yang telah terakumulasi. Kini, analisis lengkap terhadap arsip, dan mungkin upaya untuk memprediksi situasi model serupa di masa depan, juga menarik.
    Di sisi lain, perusahaan besar, bahkan dalam jangka waktu beberapa tahun, bulan, atau bahkan minggu, dapat mengumpulkan data dalam jumlah besar sehingga bahkan analisis dasarnya memerlukan pendekatan yang luar biasa dan persyaratan perangkat keras yang ketat. Ini bisa berupa sistem pemrosesan transaksi perbankan, agen pertukaran, operator telepon dll.
    Saya rasa semua orang mengetahui 2 pendekatan berbeda dalam desain database: OLTP dan OLAP. Pendekatan pertama (Pemrosesan Transaksi Online - pemrosesan transaksi waktu nyata) dirancang untuk pengumpulan data yang efisien secara waktu nyata, sedangkan pendekatan kedua (Pemrosesan Analitik Online - pemrosesan analitis waktu nyata) ditujukan secara khusus untuk pengambilan sampel dan pemrosesan data dengan cara yang paling efisien. jalan.

    Mari kita lihat kemampuan utama kubus OLAP modern dan masalah apa yang dipecahkannya (Layanan Analisis 2005/2008 diambil sebagai dasar):

    • akses cepat ke data
    • praagregasi
    • hirarki
    • bekerja dengan waktu
    • bahasa akses data multidimensi
    • KPI (Indikator Kinerja Utama)
    • penambangan tanggal
    • cache multi-level
    • dukungan multibahasa
    Jadi, mari kita lihat kemampuan kubus OLAP lebih detail.

    Sedikit lebih banyak tentang kemungkinannya

    Akses cepat ke data
    Sebenarnya, akses cepat ke data, berapapun ukuran arraynya, adalah dasar dari sistem OLAP. Karena ini adalah fokus utama, gudang data biasanya dibangun berdasarkan prinsip yang berbeda dari database relasional.
    Di sini, waktu untuk mengambil data sederhana diukur dalam sepersekian detik, dan kueri yang melebihi beberapa detik kemungkinan besar memerlukan pengoptimalan.

    Praagregasi
    Selain mengambil data yang ada dengan cepat, ini juga memberikan kemampuan untuk melakukan praagregasi nilai-nilai “yang paling mungkin digunakan”. Misalnya, jika kita memiliki catatan harian penjualan suatu produk tertentu, sistem Mungkin Kami juga dapat melakukan praagregasi jumlah penjualan bulanan dan triwulanan, artinya jika kami meminta data bulanan atau triwulanan, sistem akan langsung memberi kami hasilnya. Mengapa pra-agregasi tidak selalu terjadi - karena secara teori dimungkinkan adanya kombinasi barang/waktu/dll. jumlahnya bisa sangat besar, artinya Anda harus memiliki aturan yang jelas tentang elemen mana yang akan dibangun dan elemen mana yang tidak akan dibuat. Secara umum, topik mempertimbangkan aturan-aturan ini dan desain agregasi sebenarnya cukup luas dan memerlukan artikel terpisah.

    Hirarki
    Wajar jika ketika menganalisis data dan membuat laporan akhir, perlu diperhatikan fakta bahwa bulan terdiri dari hari, dan bulan itu sendiri membentuk empat bagian, dan kota termasuk dalam wilayah, yang pada gilirannya merupakan bagian dari wilayah atau negara. . Kabar baiknya adalah kubus OLAP pada awalnya melihat data dalam bentuk hierarki dan hubungan dengan parameter lain dari entitas yang sama, sehingga membangun dan menggunakan hierarki dalam kubus sangatlah sederhana.

    Bekerja dengan waktu
    Karena analisis data sebagian besar terjadi di area waktu, waktu menjadi sangat penting dalam sistem OLAP, yang berarti bahwa hanya dengan menentukan sistem di mana kita punya waktu di sini, di masa mendatang Anda dapat dengan mudah menggunakan fungsi seperti Year To Date, Month To Date (periode dari awal tahun/bulan sampai dengan tanggal saat ini), Periode Paralel (pada hari atau bulan yang sama, tetapi tahun lalu), dll.

    Bahasa Akses Data Multidimensi
    MDX(Ekspresi Multidimensi) - bahasa kueri untuk akses sederhana dan efisien ke struktur data multidimensi. Dan itu menjelaskan semuanya – akan ada beberapa contoh di bawah ini.

    Indikator Kinerja Utama (KPI)
    Indikator Kinerja Utama adalah sistem pengukuran keuangan dan non-keuangan yang membantu suatu organisasi menentukan pencapaian tujuan strategis. Indikator kinerja utama dapat didefinisikan secara sederhana dalam sistem OLAP dan digunakan dalam laporan.

    Tanggal penambangan
    Penambangan Data(Data Mining) - pada dasarnya, mengidentifikasi pola atau hubungan tersembunyi antar variabel dalam data dalam jumlah besar.
    Istilah bahasa Inggris “Data Mining” tidak memiliki terjemahan yang jelas ke dalam bahasa Rusia (penambangan data, penambangan data, penambangan informasi, ekstraksi data/informasi) oleh karena itu dalam banyak kasus istilah ini digunakan dalam bahasa aslinya. Terjemahan tidak langsung yang paling sukses adalah istilah “data mining” (DMA). Namun, ini adalah topik tersendiri yang tidak kalah menarik untuk dipertimbangkan.

    Cache bertingkat
    Sebenarnya untuk memastikan yang maksimal kecepatan tinggi akses ke data, selain struktur data yang cerdas dan pra-agregasi, sistem OLAP mendukung caching multi-level. Selain cache pertanyaan sederhana, bagian data yang dikurangi dari penyimpanan, nilai gabungan, dan nilai terhitung juga di-cache. Jadi, semakin lama Anda bekerja dengan kubus OLAP, semakin cepat kubus tersebut mulai bekerja. Ada juga konsep "pemanasan cache" - sebuah operasi yang mempersiapkan sistem OLAP untuk bekerja dengan laporan tertentu, kueri, atau gabungan semuanya.

    Dukungan multibahasa
    Ya, ya, ya. Minimal, Analysis Services 2005/2008 (meskipun Edisi Perusahaan) mendukung multibahasa. Cukup dengan menyediakan terjemahan parameter string data Anda, dan klien yang menentukan bahasanya akan menerima data yang dilokalkan.

    Kubus multidimensi

    Jadi apa sebenarnya kubus multidimensi ini?
    Bayangkan sebuah ruang 3 dimensi yang sumbunya adalah Waktu, Produk, dan Pelanggan.
    Titik pada ruang tersebut akan menunjukkan fakta bahwa salah satu pembeli membeli produk tertentu pada bulan tertentu.

    Faktanya, bidang (atau himpunan semua titik tersebut) akan menjadi kubus, dan karenanya, Waktu, Produk, dan Pelanggan akan menjadi dimensinya.
    Sedikit lebih sulit untuk membayangkan (dan menggambar) kubus empat dimensi atau lebih, tetapi esensinya tidak berubah, dan yang paling penting, untuk sistem OLAP, tidak masalah berapa banyak dimensi yang akan Anda kerjakan (dalam batas wajar). batasnya, tentu saja).

    Sedikit MDX

    Jadi, apa kelebihan MDX? Kemungkinan besar, kita perlu menjelaskan bukan bagaimana kita ingin memilih data, tapi Apa sebenarnya kita inginkan.
    Misalnya,
    MEMILIH
    ( . ) PADA KOLOM,
    ( ., . ) PADA BARIS
    DARI
    DI MANA (., .)

    Artinya saya ingin jumlah iPhone yang terjual pada bulan Juni dan Juli di Mozambik.
    Sekaligus saya uraikan yang ini adalah data yang saya inginkan dan Bagaimana Saya ingin melihatnya di laporan.
    Cantik, bukan?

    Ini sedikit lebih rumit:

    DENGAN Rata-rata ANGGOTA Pembelanjaan SEBAGAI
    . / .
    MEMILIH
    (Pengeluaran Rata-Rata ) PADA KOLOM,
    ( .., .. ) PADA BARIS
    DARI
    DI MANA(.)

    * Kode sumber ini disorot dengan Penyorot Kode Sumber.

    Faktanya, pertama-tama kita menentukan rumus untuk menghitung “ukuran pembelian rata-rata” dan mencoba membandingkan siapa (jenis kelamin apa) yang menghabiskan lebih banyak uang dalam satu kunjungan ke toko Apple.

    Bahasanya sendiri sangat menarik untuk dipelajari dan digunakan, dan mungkin perlu banyak didiskusikan.

    Kesimpulan

    Faktanya, artikel ini hanya membahas sedikit sekali konsep dasar; saya menyebutnya sebagai “makanan pembuka” - sebuah kesempatan untuk menarik minat komunitas Habra pada topik ini dan mengembangkannya lebih jauh. Mengenai pengembangan, ada ladang besar yang belum dibajak di sini, dan saya akan dengan senang hati menjawab semua pertanyaan Anda.

    P.S. Ini adalah postingan pertama saya tentang OLAP dan publikasi pertama di Habré - Saya akan sangat berterima kasih atas masukan yang membangun.
    Memperbarui: Saya mentransfernya ke SQL, saya akan mentransfernya ke OLAP segera setelah mereka mengizinkan saya membuat blog baru.

    Tag: Tambahkan tag

    OLAP (Pemrosesan Analitik On-Line) adalah metode pemrosesan data analitik elektronik yang mewakili pengorganisasian data ke dalam kategori hierarki menggunakan total yang telah dihitung sebelumnya. Data OLAP disusun secara hierarki dan disimpan dalam bentuk kubus, bukan tabel. Kubus OLAP adalah kumpulan data multidimensi dengan sumbu berisi parameter dan sel berisi data agregat yang bergantung pada parameter. Kubus dirancang untuk analisis multidimensi yang kompleks terhadap data bervolume besar karena kubus hanya memberikan hasil ringkasan untuk pelaporan, bukan sejumlah besar catatan individual.

    Konsep OLAP dijelaskan pada tahun 1993 oleh peneliti database terkenal dan penulis model data relasional E.F. Codd. Saat ini, dukungan OLAP diterapkan di banyak DBMS dan alat lainnya.

    Kubus OLAP berisi dua jenis data:

    · nilai total, nilai yang ingin Anda rangkum, wakili bidang data terhitung;

    · Informasi deskriptif mewakili pengukuran atau ukuran. Informasi deskriptif biasanya disusun ke dalam tingkat detail. Misalnya: “Tahun”, “Kuartal”, “Bulan” dan “Hari” dalam dimensi “Waktu”. Mengorganisasikan bidang ke dalam tingkat detail memungkinkan pengguna pelaporan memilih tingkat detail yang ingin mereka lihat, dimulai dengan data ringkasan tingkat tinggi lalu menelusuri hingga tampilan yang lebih detail, dan sebaliknya.

    Alat Microsoft Query juga memungkinkan Anda membuat kubus OLAP dari kueri yang memuat data database relasional, seperti Akses Microsoft, dalam hal ini tabel linier diubah menjadi hierarki struktural (kubus).

    Create OLAP Cube Wizard adalah alat Kueri Microsoft bawaan. Untuk membuat kubus OLAP berdasarkan database relasional, Anda harus menyelesaikan langkah-langkah berikut sebelum menjalankan wizard.

    1. Menentukan sumber data (lihat Gambar 6.1).

    2.C menggunakan Microsoft Kueri untuk membuat kueri, termasuk di dalamnya hanya bidang yang akan berupa bidang data atau bidang dimensi kubus OLAP; jika bidang dalam kubus digunakan lebih dari satu kali, maka bidang tersebut harus disertakan dalam kueri sebanyak yang diperlukan kali.

    3. Pada langkah terakhir panduan pembuatan kueri, atur tombol ke item Membuat kubus OLAP dari dari permintaan ini (lihat Gambar 6.2) atau setelah request dibuat menggunakan menu Query secara langsung Mengajukan pilih tim Membuat kubus OLAP , setelah itu Create OLAP Cube Wizard akan diluncurkan.

    Wizard Buat Kubus OLAP terdiri dari tiga langkah.

    Pada langkah pertama wizard (lihat Gambar 6.6) itu bidang data– bidang kalkulasi yang nilai totalnya harus ditentukan.



    Beras. 6.6. Mendefinisikan Bidang Data

    Wizard menempatkan bidang kalkulasi yang diharapkan (biasanya bidang numerik) di bagian atas daftar, memeriksanya, dan menentukan fungsi yang dihasilkan dari bidang ini, biasanya - Jumlah. Saat memilih bidang data, setidaknya satu bidang harus dipilih sebagai bidang terhitung dan setidaknya satu bidang harus dibiarkan tidak dicentang untuk menentukan dimensi.

    Saat membuat kubus OLAP, Anda dapat menggunakan empat fungsi ringkasan - Jumlah, Nomor(jumlah nilai), Minimum, Maksimum untuk bidang numerik dan satu fungsi Nomor untuk semua bidang lainnya. Jika Anda ingin menggunakan beberapa fungsi ringkasan berbeda dari bidang yang sama, bidang tersebut harus disertakan dalam kueri sebanyak yang diperlukan.

    Nama bidang terhitung dapat diubah dalam kolom Nama bidang data.

    Pada langkah kedua wizard, data deskriptif dan dimensinya ditentukan (lihat Gambar 6.7). Untuk memilih bidang pengukuran, Anda harus dari daftar Bidang sumber seret bidang dimensi yang diinginkan tingkat atas ke daftar Pengukuran ke area yang ditandai sebagai Seret bidang ke sini untuk membuat dimensi. Untuk membuat kubus OLAP, Anda harus menentukan setidaknya satu dimensi. Pada langkah wizard yang sama, Anda dapat menggunakan menu konteks untuk mengubah nama bidang dimensi atau level.

    Beras. 6.7. Mendefinisikan Bidang Dimensi

    Bidang yang berisi data terisolasi atau terpisah dan tidak termasuk dalam hierarki dapat didefinisikan sebagai dimensi tingkat tunggal. Namun, kubus akan lebih efisien jika beberapa bidang disusun dalam beberapa tingkatan. Untuk membuat level sebagai bagian dari dimensi, seret bidang dari daftar Bidang sumber pada bidang yang merupakan dimensi atau tingkat. Bidang yang berisi informasi lebih rinci harus ditempatkan di tingkat yang lebih rendah. Misalnya pada Gambar 6.7 bidang Judul pekerjaan adalah tingkat lapangan Nama departemen.

    Untuk memindahkan bidang ke tingkat yang lebih rendah atau lebih tinggi, Anda perlu menyeretnya ke bidang yang lebih rendah atau lebih tinggi dalam dimensi. Untuk menampilkan atau menyembunyikan level, gunakan tombol atau masing-masing.

    Jika Anda menggunakan bidang tanggal atau waktu sebagai dimensi tingkat atas, OLAP Cube Wizard secara otomatis membuat tingkat untuk dimensi tersebut. Pengguna kemudian dapat memilih level mana yang akan muncul di laporan. Misalnya, Anda dapat memilih minggu, kuartal, tahun, atau bulan (lihat Gambar 6.7).

    Ingatlah bahwa wizard secara otomatis membuat tingkat untuk bidang tanggal dan waktu hanya ketika Anda membuat dimensi tingkat atas; Saat menambahkan bidang ini sebagai sublevel dimensi, level otomatis tidak dibuat.

    Pada langkah ketiga wizard, jenis kubus yang dibuat oleh wizard ditentukan, dengan tiga opsi yang memungkinkan (lihat Gambar 6.8).

    Beras. 6.8. Memilih jenis kubus yang akan dibuat pada langkah ketiga wizard

    · Dua opsi pertama melibatkan pembuatan kubus setiap kali Anda membuka laporan (jika kubus dilihat dari Excel, maka kita berbicara tentang tabel pivot). Dalam hal ini, file permintaan dan file definisi kubus *.oqy, yang berisi instruksi untuk membuat kubus. File *.oqy dapat dibuka program Unggul untuk membuat laporan berdasarkan kubus, dan jika Anda perlu membuat perubahan pada kubus, Anda dapat membuka Kueri untuk menjalankan kembali Panduan Membuat Kubus.

    Secara default, file definisi kubus, seperti file kueri, disimpan di folder profil pengguna di Application Data\Microsoft\Que-ries. Saat menyimpan file *.oqy di folder standar, nama file definisi kubus ditampilkan di tab kubus OLAP saat membuka kueri baru di Microsoft Query atau saat memilih perintah Buat permintaan(menu Data, submenu Mengimpor data eksternal) di Microsoft Excel.

    · Jika memilih opsi ketiga jenis kubus Menyimpan file kubus yang berisi semua data untuk kubus, semua data untuk kubus diambil dan file kubus dengan ekstensi * dibuat di lokasi yang ditentukan pengguna .anak, di mana data ini disimpan. Penciptaan berkas ini tidak langsung terjadi saat tombol ditekan Siap; file dibuat saat Anda menyimpan definisi kubus ke file atau saat Anda membuat laporan berdasarkan kubus.

    Pilihan jenis kubus ditentukan oleh beberapa faktor: jumlah data yang dikandung kubus; jenis dan kompleksitas laporan yang akan dibuat berdasarkan kubus; sumber daya sistem (memori dan ruang disk), dll.

    Berkas terpisah cube *.cub harus dibuat dalam kasus berikut:

    1) untuk laporan interaktif yang sering diubah, asalkan jumlahnya mencukupi ruang disk;

    2) ketika Anda perlu menyimpan kubus di server jaringan untuk menyediakan akses ke pengguna lain saat membuat laporan. File kubus dapat menyediakan data spesifik dari database sumber sambil menghilangkan data sensitif atau sensitif yang ingin Anda cegah untuk diakses oleh pengguna lain.

    04/07/2011 Derek Datang

    Jika Anda pernah bekerja di bidang apa pun yang berhubungan dengan teknologi, Anda mungkin pernah mendengar istilah "kubus"; namun sebagian besar administrator reguler dan pengembang basis data tidak bekerja dengan objek ini. Cubes menyediakan arsitektur data yang kuat untuk menggabungkan informasi multidimensi dengan cepat. Jika organisasi Anda perlu menganalisis data dalam jumlah besar, maka kubus adalah solusi ideal.

    Apa itu kubus?

    Basis data relasional dirancang untuk menangani ribuan transaksi bersamaan dengan tetap menjaga kinerja dan integritas data. Secara desain, database relasional tidak efisien dalam mengumpulkan dan mencari data dalam jumlah besar. Untuk menggabungkan dan mengembalikan data dalam jumlah besar, database relasional harus menerima kueri berbasis kumpulan, yang informasinya akan dikumpulkan dan diagregasi dengan cepat. Kueri relasional seperti itu sangat mahal karena bergantung pada banyak gabungan dan fungsi agregat; Kueri relasional agregat sangat tidak efektif ketika bekerja dengan data dalam jumlah besar.

    Kubus adalah entitas multidimensi yang dirancang untuk mengatasi kekurangan dalam database relasional. Dengan menggunakan kubus, Anda dapat menyediakan struktur data kepada pengguna yang memberikan respons cepat terhadap kueri dengan volume agregasi besar. Kubus melakukan “keajaiban agregasi” ini dengan terlebih dahulu menggabungkan data (dimensi) di beberapa dimensi. Pra-agregasi kubus biasanya dilakukan selama pemrosesan. Saat Anda memproses kubus, Anda menghasilkan agregasi data yang telah dihitung sebelumnya yang disimpan dalam bentuk biner di disk.

    Cube - struktur data pusat dalam sistem analisis data operasional layanan analitik OLAP SQLServer(SSAS). Kubus biasanya dibangun dari database relasional dasar yang disebut model dimensi, namun merupakan entitas teknis yang terpisah. Logikanya, kubus adalah gudang data yang terdiri dari dimensi (dimensi) dan pengukuran (measures). Dimensi berisi fitur deskriptif dan hierarki, sedangkan dimensi adalah fakta yang Anda uraikan dalam dimensi. Dimensi dikelompokkan menjadi kombinasi logis yang disebut kelompok dimensi. Anda menghubungkan dimensi ke kelompok pengukuran berdasarkan karakteristik - tingkat detail.

    DI DALAM sistem file sebuah kubus diimplementasikan sebagai urutan file biner yang ditautkan. Arsitektur biner kubus memfasilitasi pengambilan data multidimensi dalam jumlah besar secara cepat.

    Saya menyebutkan bahwa kubus dibangun dari database relasional dasar yang disebut model dimensi. Model dimensi berisi tabel relasional (fakta dan dimensi) yang menghubungkannya dengan entitas kubus. Tabel fakta berisi dimensi seperti kuantitas produk yang terjual. Tabel dimensi menyimpan atribut deskriptif seperti nama produk, tanggal, dan nama karyawan. Biasanya, tabel fakta dan tabel dimensi dihubungkan melalui batasan kunci asing utama, mengingat hal itu kunci asing terletak di tabel data aktual (hubungan relasional ini terkait dengan atribut tingkat detail kubus, yang telah dibahas di atas). Ketika tabel dimensi dihubungkan langsung ke tabel fakta, skema bintang akan terbentuk. Jika tabel dimensi tidak dihubungkan langsung ke tabel fakta, hasilnya adalah skema kepingan salju.

    Harap dicatat bahwa model dimensi diklasifikasikan menurut aplikasinya. Data mart adalah model dimensi yang dirancang untuk satu proses bisnis, seperti penjualan atau manajemen inventaris. Gudang data adalah model dimensi yang dirancang untuk menangkap komponen proses bisnis sehingga memfasilitasi analisis proses lintas bisnis.

    Persyaratan perangkat lunak

    Sekarang setelah Anda memiliki pemahaman dasar tentang apa itu kubus dan mengapa itu penting, saya akan membahasnya dan membawa Anda pada tur langkah demi langkah dalam membangun kubus pertama Anda menggunakan SSAS. Ada beberapa komponen dasar perangkat lunak, yang Anda perlukan, jadi sebelum Anda mulai membuat kubus pertama Anda, pastikan sistem Anda memenuhi persyaratan.

    Contoh kubus Penjualan Internet saya akan dibuat dari database pengujian AdventureWorksDW 2005. Saya akan membuat kubus pengujian dari subset tabel yang ditemukan dalam database pengujian yang akan berguna untuk menganalisis data penjualan Internet. Gambar 1 menunjukkan tata letak dasar tabel database. Karena saya menggunakan versi 2005, Anda dapat mengikuti instruksi saya menggunakan SQL Server 2005 atau SQL Server 2008.

    Gambar 1. Subset dari data mart Penjualan Internet Adventure Works

    Basis data pelatihan Adventure WorksDW 2005 dapat ditemukan di situs web CodePlex: msftdbprodsamples.codeplex.com. Temukan tautan “database sampel produk SQL Server 2005 masih tersedia” (http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004). Basis pelatihan data terkandung dalam file AdventureWorksBI.msi (http://msftdbprodsamples.codeplex.com/releases/view/4004#DownloadId=11755).

    Seperti disebutkan, Anda harus memiliki akses ke contoh SQL Server 2008 atau 2005, termasuk komponen SSAS dan Business Intelligence Development Studio (BIDS). Saya akan menggunakan SQL Server 2008, jadi Anda mungkin melihat beberapa perbedaan kecil jika Anda menggunakan SQL Server 2005.

    Membuat Proyek SSAS

    Hal pertama yang harus Anda lakukan adalah membuat proyek SSAS menggunakan BIDS. Temukan BIDS di menu Start dan kemudian di menu Microsoft SQL Server 2008/2005, sub-item SQL Server Business Intelligence Development Studio. Mengklik tombol ini akan meluncurkan BIDS dengan layar splash default. Membuat proyek baru SSAS dengan memilih File, Baru, Proyek. Anda akan melihat kotak dialog Proyek Baru, yang ditunjukkan pada Gambar 1. Pilih folder Proyek Layanan Analisis dan atur deskripsi proyek ke SQLMAG_MyFirstCube. Klik Oke.

    Setelah proyek dibuat, klik kanan proyek tersebut di Solution Explorer dan pilih menu konteks Barang properti. Sekarang pilih bagian Deployment di sisi kiri kotak dialog SQLMAG_MyFirstCube: Property Pages dan tinjau pengaturan pengaturan Target Server dan Database, seperti yang ditunjukkan Gambar 2. Jika Anda bekerja di lingkungan SQL Server terdistribusi, Anda harus memenuhi syarat properti Target Server dengan nama server yang akan Anda gunakan. Klik OK bila Anda puas dengan pengaturan penerapan untuk proyek SSAS ini.

    Mendefinisikan sumber data

    Objek pertama yang perlu Anda buat adalah sumber data. Objek sumber data menyediakan skema dan data yang digunakan untuk membangun objek yang terkait dengan dan di dasar kubus. Untuk membuat objek sumber data di BIDS, gunakan Source Wizard Data Penyihir Sumber.

    Mulai Panduan Sumber Data dengan mengklik kanan folder Sumber Data di panel Penjelajah Solusi dan memilih Sumber Data Baru. Anda akan menemukan bahwa pembuatan objek SSAS di BIDS bersifat perkembangan. Pertama, wizard memandu Anda melalui proses pembuatan objek dan pengaturan umum. Dan kemudian Anda membuka objek SSAS yang dihasilkan di desainer dan menyesuaikannya secara detail jika perlu. Setelah Anda melewati layar prompt, tentukan koneksi data baru dengan mengklik tombol Baru. Pilih dan buat koneksi Native OLEDB\SQL Server Native Client 10 baru yang menunjuk ke SQL Server yang Anda inginkan yang memiliki instance database yang diinginkan. Anda dapat menggunakan autentikasi Windows atau SQL Server, bergantung pada pengaturan Anda lingkungan SQLServer. Klik tombol Uji Koneksi untuk memastikan bahwa Anda telah mendefinisikan koneksi database dengan benar, lalu tombol OK.

    Berikutnya adalah Informasi Peniruan Identitas, yang, seperti asosiasi data, bergantung pada bagaimana lingkungan SQL Server disusun. Peminjaman hak istimewa adalah konteks keamanan yang diandalkan SSAS saat memproses objeknya. Jika Anda mengelola penerapan Anda di server tunggal (atau laptop) utama, seperti yang saya asumsikan sebagian besar pembaca, Anda cukup memilih opsi Gunakan akun layanan. Klik Berikutnya untuk menyelesaikan Panduan Sumber Data dan atur AWDW2005 sebagai Nama Sumber Data. Cukup nyaman jika Anda dapat menggunakan metode ini untuk tujuan pengujian, namun dalam lingkungan produksi nyata, menggunakan akun layanan bukanlah praktik yang baik. Lebih baik menentukan domain akun untuk meminjam hak koneksi SSAS ke sumber data.

    Tampilan Sumber Data

    Untuk sumber data yang telah Anda tentukan, langkah selanjutnya dalam proses pembuatan kubus SSAS adalah membuat Tampilan Sumber Data (DSV). DSV memberikan kemampuan untuk memisahkan skema yang diharapkan kubus Anda dari skema database yang mendasarinya. Hasilnya, DSV dapat digunakan untuk memperluas skema relasional yang mendasarinya saat membuat kubus. Beberapa fitur utama DSV untuk memperluas skema sumber data mencakup kueri bernama, hubungan logis antar tabel, dan kolom terhitung bernama.

    Mari lanjutkan dan klik kanan pada folder DSV dan pilih Tampilan Sumber Data Baru untuk meluncurkan wizard Buat Tampilan DSV Baru. Di kotak dialog, pada langkah Pilih Sumber Data, pilih koneksi ke dasar relasional data dan klik Berikutnya. Pilih tabel FactInternetSales, DimProduct, DimTime, DimCustomer dan klik satu tombol panah kanan untuk memindahkan tabel ini ke kolom Termasuk. Terakhir, klik Berikutnya dan selesaikan wizard dengan menerima nama default dan mengklik Selesai.

    Pada pada tahap ini Anda harus memiliki tampilan DSV yang terletak di bawah folder Tampilan Sumber Data di Solution Explorer. Klik dua kali pada DSV baru untuk meluncurkan desainer DSV. Anda akan melihat keempat tabel untuk DSV tertentu, seperti yang ditunjukkan pada Gambar 2.

    Membuat Dimensi Basis Data

    Seperti yang saya jelaskan di atas, dimensi memberikan fitur deskriptif dimensi dan hierarki yang digunakan untuk memungkinkan agregasi di atas tingkat detail. Penting untuk memahami perbedaan antara dimensi database dan dimensi kubus: dimensi dari database menyediakan objek dimensi yang mendasari untuk beberapa dimensi kubus yang akan digunakan untuk membuat kubus.

    Dimensi basis data dan kubus memberikan solusi elegan terhadap konsep yang dikenal sebagai "dimensi peran". Dimensi berbasis peran digunakan ketika Anda perlu menggunakan satu dimensi dalam kubus beberapa kali. Tanggal adalah contoh sempurna dalam contoh kubus ini: Anda akan membuat dimensi tanggal tunggal dan mereferensikannya satu kali untuk setiap tanggal yang ingin Anda analisis penjualan onlinenya. Tanggal kalender akan menjadi dimensi pertama yang Anda buat. Klik kanan folder Dimensions di Solution Explorer dan pilih New Dimension untuk meluncurkan Dimension Wizard. Pilih Gunakan tabel yang ada dan klik Berikutnya di langkah Pilih Metode Pembuatan. Pada langkah Tentukan Informasi Sumber, tentukan tabel DimTime di daftar drop-down Tabel utama dan klik Berikutnya. Sekarang, pada langkah Pilih Atribut Dimensi, Anda perlu memilih atribut dimensi waktu. Pilih setiap atribut, seperti yang ditunjukkan Gambar 3.

    Klik Berikutnya. Sebagai langkah terakhir, masukkan Tanggal Redup di kolom Nama dan klik Selesai untuk menyelesaikan Wizard Dimensi. Anda sekarang akan melihat dimensi Tanggal Redup baru yang terletak di bawah folder Dimensi di Solution Explorer.

    Kemudian gunakan Dimension Wizard untuk membuat dimensi produk dan pelanggan. Ikuti langkah yang sama untuk membuat dimensi dasar seperti sebelumnya. Saat bekerja dengan Dimension Wizard, pastikan Anda memilih semua atribut potensial di langkah Pilih Atribut Dimensi. Nilai default untuk pengaturan lainnya baik-baik saja untuk contoh kubus uji.

    Membuat Kubus Penjualan Internet

    Sekarang setelah Anda menyiapkan dimensi database, Anda dapat mulai membuat kubus. Di Solution Explorer, klik kanan folder Cubes dan pilih New Cube untuk meluncurkan Cube Wizard. Di jendela Pilih Metode Pembuatan, pilih opsi Gunakan tabel yang ada. Pilih tabel FactInternetSales untuk Grup Ukur di langkah Pilih Tabel Grup Ukur. Hapus centang pada kotak di samping dimensi Kunci Promosi, Kunci Mata Uang, Kunci Wilayah Penjualan, dan Nomor Revisi pada langkah Pilih Ukuran, lalu klik Berikutnya.

    Pada layar Pilih Dimensi yang Ada, pastikan semua dimensi database yang ada dipilih untuk digunakan sebagai dimensi kubus. Karena saya ingin melakukannya diberikan kubus sesederhana mungkin, batalkan pilihan dimensi FactInternetSales di langkah Pilih Dimensi Baru. Dengan membiarkan dimensi FactInternetSales dipilih, Anda akan membuat apa yang disebut dimensi fakta atau dimensi degenerasi. Dimensi fakta adalah dimensi yang dibuat menggunakan tabel fakta dasar dan bukan tabel dimensi tradisional.

    Klik Berikutnya untuk menuju ke langkah Menyelesaikan Wizard dan masukkan "Kubus Pertama Saya" di bidang Nama Kubus. Klik tombol Selesai untuk menyelesaikan proses Create Cube Wizard.

    Memperluas dan Memproses Kubus

    Sekarang Anda siap untuk menyebarkan dan memproses kubus pertama. Klik kanan ikon kubus baru di Solution Explorer dan pilih Proses. Anda akan melihat kotak pesan yang menyatakan bahwa konten tersebut tampaknya kedaluwarsa. Klik Ya untuk menyebarkan kubus baru ke server SSAS target. Saat Anda menyebarkan kubus yang Anda kirim berkas XML for Analisis (XMLA) ke server SSAS target, yang membuat kubus di server itu sendiri. Seperti disebutkan, pemrosesan kubus akan mengisi binernya pada disk dengan data dari sumber utama, serta metadata tambahan yang telah Anda tambahkan (dimensi, dimensi, dan pengaturan kubus).

    Setelah proses penerapan selesai, kotak dialog Process Cube baru muncul. Klik tombol Jalankan untuk mulai memproses kubus, yang terbuka dengan jendela Kemajuan Proses. Ketika pemrosesan selesai, klik tombol Tutup (dua kali untuk menutup keduanya kotak dialog) untuk menyelesaikan proses penerapan dan pemrosesan kubus.

    Anda sekarang telah membuat, menerapkan, dan memproses kubus pertama Anda. Anda dapat melihat kubus baru ini dengan mengklik kanan kubus tersebut di jendela Solution Explorer dan memilih Telusuri. Seret dimensi ke tengah tabel pivot dan atribut dimensi ke baris dan kolom untuk menjelajahi kubus baru Anda. Perhatikan seberapa cepat kubus memproses berbagai kueri agregasi. Sekarang Anda dapat menghargai kekuatan tak terbatas, dan juga nilai bisnis, dari kubus OLAP.

    Derek Datang ( [dilindungi email]) adalah arsitek senior di B.I. Voyage, yang memiliki status Mitra Microsoft di bidang analisis bisnis. Memiliki gelar SQL Server MVP dan beberapa sertifikasi Microsoft