OLAP-CUBE (pelaporan manajemen dinamis). Pengantar Analisis Multivariat

Apa itu OLAP saat ini, secara umum diketahui oleh setiap spesialis. Setidaknya konsep "OLAP" dan "data multidimensi" terhubung erat di benak kita. Namun demikian, fakta bahwa topik ini diangkat kembali, saya harap akan disetujui oleh sebagian besar pembaca, karena agar ide tidak ketinggalan zaman, Anda perlu berkomunikasi secara berkala dengan orang pintar atau baca artikel di publikasi yang bagus...

Gudang data (tempat OLAP dalam struktur informasi perusahaan)

Istilah "OLAP" terkait erat dengan istilah "gudang data" (Data Warehouse).

Berikut adalah definisi yang dirumuskan oleh "bapak pendiri" gudang data, Bill Inmon: "Sebuah gudang data adalah kumpulan data yang spesifik domain, terikat waktu, dan tidak dapat diubah untuk mendukung proses pengambilan keputusan manajerial."

Data dalam penyimpanan berasal dari sistem operasional (sistem OLTP), yang dirancang untuk mengotomatiskan proses bisnis. Selain itu, repositori dapat diisi ulang dari sumber eksternal, seperti laporan statistik.

Mengapa membangun gudang data - lagipula, gudang tersebut berisi informasi yang jelas-jelas berlebihan yang sudah "hidup" di database atau file sistem operasi? Jawabannya bisa singkat: tidak mungkin atau sangat sulit untuk menganalisis data sistem operasional secara langsung. Ini karena berbagai alasan, termasuk fragmentasi data, penyimpanannya dalam format DBMS yang berbeda, dan di "sudut" berbeda dari jaringan perusahaan. Tetapi bahkan jika semua data dalam perusahaan disimpan di server basis data pusat (yang sangat jarang), analis hampir pasti tidak akan memahami strukturnya yang rumit dan terkadang membingungkan. Penulis memiliki pengalaman yang agak menyedihkan saat mencoba "memberi makan" para analis yang lapar dengan data "mentah" dari sistem operasional - ternyata terlalu sulit bagi mereka.

Dengan demikian, tugas repositori adalah menyediakan "bahan mentah" untuk dianalisis di satu tempat dan dalam struktur yang sederhana dan mudah dipahami. Ralph Kimball, dalam kata pengantar bukunya "The Data Warehouse Toolkit", menulis bahwa jika setelah membaca seluruh buku pembaca hanya memahami satu hal, yaitu bahwa struktur gudang harus sederhana, penulis akan mempertimbangkan tugasnya. lengkap.

Ada alasan lain yang membenarkan munculnya penyimpanan terpisah - kueri analitik kompleks untuk informasi operasional memperlambat pekerjaan perusahaan saat ini, memblokir tabel untuk waktu yang lama dan menyita sumber daya server.

Menurut pendapat saya, penyimpanan belum tentu merupakan akumulasi data yang sangat besar - yang utama adalah nyaman untuk dianalisis. Secara umum, istilah terpisah ditujukan untuk penyimpanan kecil - Data Mart (kios data), tetapi dalam praktik Rusia kami, Anda tidak akan sering mendengarnya.

OLAP adalah alat analisis yang berguna

Sentralisasi dan penataan yang nyaman jauh dari semua yang dibutuhkan seorang analis. Bagaimanapun, dia masih membutuhkan alat untuk melihat, memvisualisasikan informasi. Laporan tradisional, bahkan dibuat berdasarkan satu repositori, kekurangan satu hal - fleksibilitas. Mereka tidak dapat "dipelintir", "diperluas", atau "diciutkan" untuk mendapatkan tampilan data yang diinginkan. Tentu saja, Anda dapat memanggil seorang programmer (jika dia ingin datang), dan dia (jika dia tidak sibuk) akan membuat laporan baru dengan cukup cepat - katakanlah, dalam satu jam (saya menulis dan saya sendiri tidak percaya - itu tidak terjadi begitu cepat dalam hidup; beri dia waktu tiga jam) . Ternyata seorang analis dapat memeriksa tidak lebih dari dua ide per hari. Dan dia (jika dia seorang analis yang baik) dapat menghasilkan beberapa ide seperti itu per jam. Dan semakin banyak "irisan" dan "irisan" data yang dilihat analis, semakin banyak ide yang dia miliki, yang, pada gilirannya, membutuhkan lebih banyak "irisan" baru untuk verifikasi. Saya berharap dia memiliki alat yang memungkinkan dia untuk memperluas dan menciutkan data dengan sederhana dan nyaman! OLAP adalah salah satu alat tersebut.

Meskipun OLAP bukan merupakan atribut yang diperlukan dari gudang data, OLAP semakin banyak digunakan untuk menganalisis informasi yang terkumpul di gudang data ini.

Komponen yang termasuk dalam penyimpanan tipikal ditunjukkan pada gambar. 1.

Beras. 1. Struktur gudang data

