Mükəmməl bir məlumat anbarı necə yaradılır

Vacib saxlama texnikaları asanlaşdırıldı

Məlumat anbarı: sadələşdirilmiş

Zahirən, son illərdə məlumatların toplanması, saxlanması və saxlanması baxımından çox şey dəyişmiş kimi görünür. NoSQL, böyük məlumatlar, qrafika və axın texnologiyalarının tətbiqi və tətbiqi mənzərəni dəyişmiş kimi görünür, amma yenə də bəzi əsas məsələlər var.

İndiki rolumda Amazon Redshift-dən məlumat anbarı üçün istifadə edirik. Oracle ilə ənənəvi bir məlumat anbarı və ya Hadoop'ta bir məlumat gölü inşa etməyimizdən asılı olmayaraq, əsas memarlıq eyni qalır.

Əsas memarlıq bəzi hazırlama sahələrindən və quruluş, mənimsəmə və hesabat adlanan üç ayrı sahədən (Redshift istifadə edirsinizsə sxemlər) ibarətdir. Bu yazıda hər detala nəzər salacağam.

Ön emal

Təəssüf ki, bütün məlumatlar bərabər yaradılmasa da, hələ də məlumatlardır və buna görə dəyərlidir.

Xarici məlumatların mürəkkəbliyinin öhdəsindən gəlmək üçün bəzi əvvəlcədən işləmə, xüsusən də bir sıra fərqli mənbələrdən toplandıqda demək olar ki, əvəzolunmazdır. Əvvəlcədən işləmə mərhələsinin əsas məqsədi məlumatları məlumat anbarı tərəfindən yüklənə bilən ardıcıl bir formata gətirməkdir.

Buraya daxildir, lakin bunlarla məhdudlaşmır:

  • Excel elektron cədvəllərini CSV-yə çevirin
  • JSON məlumatlarını təhlil etmək (biz hər bir obyekti bir sütunda təkrar emal etməyə və Redshift-in təhlil etməsinə icazə veririk, ancaq vaxtından əvvəl də təhlil edə bilərsiniz)
  • Zədələnmiş və ya zədələnmiş məlumat sənədlərinin təmizlənməsi

İşi bitirdikdən sonra, bu sənədləri məlumat anbarına yükləmək üçün hazırlaya biləcəyiniz mərkəzi bir yerə ehtiyacınız olacaq.

Bir nümunə bütün sənədləri Amazon S3 vedrəsinə qoymaq ola bilər. Çox yönlü, ucuzdur və bir çox texnologiyaya inteqrasiya olunur. Məlumat anbarı üçün Redshift istifadə edirsinizsə, onunla da yaxşı birləşir.

Səhnələşdirmə

Səhnələşdirmə sahəsi hər hansı bir məlumat anbarı üçün çörək və yağdır.

Yaxşı bir məlumat anbarı bir çox fərqli mənbədən alınan məlumatları istifadə edir. Hər bir məlumat mənbəyinin öz nüansları, üslubları və adlandırma qaydaları var.

Səhnələşdirmə sahəsi bunların hamısını gətirdiyiniz yerdir - ehtimal ki, əvvəlcədən işləndikdən sonra qoyduğunuz yerdən (lakin həmişə deyil) - və ardıcıllıqla daha da işlənənə qədər müvəqqəti saxlayın.

Həqiqi anbardakı yükləmə sahəsi kimi. Yükün boşaldıldığı yer materialların və ya məhsulların son təyinatı və ya son forması deyil. Sadəcə bir dayanacaqdır.
Hannes Egler'in Unsplash'daki şəkli

İlk dəfə anbarın hüdudlarında olan bütün məlumatları daha da işlənməyə və modelləşdirməyə hazır saxlaya bilərsiniz.

Şəxsən mən hiss edirəm ki, səhnələşdirmə sahəsindəki məlumatlar xam məlumatlara mümkün qədər yaxın olmalıdır (yenə də bəzi dəyişikliklər etməlisiniz, amma bu xam məlumatlarda heç nə dəyişməməlidir) Hətta orijinal sütun və cədvəl adlarını saxlamaq istəyə bilərsiniz. Bu, mənbədəki problemləri araşdırarkən və ya hesabat verərkən geri izləməyi asanlaşdırır.

