7.7 Pemodelan data dan lapisan semantik
Tinjauan dan motivasi
Model data adalah keputusan tentang apa arti data Anda, dibuat sebelum Anda memutuskan di mana data itu tinggal. Ia menamai hal-hal yang diperhatikan bisnis Anda, atribut yang mendeskripsikannya, dan hubungan di antaranya. Penyimpanan, indeks, format berkas, dan mesin kueri datang belakangan. Urutan ini penting karena makna data Anda bertahan lebih lama daripada setiap teknologi yang Anda pakai untuk menyimpannya. Warehouse diganti, format tabel berubah, dan mesin kueri datang dan pergi, tetapi “pelanggan,” “pesanan,” dan “pengguna aktif” harus bermakna sama di semuanya, selama bertahun-tahun.
Bagi tim kecil, pemodelan sering implisit. Satu insinyur memegang seluruh skema di kepalanya, dan pemahaman bersama tentang “pendapatan” bertahan karena hanya ada tiga orang yang bisa berselisih. Pada skala organisasi pengembang besar, enterprise, dan lembaga pemerintah, keinformalan itu runtuh persis seperti yang dijelaskan di bab 7.1 (strategi dan tata kelola data). Puluhan tim membangun ratusan tabel, masing-masing dengan gagasannya sendiri tentang apa itu “sesi” atau kapan pengguna dihitung “aktif.” Dua dasbor menampilkan dua angka berbeda untuk minggu yang sama, dan rapat pimpinan berubah menjadi perdebatan tentang kueri siapa yang benar alih-alih apa yang dilakukan selanjutnya. Pemodelan buruk tidak mengumumkan dirinya. Ia muncul berbulan-bulan kemudian sebagai pekerjaan rekonsiliasi, audit gagal, dan keputusan yang dibuat atas angka yang tak dapat dipertahankan siapa pun.
Bab ini membahas melakukan pekerjaan itu dengan sengaja. Ia mencakup model konseptual, logis, dan fisik; pemodelan entity-relationship; kapan menormalisasi dan kapan mendenormalisasi; bagaimana pemodelan berbeda untuk beban kerja transaksional versus analitis; pemodelan dimensional dengan fakta dan dimensi; dan lapisan semantik yang menyimpan satu definisi teratur untuk setiap metrik bisnis. Imbalannya bukan keanggunan demi keanggunan. Melainkan bahwa “pengguna aktif” dan “pendapatan” bermakna satu hal di mana-mana, sehingga tim Anda dapat memercayai angka dan bergerak lebih cepat karenanya.
Lihat juga: bab 3.4 (arsitektur data dan penyimpanan), bab 7.3 (analitik dan business intelligence), dan bab 11.5 (indikator kinerja utama).
Prinsip utama
- Putuskan apa arti data sebelum memutuskan di mana ia tinggal.
- Modelkan di tiga tingkat: konseptual (bisnis), logis (struktur), fisik (implementasi).
- Normalisasi untuk melindungi kebenaran dalam sistem transaksional; denormalisasi dengan sengaja untuk kecepatan analitis.
- Cocokkan model dengan beban kerja: transaksi dan analitik punya kebutuhan berlawanan.
- Setiap metrik bisnis punya tepat satu definisi teratur, dan ia tinggal di lapisan semantik.
- Dimensi terkonformasi memungkinkan tim independen melakukan join dan membandingkan data dengan aman.
- Grain adalah keputusan desain yang Anda buat dengan sengaja, bukan kebetulan sebuah kueri.
- Model adalah aset hidup: namai dengan baik, dokumentasikan, dan jaga tetap dapat berevolusi.
Rekomendasi
Modelkan di tiga tingkat, berurutan
Bekerjalah dari makna ke luar. Mulailah dengan model konseptual: entitas yang diperhatikan bisnis Anda dan bagaimana mereka berhubungan, ditulis dalam bahasa sederhana yang dapat diperiksa pakar ranah. “Pelanggan melakukan banyak pesanan; pesanan berisi banyak butir baris; setiap butir baris merujuk satu produk.” Tanpa kunci, tanpa tipe, tanpa tabel dulu. Lalu bangun model logis yang menambah struktur: atribut, kunci primer dan asing, kardinalitas, dan kendala, masih independen dari basis data spesifik mana pun. Pemodelan entity-relationship adalah notasi standar di sini, dan diagram entity-relationship adalah artefak yang Anda tinjau bersama insinyur dan pemangku kepentingan bisnis. Baru kemudian hasilkan model fisik: tabel sebenarnya, kolom, tipe data, indeks, partisi, dan tata letak penyimpanan untuk mesin pilihan Anda. Melompat ke desain fisik adalah kesalahan pemodelan paling umum, karena ia memanggang pilihan teknologi hari ini ke dalam keputusan yang seharusnya bertahan lebih lama.
Normalisasi sistem transaksional, denormalisasi yang analitis dengan sengaja
Untuk sistem yang mencatat transaksi, pilih normalisasi basis data. Bentuk normal menghilangkan redundansi agar setiap fakta disimpan sekali, yang mencegah anomali pembaruan dan menjaga penulisan tetap benar ketika banyak pengguna mengubah data secara bersamaan. Ini bawaan yang tepat untuk pemrosesan transaksi online (OLTP), di mana kebenaran di bawah penulisan bersamaan lebih penting daripada kecepatan kueri analitis tunggal mana pun. Sistem analitis punya prioritas berlawanan. Mereka padat baca, memindai dan mengagregasi rentang besar, dan menggabungkan puluhan tabel ternormalisasi pada waktu kueri lambat dan sulit dinalar. Di sana Anda mendenormalisasi dengan sengaja, menyatukan atribut terkait agar kueri lebih sederhana dan cepat. Disiplinnya adalah mendenormalisasi dengan sengaja, dengan alasan terdokumentasi, alih-alih membiarkan redundansi merayap masuk secara tak sengaja. Bab 3.4 (arsitektur data dan penyimpanan) membahas mesin yang membuat setiap pola berkinerja.
Gunakan pemodelan dimensional untuk analitik
Untuk beban kerja analitis, adopsi pemodelan dimensional, pendekatan yang dipopulerkan Ralph Kimball. Anda membagi dunia menjadi fakta dan dimensi. Tabel fakta menyimpan pengukuran suatu proses bisnis: jumlah penjualan, durasi panggilan, kuantitas yang dikirim. Tabel dimensi menyimpan konteks deskriptif yang Anda filter dan kelompokkan: pelanggan, produk, toko, tanggal. Susun satu tabel fakta dikelilingi dimensinya dan Anda punya skema bintang, yang mudah dipahami analis dan cepat dikueri mesin. Normalisasi dimensi itu menjadi subtabel dan Anda mendapat skema snowflake, yang menghemat sebagian penyimpanan dengan biaya lebih banyak join dan kompleksitas; pilih bintang kecuali Anda punya alasan konkret. Untuk lingkungan sangat besar dan sangat teregulasi di mana kemampuan diaudit dan pelacakan sumber mendominasi, pendekatan data vault memodelkan hub, link, dan satelit untuk menangkap riwayat dan silsilah secara agresif, dengan biaya lebih banyak tabel dan kurva belajar lebih curam. Sebagian besar tim harus memulai dengan bintang ala Kimball dan meraih data vault hanya ketika persyaratan audit membenarkannya.
Tetapkan grain dan tangani dimensi yang berubah secara eksplisit
Sebelum menambah satu kolom pun ke tabel fakta, nyatakan grain-nya: persis apa yang diwakili satu baris. “Satu baris per butir baris pesanan.” “Satu baris per pengguna per hari.” Grain adalah fondasi model yang benar, karena setiap ukuran dan setiap dimensi entah cocok dengan grain itu atau tidak termasuk dalam tabel. Mencampur grain adalah cara Anda mendapat pendapatan terhitung ganda. Lalu putuskan bagaimana dimensi berubah seiring waktu. Pelanggan pindah ke kota baru; apakah Anda menimpa nilai lama, menyimpan riwayat penuh, atau melacak hanya nilai saat ini dan sebelumnya? Ini adalah pola standar slowly changing dimension, dan memilih salah berarti laporan historis Anda diam-diam menulis ulang masa lalu. Putuskan grain dan strategi perubahan di muka, tuliskan dalam dokumentasi model, dan pertahankan garisnya dalam tinjauan.
Bangun satu lapisan semantik sebagai definisi tunggal setiap metrik
Inilah rekomendasi yang membayar seluruh bab. Lapisan semantik berada di antara tabel fisik Anda dan setiap perkakas yang mengonsumsinya, dan ia menyimpan satu definisi teratur untuk setiap metrik bisnis. “Pengguna aktif” didefinisikan sekali, sebagai kode, dengan logika persisnya: peristiwa mana yang dihitung, dalam window apa, dengan mengecualikan akun internal mana. “Pendapatan” didefinisikan sekali, termasuk bagaimana pengembalian dana, diskon, dan konversi mata uang ditangani. Setiap dasbor, notebook, laporan, dan pekerjaan reverse-ETL membaca definisi itu alih-alih mengimplementasikannya ulang dalam kueri pesanan. Ketika definisi berubah, ia berubah di satu tempat dan setiap konsumen diperbarui bersama. Inilah mekanisme yang membuat definisi metrik teratur menjadi nyata alih-alih aspirasional, dan ia implementasi langsung dari apa yang diminta bab 11.5 (indikator kinerja utama). Perlakukan definisi metrik sebagai kode berversi dengan pemilik, tinjauan, dan uji, persis seperti yang diminta bab 7.1 agar Anda memperlakukan data sebagai produk.
Tetapkan konvensi, penamaan, dan dokumentasi
Konsistensi adalah fitur. Adopsi konvensi penamaan dan tegakkan: konvensi untuk nama tabel, konvensi untuk kunci, standar untuk kolom tanggal, aturan bagaimana Anda menandai fakta versus dimensi. Putuskan sekali apakah Anda memakai nama entitas tunggal atau jamak dan jangan pernah mencampur. Dokumentasikan setiap model di tempat orang yang memakainya akan mencari: makna setiap tabel, grain setiap fakta, definisi setiap metrik, dan pemilik masing-masing. Penamaan dan dokumentasi yang baik memungkinkan analis baru melayani diri sendiri alih-alih menginterupsi tim, dan memungkinkan auditor menelusuri angka dari dek dewan kembali ke sumbernya tanpa tur berpemandu.
Jaga model tetap dapat berevolusi
Model Anda akan berubah, jadi rancang untuk perubahan. Tambahkan kolom alih-alih menggunakan ulang yang ada. Pakai surrogate key agar perubahan pada natural key sistem sumber tidak merambat ke seluruh warehouse Anda. Versikan definisi metrik dan deprekasi dengan pemberitahuan alih-alih mengubahnya diam-diam di bawah dasbor yang sedang berjalan. Simpan transformasi dalam kontrol versi, teruji, dan ditinjau, agar perubahan pada arti “pengguna aktif” adalah pull request dengan diff dan penyetuju, bukan suntingan senyap di perkakas BI. Model yang tak dapat Anda evolusikan dengan aman menjadi model yang dihindari orang, dan definisi bayangan adalah cara satu sumber kebenaran mati.
Trade-off: kelebihan dan kekurangan
| Pendekatan | Kelebihan | Kekurangan | Paling cocok |
|---|---|---|---|
| Ternormalisasi (3NF) | Penulisan benar, tanpa redundansi, fleksibel | Join analitis lambat, kueri kompleks | Sistem OLTP dan operasional |
| Skema bintang (Kimball) | Cepat, intuitif, ramah analis | Sebagian redundansi, ETL untuk dipelihara | Sebagian besar analitik dan BI |
| Skema snowflake | Penyimpanan lebih sedikit, dimensi lebih bersih | Lebih banyak join, lebih kompleks | Dimensi besar yang diatur ketat |
| Data vault | Riwayat penuh, dapat diaudit, muatan gesit | Banyak tabel, kurva belajar curam | Sangat teregulasi, padat audit |
| Lapisan semantik di atas model | Satu definisi di mana-mana, agnostik perkakas | Pembangunan di muka, butuh kepemilikan | Organisasi multitim, multiperkakas |
Ketegangan sentralnya adalah kecepatan satu kueri melawan kebenaran dan fleksibilitas di seluruh properti. Normalisasi melindungi kebenaran dan membayarnya dengan kompleksitas kueri; model dimensional membeli kecepatan kueri dan kejelasan dan membayarnya dengan ETL dan sebagian redundansi yang dikelola. Tak ada pemenang universal, itulah mengapa Anda mencocokkan model dengan beban kerja alih-alih memilih favorit. Lapisan semantik menyelesaikan ketegangan kedua, antara banyak tim dan banyak perkakas, dengan membuat definisi metrik independen dari salah satunya. Kesalahannya adalah memperlakukan ini sebagai kubu ideologis. Organisasi sehat menjalankan sistem OLTP ternormalisasi, model analitis dimensional yang diberi makan darinya, dan satu lapisan semantik di atasnya, masing-masing mengerjakan apa yang baik dilakukannya.
Pertanyaan untuk didiskusikan dengan tim Anda
Ketika dua dasbor menampilkan angka berbeda untuk metrik yang sama, definisi siapa yang menang, dan di mana definisi itu secara fisik tinggal? Pertanyaan ini mengungkap apakah Anda benar-benar punya satu sumber kebenaran atau hanya percaya demikian. Di sebagian besar tim besar jawaban jujurnya bahwa “pengguna aktif” didefinisikan ulang di selusin kueri berbeda, dan pemenangnya adalah siapa pun yang berdebat paling keras dalam rapat. Bawa bukti nyata: pilih satu metrik, temukan setiap tempat ia dihitung, dan bandingkan logikanya baris demi baris. Anda hampir pasti akan menemukan perbedaan senyap tentang window, pengecualian, dan kasus tepi. Jawabannya harus mendorong keputusan membangun lapisan semantik di mana setiap metrik didefinisikan sekali, sebagai kode yang ditinjau, agar pertanyaannya berhenti tentang orang dan mulai tentang artefak berversi. Sampai definisi itu punya satu rumah fisik, setiap rekonsiliasi bersifat sementara.
Apa grain tabel fakta terpenting Anda, dan dapatkah semua orang di ruangan menyatakannya dengan cara yang sama? Grain adalah fondasi senyap yang ditelusuri sebagian besar kegagalan pemodelan. Jika separuh tim berkata “satu baris per pesanan” dan separuh lain “satu baris per butir baris,” Anda punya bug penghitungan ganda yang menunggu muncul di laporan pendapatan. Bawa tabel sebenarnya dan minta setiap orang mendeskripsikan satu baris dalam satu kalimat. Ketidaksepakatan di sini bukan masalah komunikasi yang dihaluskan; ia cacat desain untuk diperbaiki sebelum lebih banyak ukuran menumpuk di atasnya. Jawabannya harus dituliskan dalam dokumentasi model dan ditegakkan dalam tinjauan, karena begitu analis membangun kueri di atas grain ambigu, ambiguitas itu menyebar lebih cepat daripada yang dapat Anda koreksi.
Bagaimana model ini akan menyerap perubahan, dan apa yang terjadi pada laporan tahun lalu ketika definisi bergeser? Setiap model menghadapi sistem sumber yang berubah, aturan bisnis yang berubah, dan definisi metrik yang berubah, jadi pertanyaan sebenarnya adalah apakah perubahan adalah pull request terkendali atau suntingan senyap yang menulis ulang riwayat. Bawa contoh terbaru: metrik yang definisinya berubah, atau kunci sumber yang diganti nama, dan telusuri apa yang terjadi pada dasbor yang ada. Jika slowly changing dimension ditangani dengan menimpa, laporan historis Anda mungkin diam-diam mengubah nilai masa lalunya, yang merupakan masalah serius bagi siapa pun yang melakukan analisis tren atau pelaporan teregulasi. Jawabannya harus mendorong Anda ke surrogate key, definisi metrik berversi, strategi perubahan eksplisit, dan transformasi yang disimpan dalam kontrol versi dengan tinjauan. Model yang tak dapat diubah siapa pun dengan aman menjadi model yang ditinggalkan orang.
Dimensi mana yang harus bermakna sama di setiap tim, dan siapa yang akuntabel memiliki masing-masing? Dimensi terkonformasi memungkinkan pemasaran, keuangan, dan operasi melakukan join data dan mendapat jawaban sebanding, tetapi hanya ketika “pelanggan,” “produk,” “wilayah,” dan “tanggal” membawa satu definisi yang disepakati alih-alih salinan pribadi per tim. Tarikan yang bersaing adalah otonomi: setiap tim ingin memodelkan dunianya sendiri dengan lajunya sendiri, dan memaksakan dimensi bersama memperlambat mereka dalam jangka pendek sambil terbayar di seluruh properti. Bawa dua atau tiga dimensi yang muncul di paling banyak laporan lintas tim, daftarkan setiap versi masing-masing yang ada hari ini, dan lihat seberapa jauh kunci dan atributnya benar-benar menyimpang. Namai pemilik untuk setiap dimensi terkonformasi, karena dimensi bersama tanpa pemilik melayang kembali menjadi salinan pribadi dalam satu kuartal. Dalam pengaturan enterprise dan pemerintah, di mana angka dari satu departemen dibandingkan dengan departemen lain di depan umum, dimensi yang tak terkonformasi adalah beda antara perbandingan jujur dan kepalsuan tak disengaja, jadi putuskan sejak awal dimensi mana yang diatur secara terpusat dan mana yang tetap lokal.
Di mana batas antara sistem transaksional ternormalisasi dan model analitis terdenormalisasi Anda, dan apakah setiap denormalisasi adalah keputusan yang disengaja? Mencocokkan model dengan beban kerja adalah disiplin inti, namun batas itu persis tempat ia mengabur: analis mendenormalisasi tabel warehouse demi kecepatan, insinyur menormalisasi tabel pelaporan karena kebiasaan, dan tak ada yang menuliskan sisi mana yang menjadi milik setiap pilihan. Ketegangannya adalah kecepatan satu kueri melawan kebenaran dan fleksibilitas di seluruh bagian, dan orang yang masuk akal mendarat berbeda tergantung apakah mereka memiliki penulisan atau pembacaan. Bawa kueri analitis paling lambat dan tabel transaksional paling diperebutkan Anda, dan tanyakan untuk setiap kolom redundan apakah redundansinya dipilih dengan alasan terdokumentasi atau merayap masuk tak sengaja. Tujuannya adalah aturan tertulis kapan denormalisasi diizinkan dan siapa yang menyetujui, bukan kontes kemurnian. Untuk organisasi besar atau teregulasi, batas ini juga menentukan di mana data pribadi digandakan, sehingga denormalisasi tak terdokumentasi adalah pertanyaan kinerja sekaligus paparan tata kelola data yang suatu hari harus dijelaskan seseorang kepada auditor.
Haruskah Anda membangun atau membeli lapisan semantik, dan siapa yang akuntabel menjaga setiap definisi metrik tetap mutakhir setelah ia ada? Lapisan semantik hanya memberi satu sumber kebenaran ketika dimiliki dan dipelihara, jadi pilihan perkakas kurang penting daripada jawaban atas siapa yang meninjau perubahan pada arti “pendapatan” dan siapa yang bertanggung jawab ketika definisi menjadi basi. Pertimbangan yang bersaing nyata: membangun memberi Anda kendali dan cocok dengan tumpukan Anda tetapi menambah beban rekayasa, sementara membeli perkakas metrik lebih cepat namun berisiko lock-in dan bahasa definisi yang tidak sepenuhnya Anda kendalikan. Bawa segelintir metrik berisiko tertinggi Anda, perkakas yang mengonsumsinya hari ini, dan pembacaan jujur apakah ada yang saat ini memiliki definisi itu atau mereka sekadar ada. Putuskan sejak awal apakah definisi hidup sebagai kode berversi dengan pemilik bernama dan uji, karena lapisan semantik yang tak dipelihara siapa pun membusuk menjadi definisi tersebar yang justru hendak digantikannya. Dalam pelaporan enterprise dan pemerintah, di mana metrik pada dasbor publik harus dapat ditelusuri ke definisi terdokumentasi dan ditinjau, kepemilikan itu dan kemampuan membuktikan silsilah angka mengubah lapisan semantik dari kemudahan menjadi kontrol yang dapat diaudit.
Lensa sektor
Startup. Pemodelan bisa menunggu, tetapi definisi tidak. Dengan dua insinyur dan tanpa runway untuk membangun warehouse, taruh satu lapisan semantik kecil di perkakas transformasi Anda dan definisikan dua atau tiga metrik yang benar-benar diawasi dewan Anda, “pengguna aktif” dan “pendapatan,” sekali sebagai kode teruji. Lewati data vault dan skema dimensional rumit; bintang tipis dan segelintir definisi teratur membeli angka konsisten tanpa memperlambat pengiriman. Imbalannya adalah persiapan dewan berhenti menjadi perdebatan tentang kueri siapa yang benar.
Bisnis kecil. Anda tidak punya pemodel data dan tak punya anggaran untuk platform metrik, jadi bersandarlah pada definisi bawaan perkakas yang sudah Anda jalankan dan tuliskan beberapa yang penting dalam satu dokumen bersama yang dibaca semua orang. Pilih membeli analitik yang tertanam dalam perangkat lunak Anda yang ada daripada mendirikan warehouse yang tak dapat Anda isi stafnya. Di mana Anda memodelkan, jaga sederhana dan namai konsisten, karena orang yang memelihara tahun depan mungkin yang tak dapat mengingat mengapa “pelanggan” bermakna dua hal. Konsistensi lebih murah daripada rekonsiliasi.
Enterprise. Masalahnya banyak tim dan banyak perkakas melayang ke definisi pribadi, jadi berinvestasilah pada dimensi terkonformasi, satu lapisan semantik teratur, dan definisi metrik yang disimpan sebagai kode berversi dengan pemilik dan tinjauan. Bakukan penamaan, deklarasi grain, dan strategi slowly changing dimension di seluruh properti agar angka di satu perkakas cocok dengan angka yang sama di perkakas lain. Perlakukan lapisan semantik sebagai produk dengan peta jalan dan tim pemilik, dan ukur seberapa banyak waktu rekonsiliasi yang dihilangkannya. Imbalannya angka tepercaya di seluruh bisnis dan audit yang menelusuri dengan bersih dari dek dewan kembali ke sumber.
Pemerintah. Transparansi dan kebandingan lintas lembaga membentuk pekerjaan: data referensi kanonis untuk geografi dan demografi, definisi indikator inti yang teratur, dan metodologi terbitan dengan rilis berversi agar publik dapat menelusuri angka mana pun ke definisi terdokumentasi. Aturan pengadaan dapat mewajibkan model dan definisi Anda tetap portabel dan netral vendor, jadi hindari lapisan semantik yang terkunci pada satu perkakas proprietari. Biarkan lembaga individual bebas memodelkan data operasionalnya sambil menyesuaikan diri dengan dimensi bersama untuk apa pun yang dilaporkan secara nasional. Indikator terbitan yang tak dapat ditelusuri ke definisi berversi adalah kegagalan akuntabilitas sebanyak kegagalan data.
Contoh
Startup. Perusahaan Seri A punya tiga definisi “pengguna aktif” yang hidup di tiga tempat: perkakas analitik produk, spreadsheet keuangan, dan dek investor. Angkanya tak pernah cocok, dan setiap persiapan dewan menjadi kerepotan. Dua insinyur memperkenalkan lapisan semantik kecil di perkakas transformasi mereka, mendefinisikan “pengguna aktif” dan “monthly recurring revenue” sekali sebagai kode teruji, dengan window dan pengecualian persis dituliskan. Setiap dasbor kini membaca definisi itu. Perdebatan persiapan dewan lenyap, dan onboarding analis baru berubah dari seminggu pengetahuan suku menjadi membaca satu model terdokumentasi. Ini terhubung langsung dengan disiplin yang dijelaskan di bab 7.4 (analitik produk dan eksperimen), di mana definisi “aktif” yang stabil membuat hasil eksperimen sebanding.
Enterprise. Pengecer global menjalankan lima perkakas business-intelligence di pemasaran, keuangan, rantai pasok, merchandising, dan toko, dan masing-masing menciptakan ulang “margin kotor” sedikit berbeda. Mereka membangun satu lapisan semantik di atas warehouse ala Kimball dengan dimensi terkonformasi, sehingga “produk,” “toko,” dan “tanggal” bermakna sama di setiap tabel fakta dan setiap perkakas. Setiap metrik didefinisikan sekali dan dikonsumsi di mana-mana. Rapat rekonsiliasi yang dulu memakan berhari-hari per kuartal sebagian besar lenyap, dan ketika keuangan mengubah bagaimana pengembalian memengaruhi margin, perubahan merambat ke kelima perkakas sekaligus. Dimensi terkonformasi memungkinkan tim independen melakukan join data mereka dengan percaya diri alih-alih curiga.
Pemerintah. Sebuah pemerintah nasional membutuhkan pelaporan sebanding lintas lembaga kesehatan, ketenagakerjaan, dan pendidikan, masing-masing secara historis mendefinisikan “rumah tangga,” “wilayah,” dan “pekerjaan” dengan caranya sendiri. Badan lintas lembaga menetapkan data referensi bersama dan definisi standar: tabel dimensi kanonis untuk geografi dan demografi, dan definisi teratur indikator inti, diterbitkan dengan metodologi dan rilis berversi. Lembaga individual memodelkan data operasional mereka sendiri tetapi menyesuaikan diri dengan dimensi dan definisi bersama untuk apa pun yang dilaporkan secara nasional. Hasilnya angka dari satu lembaga dapat dibandingkan dengan lembaga lain secara jujur, dan publik dapat menelusuri indikator terbitan mana pun ke definisi terdokumentasi, mendukung kewajiban transparansi yang dibahas di bab 7.1.
Kasus bisnis: motivasi, ROI, dan TCO
Imbal hasil pemodelan baik dan lapisan semantik sebagian besar adalah waktu yang dipulihkan dan galat yang dihindari. Di banyak organisasi, analis menghabiskan sebagian besar waktu mencari data, merekonsiliasi angka bertentangan, dan membangun ulang definisi yang sudah ditulis orang lain. Definisi tunggal teratur untuk setiap metrik mengubah pekerjaan berulang itu menjadi investasi sekali jalan. Ia juga menghilangkan satu kategori kegagalan mahal: angka salah di dek dewan, angka keliru lapor yang memicu temuan audit, proyek rekonsiliasi selama kuartal yang ada hanya karena dua tim mendefinisikan “pendapatan” berbeda. Ketika definisi hidup di satu tempat yang ditinjau, kegagalan itu sebagian besar berhenti terjadi.
Biayanya nyata dan layak dinamai. Anda berinvestasi di muka pada pemodelan konseptual dan logis, membangun dan mengisi lapisan semantik, dan kepemilikan berkelanjutan yang menjaga definisi tetap mutakhir. Total biaya kepemilikan (TCO) mencakup perkakas, waktu pemodelan dan rekayasa analitik, dan tata kelola untuk menjaga model dari penyimpangan. Timbang terhadap biaya tidak melakukannya, yang lebih besar tetapi tersembunyi: ia tampak sebagai pipeline terduplikasi, analis sebagai mesin rekonsiliasi manusia, dan eksekutif mengambil keputusan yakin atas angka yang tak dapat dipertahankan siapa pun. Ajukan kasus kepada pimpinan dalam istilah mereka. Satu definisi tepercaya untuk setiap metrik memungkinkan mereka membandingkan di seluruh bisnis, memercayai dasbor, dan menjawab regulator tanpa latihan kebakaran. Mulailah di mana nyeri rekonsiliasi terburuk, definisikan beberapa metrik itu sekali, dan biarkan waktu yang dipulihkan mendanai sisanya.
Anti-pola dan jebakan
- Melompat langsung ke tabel fisik, memanggang teknologi hari ini ke dalam keputusan yang seharusnya bertahan lebih lama.
- Mendefinisikan metrik yang sama secara independen di setiap dasbor, sehingga tak ada dua angka yang sepakat.
- Membiarkan grain tak dinyatakan, lalu menemukan ukuran terhitung ganda di laporan pendapatan.
- Mendenormalisasi tabel analitis secara tak sengaja alih-alih lewat keputusan terdokumentasi.
- Menormalisasi warehouse analitis sampai setiap kueri adalah join dua belas tabel yang tak dipahami siapa pun.
- Menangani slowly changing dimension dengan menimpa, sehingga laporan historis diam-diam menulis ulang masa lalu.
- Memakai natural key di mana-mana, sehingga perubahan kunci sistem sumber merambat ke seluruh warehouse.
- Membangun lapisan semantik tanpa pemilik, sehingga definisi menyimpang dan kepercayaan terkikis.
- Memperlakukan model sebagai selesai saat peluncuran alih-alih aset hidup yang harus tetap dapat berevolusi.
Model kematangan
- Tingkat 1, Memulai: Pemodelan implisit dan reaktif. Tabel dirancang fisik-dulu oleh siapa pun yang membutuhkannya. Metrik didefinisikan ulang di setiap laporan, dan angka rutin bertentangan. Grain tak terdokumentasi, dan tak ada yang memiliki definisi.
- Tingkat 2, Mengembangkan: Sebagian tabel analitis mengikuti pola dimensional, dan beberapa metrik kunci punya definisi tertulis, tetapi hidup di wiki dan tidak ditegakkan. Konvensi penamaan ada di atas kertas. Praktik bervariasi tim demi tim, dan rekonsiliasi masih sering dan manual.
- Tingkat 3, Membakukan: Model konseptual, logis, dan fisik berbeda dan ditinjau. Lapisan semantik mendefinisikan metrik inti sekali, sebagai kode berversi dengan pemilik. Dimensi terkonformasi memungkinkan tim melakukan join dengan aman. Grain dan strategi slowly changing dimension didokumentasikan dan ditegakkan dalam tinjauan di seluruh organisasi.
- Tingkat 4, Mengelola: Properti model diukur terhadap garis dasar. Anda melacak cakupan definisi metrik (pangsa metrik terlapor yang dilayani lapisan semantik), jumlah definisi duplikat atau bayangan yang masih dipakai, jam rekonsiliasi per kuartal, dan laju cacat grain dan silsilah yang tertangkap dalam tinjauan versus di produksi. Perubahan definisi mengalir melalui pull request ditinjau dengan uji, dan kesegaran, tingkat lolos uji, dan drift diawasi di dasbor. Ketika metrik menyimpang atau dimensi berhenti terkonformasi, pengukuran memunculkannya sebelum rapat dewan melakukannya.
- Tingkat 5, Mengorkestrasi: Setiap metrik penting punya satu definisi teratur yang dikonsumsi semua perkakas dan tim, dan lapisan semantik terintegrasi dengan analitik, eksperimen, dan pelaporan teregulasi. Model dapat berevolusi secara desain dan terus diperhalus; definisi dipercaya di seluruh organisasi; pekerjaan rekonsiliasi sebagian besar telah lenyap. Organisasi rutin mendeprekasi, menentukan ulang cakupan, dan mengonformasi dimensi baru seiring bisnis berubah, menyeimbangkan ulang properti model sebagai aset adaptif.
Gagasan untuk didiskusikan
- Pilih tiga metrik terpenting Anda. Berapa definisi berbeda masing-masing yang ada di seluruh perkakas Anda hari ini, dan apa yang dibutuhkan untuk meruntuhkannya menjadi satu?
- Di mana grain yang tak dinyatakan menyebabkan galat pelaporan nyata, dan berapa lama untuk menyadarinya?
- Dimensi Anda yang mana harus dikonformasi lintas tim lebih dulu, dan siapa yang memilikinya?
- Apakah definisi metrik Anda ada dalam kontrol versi dengan tinjauan, atau dapat disunting diam-diam di dalam perkakas BI?
- Kapan terakhir slowly changing dimension menulis ulang riwayat Anda tanpa ada yang menyadari, dan bagaimana Anda menangkapnya lain kali?
- Jika Anda mengganti mesin warehouse besok, berapa banyak makna model Anda yang akan selamat dari perpindahan itu?
Poin-poin utama
- Pemodelan data adalah memutuskan apa arti data, dan makna itu bertahan lebih lama daripada setiap teknologi penyimpanan yang Anda pilih.
- Modelkan di tiga tingkat berurutan: konseptual, lalu logis, lalu fisik.
- Normalisasi sistem transaksional demi kebenaran; denormalisasi yang analitis dengan sengaja demi kecepatan.
- Pakai pemodelan dimensional dengan fakta, dimensi, dan grain yang dinyatakan untuk analitik.
- Bangun satu lapisan semantik agar setiap metrik bisnis punya definisi teratur tunggal di mana-mana.
- Dimensi terkonformasi memungkinkan tim independen melakukan join dan membandingkan data dengan percaya diri.
- Namai dengan baik, dokumentasikan, pakai surrogate key, dan versikan definisi agar model tetap dapat berevolusi.
Referensi dan bacaan lanjutan
- Ralph Kimball dan Margy Ross, The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modelling.
- Bill Inmon, Building the Data Warehouse.
- Dan Linstedt dan Michael Olschimke, Building a Scalable Data Warehouse with Data Vault 2.0.
- Peter Chen, “The Entity-Relationship Model: Toward a Unified View of Data,” ACM Transactions on Database Systems.
- E. F. Codd, “A Relational Model of Data for Large Shared Data Banks,” Communications of the ACM.
- C. J. Date, An Introduction to Database Systems.
- Lars Rönnbäck dan rekan, tulisan tentang anchor modelling.
- DAMA International, DAMA-DMBOK: Data Management Body of Knowledge.