Data operasional dikumpulkan dari berbagai sumber, dibersihkan, diintegrasikan, dan dimasukkan ke dalam penyimpanan relasional. Pada saat yang sama, mereka sudah tersedia untuk dianalisis menggunakan berbagai alat pelaporan. Kemudian data (seluruhnya atau sebagian) disiapkan untuk analisis OLAP. Mereka dapat dimuat ke dalam database OLAP khusus atau dibiarkan di penyimpanan relasional. Elemen terpentingnya adalah metadata, yaitu informasi tentang struktur, penempatan, dan transformasi data. Berkat mereka, interaksi yang efektif dari berbagai komponen penyimpanan dipastikan.

Kesimpulannya, kita dapat mendefinisikan OLAP sebagai seperangkat alat untuk analisis data multidimensi yang terkumpul di gudang. Secara teoritis, alat OLAP dapat diterapkan langsung ke data operasional atau salinan persis(agar tidak mengganggu operasional user). Namun dengan melakukan itu, kami berisiko menginjak penggaruk yang sudah dijelaskan di atas, yaitu mulai menganalisis data operasional yang tidak secara langsung cocok untuk dianalisis.

Definisi dan konsep dasar OLAP

Untuk memulainya, mari kita uraikan: OLAP adalah Pemrosesan Analitik Online, yaitu analisis data online. 12 prinsip pendefinisian OLAP dirumuskan pada tahun 1993 oleh E.F. Codd, "penemu" database relasional. Kemudian, definisinya diubah menjadi apa yang disebut tes FASMI, yang membutuhkan aplikasi OLAP untuk memberikan kemampuan menganalisis informasi multidimensi bersama dengan cepat ().

tes FASMI

Cepat(Cepat) - analisis harus dilakukan dengan sama cepatnya pada semua aspek informasi. Waktu respons yang dapat diterima adalah 5 detik atau kurang.

analisis(Analisis) - Ini harus memungkinkan untuk melakukan tipe dasar analisis numerik dan statistik, yang telah ditentukan sebelumnya oleh pengembang aplikasi atau ditentukan secara sewenang-wenang oleh pengguna.

bersama(Dibagikan) - Banyak pengguna harus memiliki akses ke data, sedangkan akses ke informasi sensitif harus dikontrol.

Multidimensi(Multidimensional) adalah karakteristik OLAP yang utama dan paling esensial.

Informasi(Informasi) - aplikasi harus dapat mengakses informasi apa pun yang diperlukan, terlepas dari volume dan lokasi penyimpanannya.

OLAP = Tampilan Multidimensi = Kubus

OLAP menyediakan sarana yang nyaman dan berkecepatan tinggi untuk mengakses, melihat, dan menganalisis informasi bisnis. Pengguna mendapatkan model data alami dan intuitif, mengaturnya dalam bentuk kubus multidimensi (Kubus). Sumbu sistem koordinat multidimensi adalah atribut utama dari proses bisnis yang dianalisis. Misalnya untuk penjualan bisa berupa produk, wilayah, jenis pembeli. Waktu digunakan sebagai salah satu ukuran. Di persimpangan sumbu - pengukuran (Dimensi) - ada data yang secara kuantitatif mencirikan proses - ukuran (Ukuran). Ini bisa berupa volume penjualan dalam potongan atau dalam istilah moneter, saldo stok, biaya, dll. Pengguna yang menganalisis informasi dapat "memotong" kubus ke arah yang berbeda, mendapatkan ringkasan (misalnya, berdasarkan tahun) atau, sebaliknya, mendetail ( mingguan) informasi dan melakukan manipulasi lain yang muncul di pikirannya dalam proses analisis.

Sebagai langkah-langkah dalam kubus tiga dimensi yang ditunjukkan pada Gambar. 2, jumlah penjualan digunakan, dan waktu, produk, dan toko digunakan sebagai pengukuran. Pengukuran disajikan pada tingkat pengelompokan tertentu: produk dikelompokkan berdasarkan kategori, toko dikelompokkan berdasarkan negara, dan waktu transaksi dikelompokkan berdasarkan bulan. Beberapa saat kemudian kami akan mempertimbangkan tingkat pengelompokan (hierarki) secara lebih rinci.


Beras. 2. Contoh kubus

"Memotong" kubus

Bahkan kubus tiga dimensi pun sulit ditampilkan di layar komputer sehingga nilai ukuran yang diinginkan dapat terlihat. Apa yang bisa kita katakan tentang kubus dengan lebih dari tiga dimensi? Untuk memvisualisasikan data yang disimpan dalam kubus, sebagai aturan, tampilan dua dimensi yang biasa digunakan, yaitu tabular, yang memiliki header baris dan kolom hierarkis yang kompleks.

Representasi dua dimensi dari sebuah kubus dapat diperoleh dengan "memotong" melintasi satu atau lebih sumbu (dimensi): kami memperbaiki nilai semua dimensi, kecuali dua, dan kami mendapatkan tabel dua dimensi biasa . Sumbu horizontal tabel (header kolom) mewakili satu dimensi, sumbu vertikal (header baris) mewakili dimensi lain, dan sel tabel mewakili nilai ukuran. Dalam hal ini, kumpulan ukuran sebenarnya dianggap sebagai salah satu dimensi - kami memilih satu ukuran untuk ditampilkan (dan kemudian kami dapat menempatkan dua dimensi di tajuk baris dan kolom), atau kami menunjukkan beberapa ukuran (dan kemudian satu dari sumbu tabel akan ditempati oleh nama ukuran, dan yang lainnya - nilai dari satu dimensi "tidak dipotong").