Səhnə sahəsinə də müvəqqəti kimi baxmaq lazımdır.

Seçilmiş bir müddət ərzində məlumatları hazırlama sahəsində saxlamalı və sonra təmizləməlisiniz. Məsələn, uğursuz yüklər və ya digər araşdırmalar üçün məlumat pəncərəsinin bir ayını davam etdirə bilərsiniz.

Bu, məlumatların xam hesab edilməli olduğu son nöqtədir. Bu andan etibarən məlumatlar, məlumat anbarının standartlarına uyğun olmalıdır.

usta

Əsas ərazidə daxil olan məlumatlar həqiqi bir forma alır.

Əsas şemada uyğun olaraq adlandırılmış düzgün modelləşdirilmiş cədvəllər olmalıdır. Sütun adları da məlumat növləri ilə düzəldilməlidir.

Bu, cədvəllərin nə olduğunu və içərisində nə olduğunu anlamağı asanlaşdırır və istifadəni yaxşılaşdırır. Tıpkı köhnə məktəbdəki sənədləri arxivləşdirmək kimi.

Drew Beamer'in Unsplash üzərindəki fotosu

Verilənləri səhnələşdirmədən masterə köçürərkən aşağıdakıları nəzərdən keçirin:

  • Bütün tarix formatlarının və saat zonalarının eyni standartlaşdırılması (mümkünsə)
  • Lazım gələrsə, rəqəmləri daha az onluq yerlərinə qədər yuvarlaqlaşdırın
  • İpləri təmizləyin ki, ehtimala qarşı həssaslıq yaradın və ya aparıcı və arxadakı boşluqları götürün
  • Eyni formatda ünvanların standartlaşdırılması
  • Veriləri birdən çox sütuna bölün və ya JSON-dan çıxarın
Bağlı sütunların sütun adlarının uyğunlaşmasına bir az vaxt sərf edərdim.

Məsələn, bəzi veb qeydlərindən istifadəçi məlumatlarınız varsa, istifadəçi məlumatlarınız MongoDB-da və bəlkə də istifadəçilərlə bağlı bəzi reklam məlumatlarında saxlanacaqdır. İnşallah bu mənbələrin hamısında bənzərsiz bir istifadəçi identifikatoru olacaqdır. Ancaq hamısı buna eyni şey deyə bilməz.

Sütun adlarının standartlaşdırılması sizin və ya digər məlumat istifadəçilərinizin hansı məlumatları bir-birinə bağlaya biləcəyini intuitiv şəkildə başa düşməsini asanlaşdırır.

Bir məlumat mühəndisi olaraq bu son məqsəddir.

İş dilinə uyğun olaraq dəqiq bir şəkildə adlandırılan və aşağıda araşdırıla və ya hesablana bilməsi üçün düzgün şəkildə modelləşdirilən məlumatlarınız var.

hesabat

Əsas iş görülür. Hazırladıq və qeyd etdik, modelləşdirdik və təmizlədik. İndi parlaq yeni məlumatlarımızı dünyaya təqdim etmək istəyirik. Hesabat səviyyəsinin işə yaradığı yer budur.

Oracle-da sıra əsaslı bir məlumat anbarı istifadə edirsinizsə, bu nöqtədə bəzi məlumat cədvəlləri və məlumat marşrutları yarada bilərsiniz. Bu, hər hansı bir layiqli hesabat alətini üstünə qoya biləcəyiniz üçün hazırlamaq üçün hazır olduğunuz üçün hesabat təbəqəsi üçün olduqca məqbul bir istifadə vəziyyətidir.

Bununla birlikdə, bu ənənəvi məlumat anbar texnikalarından bəziləri Oracle kimi sıra əsaslı saxlama həllərinin səmərəliliyini nəzərə alır. Bu sistemlər məlumatları səmərəli birləşdirə bilər, lakin bir çox sütunlu sətirlər səmərəsizdir, əsasən sorğu üçün bir neçə sütun tələb olunsa da, bütün sətri idarə etməli olan sətir əsaslı yanaşma səbəbindən.

Amazon Redshift kimi sütun əsaslı bir məlumat anbarı istifadə edirsinizsə, yanaşma tərziniz fərqli olmalıdır. Redshift geniş cədvəlləri nəzərdən keçirmir və ölçüləri və həqiqətləri bir cədvəllə normallaşdırmaq çox ölçülü olmaqdan üstündür.