Lihatlah gambar. 3 - ini adalah irisan kubus dua dimensi untuk satu ukuran - Penjualan Satuan (potongan terjual) dan dua dimensi "belum dipotong" - Toko (Toko) dan Waktu (Waktu).


Beras. 3. Irisan kubus dua dimensi untuk satu takaran

Pada ara. 4 menunjukkan hanya satu dimensi "belum dipotong" - Toko, tetapi menampilkan nilai dari beberapa ukuran - Penjualan Unit (potongan terjual), Penjualan Toko (jumlah penjualan), dan Biaya Toko (biaya toko).


Beras. 4. Pemotongan Kubus 2D untuk Berbagai Ukuran

Representasi kubus dua dimensi juga dimungkinkan ketika lebih dari dua dimensi tetap "tidak dipotong". Dalam hal ini, dua atau lebih dimensi dari kubus "potong" akan ditempatkan pada sumbu irisan (baris dan kolom) - lihat gbr. 5.


Beras. 5. Irisan kubus dua dimensi dengan beberapa dimensi pada sumbu yang sama

Tag

Nilai-nilai yang “disisihkan” sepanjang dimensi disebut anggota atau label (anggota). Label digunakan baik untuk "memotong" kubus dan untuk membatasi (memfilter) data yang dipilih - ketika dalam dimensi yang tetap "tidak dipotong", kami tidak tertarik pada semua nilai, tetapi pada subsetnya, misalnya, tiga kota dari beberapa lusin. Nilai label muncul dalam tampilan kubus 2D sebagai judul baris dan kolom.

Hirarki dan level

Label dapat digabungkan menjadi hierarki yang terdiri dari satu atau lebih level. Misalnya, label dimensi "Store" (Store) secara alami digabungkan menjadi hierarki dengan level:

Negara (Negara)

Negara Bagian (Negara Bagian)

Kota (Kota)

Toko peralatan).

Menurut tingkat hierarki, nilai agregat dihitung, seperti penjualan untuk AS (tingkat "Negara") atau untuk California (tingkat "Negara Bagian"). Lebih dari satu hierarki dapat diimplementasikan dalam satu dimensi - misalnya untuk waktu: (Tahun, Kuartal, Bulan, Hari) dan (Tahun, Minggu, Hari).

Arsitektur Aplikasi OLAP

Semua yang dikatakan di atas tentang OLAP sebenarnya mengacu pada penyajian data multidimensi. Secara kasar, baik pengguna akhir maupun pengembang alat yang digunakan klien tidak peduli tentang bagaimana data disimpan.

Multidimensi dalam aplikasi OLAP dapat dibagi menjadi tiga tingkatan:

  • Representasi data multidimensi - alat pengguna akhir yang menyediakan visualisasi multidimensi dan manipulasi data; lapisan representasi multidimensi abstrak dari struktur fisik data dan memperlakukan data sebagai multidimensi.
  • Pemrosesan multidimensi - alat (bahasa) untuk merumuskan kueri multidimensi (bahasa SQL relasional tradisional tidak cocok di sini) dan prosesor yang dapat memproses dan menjalankan kueri semacam itu.
  • Penyimpanan multidimensi - sarana organisasi fisik data yang menyediakan eksekusi kueri multidimensi yang efisien.

Dua level pertama bersifat wajib di semua alat OLAP. Tingkat ketiga, meskipun digunakan secara luas, tidak diperlukan, karena data untuk representasi multidimensi juga dapat diambil dari struktur relasional biasa; prosesor kueri multidimensi dalam hal ini menerjemahkan kueri multidimensi menjadi kueri SQL yang dijalankan oleh DBMS relasional.

Produk OLAP tertentu biasanya berupa alat presentasi data multidimensi, klien OLAP (misalnya, Tabel Pivot di Excel 2000 dari Microsoft atau ProClarity dari Knosys), atau DBMS back-end multidimensi, server OLAP (misalnya, Oracle Express Server atau Layanan OLAP Microsoft).

Lapisan pemrosesan multidimensi biasanya dibangun ke dalam klien OLAP dan/atau server OLAP, tetapi dapat diisolasi dalam bentuknya yang paling murni, seperti komponen Layanan Tabel Pivot Microsoft.

Aspek teknis penyimpanan data multidimensi

Seperti disebutkan di atas, alat analisis OLAP juga dapat mengekstrak data secara langsung dari sistem relasional. Pendekatan ini lebih menarik pada saat server OLAP tidak ada dalam daftar harga vendor database terkemuka. Tetapi hari ini, Oracle, Informix, dan Microsoft menawarkan server OLAP lengkap, dan bahkan para manajer TI yang tidak suka menanam "kebun binatang" perangkat lunak dari pabrikan berbeda di jaringan mereka dapat membeli (lebih tepatnya, melamar dengan permintaan yang sesuai ke manajemen perusahaan ) Server OLAP dengan merek yang sama dengan server database utama.

Server OLAP, atau server database multidimensi, dapat menyimpan data multidimensi mereka dengan cara yang berbeda. Sebelum mempertimbangkan metode ini, kita perlu membicarakan aspek penting seperti penyimpanan agregat. Faktanya adalah bahwa di gudang data mana pun - baik dalam gudang reguler maupun multidimensi - bersama dengan data terperinci yang diambil dari sistem operasional, indikator ringkasan (indikator agregat, agregat) juga disimpan, seperti jumlah volume penjualan per bulan, berdasarkan kategori barang, dll. Agregat disimpan secara eksplisit hanya untuk tujuan mempercepat eksekusi kueri. Lagi pula, di satu sisi, sebagai aturan, sejumlah besar data terakumulasi dalam penyimpanan, dan di sisi lain, analis dalam banyak kasus tidak tertarik pada detail, tetapi pada indikator umum. Dan jika jutaan penjualan individu harus dijumlahkan setiap kali untuk menghitung jumlah penjualan selama setahun, kecepatannya kemungkinan besar tidak dapat diterima. Oleh karena itu, saat memuat data ke dalam basis data multidimensi, semua indikator total atau sebagian darinya dihitung dan disimpan.

Tapi, seperti yang Anda tahu, Anda harus membayar semuanya. Dan Anda harus membayar untuk kecepatan pemrosesan kueri ke data ringkasan dengan menambah jumlah data dan waktu yang diperlukan untuk memuatnya. Selain itu, peningkatan volume dapat menjadi bencana besar - dalam salah satu tes standar yang diterbitkan, jumlah agregat lengkap untuk 10 MB data awal membutuhkan 2,4 GB, yaitu, data tumbuh 240 kali lipat! Tingkat "pembengkakan" data saat menghitung agregat bergantung pada jumlah dimensi kubus dan struktur dimensi tersebut, yaitu rasio jumlah "ayah" dan "anak" pada berbagai tingkat dimensi. Untuk mengatasi masalah penyimpanan agregat terkadang digunakan skema yang kompleks, yang memungkinkan, saat menghitung jauh dari semua agregat yang mungkin, untuk mencapai peningkatan kinerja eksekusi kueri yang signifikan.

Sekarang tentang berbagai opsi untuk menyimpan informasi. Data detail dan agregat dapat disimpan dalam struktur relasional atau multidimensi. Penyimpanan multidimensi memungkinkan Anda untuk memperlakukan data sebagai larik multidimensi, yang memberikan penghitungan cepat total yang sama dan berbagai transformasi multidimensi pada salah satu dimensi. Beberapa waktu lalu, produk OLAP mendukung penyimpanan relasional atau multidimensi. Saat ini, sebagai aturan, produk yang sama menyediakan kedua jenis penyimpanan ini, serta jenis ketiga - campuran. Persyaratan berikut berlaku:

  • MOLAP(OLAP Multidimensi) - data detail dan agregat disimpan dalam database multidimensi. Dalam hal ini, redundansi terbesar diperoleh, karena data multidimensi sepenuhnya berisi data relasional.
  • ROLAP(OLAP Relasional) - data terperinci tetap berada di tempat asalnya "tinggal" - dalam database relasional; agregat disimpan dalam database yang sama dalam tabel layanan yang dibuat khusus.
  • HOLAP(OLAP Hibrid) - data terperinci tetap di tempat (dalam basis data relasional), sementara agregat disimpan dalam basis data multidimensi.

Masing-masing metode ini memiliki kelebihan dan kekurangan dan harus digunakan tergantung pada kondisi - jumlah data, kekuatan DBMS relasional, dll.

Saat menyimpan data dalam struktur multidimensi, ada potensi masalah "menggembung" karena penyimpanan nilai kosong. Lagi pula, jika suatu tempat dicadangkan dalam larik multidimensi untuk semua kemungkinan kombinasi label pengukuran, dan hanya sebagian kecil yang benar-benar terisi (misalnya, sejumlah produk hanya dijual di sejumlah kecil wilayah), maka sebagian besar kubus akan kosong, meskipun tempatnya akan ditempati. Produk OLAP modern mampu mengatasi masalah ini.

Bersambung. Di masa mendatang, kami akan membahas tentang produk OLAP spesifik yang diproduksi oleh pabrikan terkemuka.

OLAP (Pemrosesan Analitis On-Line) adalah metode analitik data elektronik yang merepresentasikan pengorganisasian data ke dalam kategori hierarki menggunakan total yang telah dihitung sebelumnya. Data OLAP diatur secara hierarkis dan disimpan dalam kubus, bukan tabel. Kubus OLAP adalah kumpulan data multidimensi dengan sumbu tempat parameter diplot dan sel berisi data agregat yang bergantung pada parameter. Kubus dirancang untuk analisis multidimensi yang kompleks dari data dalam jumlah besar karena kubus hanya memberikan hasil ringkasan untuk pelaporan, bukan jumlah yang besar entri individu.

Konsep OLAP dijelaskan pada tahun 1993 oleh peneliti basis data 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, mewakili bidang data yang dihitung;

informasi deskriptif yang pengukuran atau ukuran. Informasi deskriptif biasanya dipecah menjadi tingkat detail. Misalnya: "Tahun", "Kuartal", "Bulan", dan "Hari" dalam dimensi "Waktu". Dengan mendistribusikan bidang ke dalam tingkat detail, pengguna laporan dapat memilih tingkat detail yang ingin mereka lihat, dimulai dengan ringkasan tingkat tinggi lalu beralih ke tampilan yang lebih detail, dan sebaliknya.