Redshift istifadə edərkən məlumatlarınızı bu şəkildə modelləşdirmək aşağıdakı üstünlüklərə malikdir:

  • Redshift bir çox birləşmə ilə müqayisədə geniş masalarla xoşbəxt olduğu üçün səmərəliliyin artırılması.
  • Məlumat modelləri ilə tanış olmayan son istifadəçilər və ya analitiklər üçün istifadə rahatlığı, çünki bağlantılarla mübarizə aparmaq məcburiyyətində deyil.
  • Sorğu daha asandır, çünki bildirilən müəssisə üçün lazım olan bütün məlumatlar bir yerdədir.
Micheile Henderson'un Unsplash'daki şəkli

Məsələn, deyək ki, müştəriləriniz haqqında danışmaq istəyirsiniz. Müştəri cədvəliniz, sifariş cədvəliniz, marketinq qeyd cədvəliniz və cızırtılı təmiz master səviyyənizdə bəzi veb analitik məlumatlarınız var.

Redshift-də hesabat səviyyəsində müştərilər cədvəli yaradacaqsınız. Qeyd tarixi, bəlkə də poçt kodu və s. Kimi bütün standart müştəri məlumatları (hesabat üçün lazım olmadığı üçün şəxsi məlumatlarınızı çıxmaqla) bunlarda saxlanılır.

Bir mobil cihazda qeydiyyatdan keçib keçmədiyinizi və ya smartfon tətbiqetmənizi və ya masa üstü tətbiqinizi quraşdırdığınızı öyrənə bilərsiniz.

Sifariş məlumatlarını birləşdirə və aşağıdakı kimi bəzi sütunlar yarada bilərsiniz: B. indiyə qədər olan ümumi məbləğ, ilk sifarişin tarixi, son sifarişin tarixi və sifarişlərin sayı.

Marketinq cədvəlində eyni şeyi edər və göndərilən, açılan, tıklanan və s.-lərin sayı kimi müvafiq faktlar yaradardınız.

Veb analitikasında veb saytına son ziyarət tarixini, üstünlük verilən cihazı, ən çox istifadə olunan cihaz növünü (masa üstü, mobil telefon və s.) Daxil edə bilərsiniz.

Siz şəkil almaq.

Carlos Muza tərəfindən Unsplash-da

Bu, bütün müvafiq ölçülərə və həqiqətlərə sahib olan super geniş bir müştəri cədvəli ilə nəticələnir. Analitikləriniz, əldə etmə nisbətlərindən, müştəri bazanızdakı fərqli cihaz istifadələrindən, yüksək dəyərli müştərilərdən (və aralarındakı hər hansı oxşar cəhətlərdən), müştəri tələfindən və saxlamadan və daha çox şeydən hər şeyi hesablamaq üçün istifadə edə bilər.

Bütün bunlar bir yerdən, heç bir qısayol olmadan və lazım olduğu kimi qaldırmanın çox hissəsi, məlumat anbarının gücü ilə.

Məlumat anbarları ümumiyyətlə ucuz deyildir və sözün əsl mənasında məlumatları sındırmaq üçün hazırlanmışdır. Ondan maksimum yararlanın və burada bacardığınız qədər çox şey edin. Daha az güclü hesabat serverinin ağır işi görməsini gözləmək əvəzinə analitiklərinizi fikirlərdən azad edin.

Analitiklərdən kifayət qədər asan və sürətli etsəniz, istifadə etməyə hazır olduqlarını görə bilərsiniz.

Toplam

Bu sadə yanaşmanı təqib etsəniz, inanıram ki, nəinki genişləndirilməsi, eyni zamanda başa düşülməsi asan olan tamamilə işləyən bir məlumat anbarı qura bilərsiniz.

Səhnələşdirmə, Master və Raporlama səviyyələrinizi məntiqi elementlər kimi düşünmək istəyə bilərsiniz. Bu sizin üçün işləyə bilər. Onları fiziki cəhətdən ayrı tutmağı üstün tuturam, çünki nəinki daha təmiz hiss edir, eyni zamanda son istifadəçilərin istifadə edə biləcəyi və əvvəlki vəziyyətlərdən görə bildiklərini də məhdudlaşdıra bilərsiniz.