Alat kueri Microsoft juga memungkinkan Anda membuat kubus OLAP dari kueri yang memuat data dari database relasional seperti Microsoft Access, mengonversi tabel linier menjadi hierarki struktural (kubus).

OLAP Cube Creation Wizard adalah alat Microsoft Query bawaan. Untuk membuat kubus OLAP berdasarkan database relasional, Anda harus menyelesaikan langkah-langkah berikut ini sebelum menjalankan panduan.

1. Tentukan sumber data (lihat Gambar 6.1).

2. Menggunakan Microsoft Query, buat kueri, sertakan di dalamnya hanya bidang yang akan menjadi bidang data atau bidang dimensi kubus OLAP, jika bidang dalam kubus digunakan lebih dari sekali, maka harus disertakan dalam kueri jumlah yang diperlukan kali.

3. Pada langkah terakhir Panduan Pembuatan Kueri, atur tombol radio ke Membuat kubus OLAP dari kueri tertentu(lihat Gambar 6.2) atau setelah kueri dibuat menggunakan alat Kueri langsung di menu Mengajukan memilih tim Buat kubus OLAP, yang akan meluncurkan OLAP Cube Creation Wizard.

Panduan Pembuatan Kubus OLAP memiliki tiga langkah.

Pada langkah pertama wizard (lihat Gambar 6.6), file bidang data– Bidang terhitung yang ingin Anda tentukan totalnya.



Beras. 6.6. Mendefinisikan bidang data

Kolom kalkulasi yang disarankan (biasanya kolom numerik) yang ditempatkan wizard di bagian atas daftar, menandai dan menentukan fungsi akhir dari kolom ini, biasanya − Jumlah. Saat memilih bidang data, setidaknya satu bidang harus dipilih sebagai bidang terhitung, dan setidaknya satu bidang harus tetap tidak dicentang untuk menentukan dimensi.

Saat membuat kubus OLAP, empat fungsi ringkasan dapat digunakan − Jumlah, Nomor(jumlah nilai), Minimum, Maksimum untuk bidang numerik dan satu fungsi Nomor untuk semua bidang lainnya. Jika Anda ingin menggunakan beberapa fungsi ringkasan yang berbeda untuk 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 dimensi, Anda perlu dari daftar Bidang sumber seret bidang dimensi tingkat atas yang diinginkan 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, menggunakan menu konteks, Anda dapat mengubah nama bidang dimensi atau level.

Beras. 6.7. Definisi bidang dimensi

Bidang yang berisi data terpisah atau berbeda dan tidak termasuk dalam hierarki dapat didefinisikan sebagai dimensi tingkat tunggal. Namun, menggunakan kubus akan lebih efisien jika beberapa bidang diatur ke dalam tingkatan. Untuk membuat tingkat sebagai bagian dari dimensi, seret bidang dari daftar Bidang sumber pada bidang yang merupakan dimensi atau level. 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 yang lebih rendah atau lebih tinggi level tinggi, Anda perlu menyeretnya ke kotak yang lebih rendah atau lebih tinggi dalam dimensi. Tombol atau digunakan untuk menampilkan atau menyembunyikan level, masing-masing.

Jika bidang tanggal atau waktu digunakan sebagai dimensi tingkat teratas, Panduan Buat Kubus OLAP secara otomatis membuat tingkat untuk dimensi tersebut. Pengguna kemudian dapat memilih level mana yang harus ada dalam laporan. Misalnya, Anda dapat memilih minggu, kuartal, dan tahun, atau bulan (lihat Gambar 6.7).

Perhatikan bahwa wizard secara otomatis membuat tingkat untuk bidang tanggal dan waktu hanya saat Anda membuat dimensi tingkat atas; saat Anda menambahkan bidang ini sebagai subtingkat dari dimensi yang ada, tidak ada tingkat otomatis yang 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 laporan dibuka (jika kubus dilihat dari Excel, maka kita berbicara tentang tabel pivot). Dalam hal ini, file permintaan dan file *.oqy definisi kubus A berisi instruksi untuk membuat kubus. File *.oqy dapat dibuka di Excel untuk membuat laporan berdasarkan kubus, dan jika Anda perlu membuat perubahan pada kubus, Anda dapat membukanya dengan Query untuk memulai kembali panduan pembuatan kubus.

Secara default, file definisi kubus, serta 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.

Dalam hal memilih opsi ketiga dari 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 oleh pengguna .anak di mana data ini disimpan. File ini tidak langsung dibuat saat tombol diklik Siap; file dibuat saat definisi kubus disimpan ke file, atau saat laporan dibuat dari kubus.

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

File kubus *.cub yang terpisah harus dibuat dalam kasus berikut:

1) untuk laporan interaktif yang sering berubah jika ada cukup ruang disk;

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

Dalam PivotTable standar, data sumber disimpan di hard drive lokal. Dengan cara ini, Anda selalu dapat mengelola dan mengaturnya kembali, meskipun Anda tidak memiliki akses ke jaringan. Tapi ini sama sekali tidak berlaku untuk PivotTable OLAP. Di PivotTable OLAP, cache tidak pernah disimpan di hard drive lokal. Oleh karena itu, segera setelah pemutusan dari jaringan lokal tabel pivot Anda akan gagal. Anda tidak akan dapat memindahkan salah satu bidang di dalamnya.

Jika Anda masih perlu menganalisis data OLAP setelah offline, buat kubus data offline. Kubus data offline adalah file terpisah yang merupakan cache PivotTable dan menyimpan data OLAP yang ditampilkan setelah diputuskan dari jaringan lokal. Data OLAP yang disalin ke tabel pivot dapat dicetak, situs http://everest.ua menjelaskan hal ini secara mendetail.

Untuk membuat kubus data mandiri, pertama buat PivotTable OLAP. Tempatkan kursor di dalam PivotTable dan klik tombol Alat OLAP pada tab Alat kontekstual, yang merupakan bagian dari grup tab kontekstual Alat PivotTable. Pilih perintah OLAP Offline (Gbr. 9.8).

Kotak dialog Pengaturan Kubus Data OLAP Offline akan muncul. Klik tombol Buat File Data Offline. Anda telah memulai Wisaya Buat File Kubus Data. Klik tombol Next untuk melanjutkan prosedur.

Pertama, Anda perlu menentukan dimensi dan level yang akan disertakan dalam kubus data. Di kotak dialog, Anda harus memilih data yang akan diimpor dari database OLAP. Idenya adalah untuk menentukan hanya dimensi yang diperlukan setelah komputer terputus dari jaringan lokal. Semakin banyak dimensi yang Anda tentukan, semakin ukuran yang lebih besar akan memiliki kubus data offline.

Klik tombol Next untuk melanjutkan ke kotak dialog berikutnya dari wizard. Ini memberi Anda kemampuan untuk menentukan anggota atau elemen data yang tidak akan disertakan dalam kubus. Secara khusus, Anda tidak memerlukan pengukuran Jumlah Perpanjangan Penjualan Internet, sehingga tidak akan dicentang dalam daftar. Kotak centang yang dikosongkan menunjukkan bahwa item yang ditentukan tidak akan diimpor dan menggunakan ruang ekstra di hard drive lokal.

Pada langkah terakhir, tentukan lokasi dan nama kubus data. Dalam kasus kami, file kubus akan diberi nama MyOfflineCube.cub dan akan ditempatkan di folder Work.

File kubus data memiliki ekstensi .anak

Setelah beberapa saat, Excel menyimpan kubus data offline di folder yang ditentukan. Untuk mengujinya, klik dua kali pada file, yang secara otomatis akan menghasilkan buku kerja Excel yang berisi PivotTable yang terkait dengan kubus data yang dipilih. Setelah dibuat, Anda dapat mendistribusikan kubus data offline ke semua pengguna yang tertarik yang bekerja dalam mode LAN offline.

Setelah terhubung ke jaringan lokal, Anda dapat membuka file kubus data offline dan memperbaruinya, serta tabel data terkait. Prinsip utama mengatakan bahwa kubus data offline hanya digunakan untuk bekerja ketika jaringan lokal terputus, tetapi harus diperbarui setelah koneksi dipulihkan. Mencoba memperbarui kubus data luring setelah sambungan terputus akan gagal.

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

  • Apa itu kubus OLAP?
  • Apa itu 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 mendeskripsikan ruang data diskrit multidimensi.

kubus adalah struktur data multidimensi dari mana pengguna analis dapat meminta informasi. Kubus dibuat dari fakta dan dimensi.

Data- ini adalah data tentang objek dan peristiwa di perusahaan yang akan dianalisis. Fakta dari tipe yang sama membentuk ukuran. Ukuran adalah jenis nilai dalam sel kubus.

pengukuran adalah elemen data tempat analisis fakta dilakukan. Kumpulan elemen semacam itu membentuk atribut dimensi (misalnya, hari dalam seminggu dapat membentuk atribut dimensi "waktu"). Dalam tugas analisis bisnis perusahaan komersial dimensi sering berupa kategori seperti "waktu", "penjualan", "produk", "pelanggan", "karyawan", "lokasi geografis". Dimensi paling sering adalah struktur hierarkis yang merupakan kategori logis yang dengannya pengguna dapat menganalisis data aktual. Setiap hierarki dapat memiliki satu atau lebih level. Jadi hierarki dimensi "letak geografis" dapat mencakup tingkatan: "negara - wilayah - kota". Dalam hierarki waktu, misalnya, urutan level berikut dapat dibedakan: Sebuah dimensi dapat memiliki beberapa hierarki (dalam hal ini, setiap hierarki dari satu dimensi harus memiliki atribut kunci yang sama dari tabel dimensi).

Kubus dapat berisi data aktual dari satu atau lebih tabel fakta, dan paling sering berisi beberapa dimensi. Setiap kubus tertentu biasanya memiliki subjek analisis arah tertentu.

Gambar 1 menunjukkan contoh kubus yang dirancang untuk menganalisis penjualan produk minyak oleh perusahaan tertentu berdasarkan wilayah. Diberikan kubus memiliki tiga dimensi (waktu, produk dan wilayah) dan satu ukuran (volume penjualan dinyatakan dalam moneter). Nilai ukuran disimpan dalam sel (sel) kubus yang sesuai. Setiap sel secara unik diidentifikasi oleh satu set anggota dari masing-masing dimensi, yang disebut tupel. Misalnya, sel yang terletak di pojok kiri bawah kubus (berisi nilai $98399) diberikan oleh tuple [Juli 2005, Far East, Diesel]. Di sini nilai $98399 menunjukkan volume penjualan (dalam satuan moneter) solar di Timur Jauh pada Juli 2005.

Perhatikan juga bahwa beberapa sel tidak berisi nilai apa pun: sel ini kosong karena tabel fakta tidak berisi data untuknya.

Beras. 1. Cube dengan informasi tentang 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 data ringkasan yang telah dihitung sebelumnya yang disebut agregasi(agregasi). Itu. kubus mencakup ruang data yang lebih besar dari yang sebenarnya - ada poin yang logis dan dihitung di dalamnya. Fungsi agregat 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 titik asal. 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 (dihasilkan secara otomatis) hanya berisi satu elemen - Semua ("Semua"). Untuk fungsi agregasi sederhana seperti penjumlahan, Semua elemen setara dengan jumlah nilai semua elemen dalam ruang aktual dari dimensi yang diberikan.

Konsep penting dalam model data multidimensi adalah subruang, atau subkubus. Subkubus adalah bagian dari total ruang kubus dalam bentuk beberapa figur multidimensi di dalam kubus. Karena ruang multidimensi sebuah kubus adalah diskrit dan dibatasi, subkubusnya juga diskrit dan dibatasi.

Operasi pada kubus OLAP

Operasi berikut dapat dilakukan pada kubus OLAP:

  • mengiris;
  • rotasi;
  • konsolidasi;
  • detail.
mengiris(Gambar 2) adalah kasus khusus dari subkubus. Ini adalah prosedur untuk membentuk subset dari array 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 berkembang dari waktu ke waktu hanya di wilayah tertentu, yaitu di Ural, Anda perlu memperbaiki dimensi "Barang" pada elemen "Ural" dan mengekstrak subset (subkubus) yang sesuai dari 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 penukaran baris dan kolom tabel. Selain itu, memutar kubus data berarti memindahkan dimensi non-tabel ke lokasi dimensi yang ada di halaman yang ditampilkan, dan sebaliknya.

    Saya sudah cukup lama menjadi penghuni Habr, tetapi saya belum pernah membaca artikel dengan topik kubus multidimensi, OLAP dan MDX, meskipun topiknya sangat menarik dan semakin relevan setiap hari.
    Bukan rahasia lagi bahwa dalam waktu singkat pengembangan database, akuntansi elektronik, dan sistem online, banyak data yang terkumpul. Sekarang, analisis arsip yang lengkap juga menarik, dan mungkin merupakan upaya untuk memprediksi situasi untuk model serupa di masa mendatang.
    Di sisi lain, perusahaan besar, bahkan dalam beberapa tahun, bulan atau bahkan minggu, dapat mengumpulkan data dalam jumlah besar sehingga bahkan analisis dasar mereka memerlukan pendekatan luar biasa dan persyaratan perangkat keras yang ketat. Ini dapat berupa sistem pemrosesan transaksi perbankan, agen stok, operator telepon, dll.
    Saya pikir semua orang sangat menyadari 2 pendekatan berbeda untuk membangun desain basis data: OLTP dan OLAP. Pendekatan pertama (Pemrosesan Transaksi Online - pemrosesan transaksi waktu nyata) dirancang untuk pengumpulan data waktu nyata yang efisien, sedangkan yang kedua (Pemrosesan Analitik Online - pemrosesan analitik waktu nyata) ditujukan khusus untuk pengambilan sampel dan pemrosesan data dengan cara yang paling efisien. jalan.

    Mari kita lihat fitur utama kubus OLAP modern dan tugas apa yang diselesaikannya (berdasarkan Analysis Services 2005/2008):

    • akses data cepat
    • preagregasi
    • hirarki
    • bekerja dengan waktu
    • bahasa akses data multidimensi
    • KPI (Indikator Kinerja Utama)
    • penambangan tanggal
    • caching bertingkat
    • dukungan multibahasa
    Jadi, mari kita lihat kemungkinan kubus OLAP sedikit lebih detail.

    Sedikit lagi tentang kemungkinannya

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

    preagregasi
    Selain mengambil sampel data yang ada dengan cepat, ini juga memberikan kemampuan untuk melakukan pra-agregasi nilai "kemungkinan besar digunakan". Misalnya, jika kita memiliki catatan penjualan harian untuk produk tertentu, sistem Mungkin kami juga melakukan praagregasi jumlah penjualan bulanan dan triwulanan, yang berarti bahwa jika kami meminta data secara bulanan atau triwulanan, sistem akan langsung memberikan hasilnya kepada kami. Mengapa preagregasi tidak selalu terjadi - karena secara teoritis kemungkinan kombinasi barang/waktu/dll. jumlahnya bisa sangat banyak, yang berarti Anda harus memiliki aturan yang jelas untuk elemen mana agregasi akan dibangun dan mana yang tidak. Secara umum, topik untuk mempertimbangkan aturan-aturan ini dan desain agregasi yang sebenarnya cukup luas dan membutuhkan artikel tersendiri.

    Hirarki
    Wajar jika menganalisis data dan membuat laporan akhir, ada kebutuhan untuk mempertimbangkan fakta bahwa bulan terdiri dari hari, dan mereka sendiri membentuk kuartal, dan kota termasuk dalam wilayah, yang pada gilirannya merupakan bagian dari wilayah atau negara. . Kabar baiknya adalah bahwa kubus OLAP awalnya melihat data dalam bentuk hierarki dan hubungan dengan dimensi lain dari entitas yang sama, sehingga membuat dan menggunakan hierarki dalam kubus sangatlah mudah.

    Bekerja dengan waktu
    Karena analisis data terutama dilakukan dalam interval waktu, waktulah yang diberi perhatian khusus 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 Tahun Ke Date, Month To Date ( periode dari awal tahun / bulan hingga tanggal saat ini), Periode Paralel (pada hari atau bulan yang sama, tetapi pada tahun terakhir), dll.

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

    Indikator Kinerja Utama (KPI)
    Indikator Kinerja Utama adalah sistem evaluasi keuangan dan non-keuangan yang membantu organisasi menentukan pencapaian tujuan strategis. Indikator kinerja utama dapat dengan mudah ditentukan dalam sistem OLAP dan digunakan dalam laporan.

    Penambangan tanggal
    Penambangan data(Data Mining) - sebenarnya, identifikasi pola atau hubungan tersembunyi antara variabel dalam kumpulan data besar.
    Istilah bahasa Inggris "Data Mining" tidak memiliki terjemahan yang jelas ke dalam bahasa Rusia (penambangan data, penambangan data, penetrasi informasi, ekstraksi data / informasi), oleh karena itu, dalam banyak kasus digunakan dalam bahasa aslinya. Terjemahan tidak langsung yang paling berhasil adalah istilah "penambangan data" (DIA). Namun, ini adalah topik terpisah yang tidak kalah menarik untuk dipertimbangkan.

    Caching bertingkat
    Sebenarnya, untuk memastikan kecepatan akses data tertinggi, selain struktur data yang rumit dan praagregasi, sistem OLAP mendukung caching multi-level. Selain menyimpan kueri sederhana, bagian data yang dibaca dari penyimpanan, nilai gabungan, dan nilai terhitung juga disimpan dalam cache. Jadi, semakin lama Anda bekerja dengan kubus OLAP, semakin cepat ia mulai bekerja. Ada juga konsep "pemanasan cache" - operasi yang mempersiapkan sistem OLAP untuk bekerja dengan laporan, kueri, atau semuanya secara bersamaan.

    Dukungan multibahasa
    Ya ya ya. Minimal, Analysis Services 2005/2008 (namun Enterprise Edition) secara native mendukung multibahasa. Cukup menyediakan terjemahan parameter string data Anda, dan klien yang telah menentukan bahasanya akan menerima data lokal.

    kubus multidimensi

    Jadi apa kubus multidimensi ini?
    Bayangkan sebuah ruang 3 dimensi, yang memiliki sumbu Waktu, Barang, dan Pembeli.
    Titik di ruang seperti itu akan menetapkan fakta bahwa salah satu pembeli membeli produk tertentu di bulan tertentu.

    Nyatanya, bidang (atau kumpulan semua titik tersebut) akan menjadi kubus, dan, karenanya, Waktu, Barang, dan Pembeli akan menjadi dimensinya.
    Sedikit lebih sulit untuk membayangkan (dan menggambar) kubus empat dimensi atau lebih, tetapi esensinya tidak berubah, dan yang terpenting, untuk sistem OLAP tidak masalah berapa banyak dimensi yang akan Anda kerjakan (dalam batas wajar batas tentunya).

    Beberapa MDX

    Jadi, apa keindahan MDX - kemungkinan besar kita tidak perlu menjelaskan bagaimana kita ingin memilih data, tetapi Apa tepatnya kami ingin.
    Misalnya,
    PILIH
    ( . ) PADA KOLOM,
    ( ., . ) PADA BARIS
    DARI
    DI MANA (., .)

    Artinya saya ingin jumlah iPhone yang terjual pada bulan Juni dan Juli di Mozambik.
    Dengan melakukan itu, saya menjelaskan yang persis data yang saya inginkan dan Bagaimana Saya ingin melihat mereka dalam laporan.
    Cantik, bukan?

    Dan ini sedikit lebih rumit:

    DENGAN ANGGOTA AverageSpend AS
    . / .
    PILIH
    (Pengeluaran Rata-Rata) PADA KOLOM,
    ( .., .. ) PADA BARIS
    DARI
    DI MANA(.)

    * Kode sumber ini disorot dengan Penyorot Kode Sumber .

    Faktanya, pertama-tama kami 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.

    Bahasa itu sendiri sangat menarik untuk dipelajari dan digunakan, dan, mungkin, perlu banyak diskusi.

    Kesimpulan

    Nyatanya, artikel ini bahkan mencakup sangat sedikit konsep dasar, saya akan menyebutnya "pembuka" - kesempatan untuk menarik minat komunitas habr pada topik ini dan mengembangkannya lebih jauh. Mengenai pengembangan, ada ladang besar yang belum dibajak, dan saya akan dengan senang hati menjawab semua pertanyaan Anda.

    P.S. Ini adalah posting pertama saya tentang OLAP dan publikasi pertama di Habré - Saya akan sangat berterima kasih atas umpan balik yang membangun.
    memperbarui: Ditransfer ke SQL, saya akan mentransfer ke OLAP segera setelah mereka mengizinkan saya membuat blog baru.

    Tag: Tambahkan tag