Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Ushbu maqola mening o'rtadagi maqolamning tarjimasi - Data Lake bilan ishlashni boshlash, bu juda mashhur bo'lib chiqdi, ehtimol uning soddaligi tufayli. Shuning uchun, men uni rus tilida yozishga qaror qildim va ma'lumotlar bo'yicha mutaxassis bo'lmagan oddiy odamga ma'lumotlar ombori (DW) nima ekanligini va ma'lumotlar ko'li (Ma'lumotlar ko'li) nima ekanligini va ular qanday ekanligini tushunish uchun biroz qo'shishga qaror qildim. birga bo'ling.

Nima uchun ma'lumotlar ko'li haqida yozmoqchi edim? Men 10 yildan ortiq vaqt davomida ma'lumotlar va tahlillar bilan ishlayapman va hozir men Bostondagi Kembrijdagi Amazon Alexa AIda katta ma'lumotlar bilan ishlayapman, garchi men Vankuver orolidagi Viktoriyada yashayman va tez-tez Boston, Sietlga tashrif buyuraman. , va Vankuverda va ba'zan hatto Moskvada ham konferentsiyalarda gapiraman. Men ham vaqti-vaqti bilan yozaman, lekin men asosan ingliz tilida yozaman va allaqachon yozganman ba'zi kitoblar, Men ham Shimoliy Amerikadagi tahliliy tendentsiyalarni baham ko'rishim kerak va men ba'zan yozaman telegrammalar.

Men har doim ma'lumotlar omborlari bilan ishlaganman va 2015 yildan boshlab Amazon Web Services bilan yaqindan ishlay boshladim va odatda bulutli tahlillarga (AWS, Azure, GCP) o'tdim. Men 2007 yildan beri analitik echimlar evolyutsiyasini kuzatdim va hatto Teradata ma'lumotlar ombori sotuvchisida ishladim va uni Sberbankda amalga oshirdim va o'sha paytda Hadoop bilan Big Data paydo bo'ldi. Hamma saqlash davri o'tganini va endi hamma narsa Hadoopda ekanligini aytishni boshladi va keyin yana Data Lake haqida gapira boshladilar, endi ma'lumotlar omborining oxiri aniq keldi. Lekin baxtga (ehtimol, afsuski, Hadoop-ni o'rnatish orqali ko'p pul ishlab topganlar uchun) ma'lumotlar ombori yo'qolmadi.

Ushbu maqolada biz ma'lumotlar ko'li nima ekanligini ko'rib chiqamiz. Ushbu maqola ma'lumotlar omborlari bilan kam yoki umuman tajribasi bo'lmagan odamlar uchun mo'ljallangan.

Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Rasmda Bled ko'li, bu mening eng sevimli ko'llarimdan biri, garchi men u erda faqat bir marta bo'lgan bo'lsam ham, umrim davomida esladim. Ammo biz ko'lning boshqa turi - ma'lumotlar ko'li haqida gaplashamiz. Ehtimol, ko'pchiligingiz bu atama haqida bir necha bor eshitgansiz, ammo yana bitta ta'rif hech kimga zarar keltirmaydi.

Avvalo, ma'lumotlar ko'lining eng mashhur ta'riflari:

"Tashkilotdagi har qanday tashkilot tomonidan tahlil qilinishi mumkin bo'lgan barcha turdagi xom ma'lumotlarning fayl ombori" - Martin Fauler.

“Agar siz data-mart - bu tozalangan, qadoqlangan va qulay iste'mol qilish uchun qadoqlangan shisha suv, deb o'ylayotgan bo'lsangiz, u holda data ko'li o'zining tabiiy ko'rinishidagi ulkan suv omboridir. Foydalanuvchilar, men o'zim uchun suv yig'ishim, chuqur sho'ng'ish, kashf qilishim mumkin" - Jeyms Dikson.

Endi biz aniq bilamizki, ma'lumotlar ko'li analitika bilan bog'liq bo'lib, u bizga katta hajmdagi ma'lumotlarni asl ko'rinishida saqlashga imkon beradi va bizda ma'lumotlarga kerakli va qulay foydalanish imkoniyati mavjud.

Men ko'pincha narsalarni soddalashtirishni yaxshi ko'raman, agar murakkab atamani oddiy so'zlar bilan tushuntira olsam, u qanday ishlashini va nima uchun kerakligini o'zim tushunaman. Bir kuni men iPhone foto galereyasini aylanib o'tdim va men tushundim, bu haqiqiy ma'lumotlar ko'li, men hatto konferentsiyalar uchun slayd ham qildim:

Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Hammasi juda oddiy. Biz telefonda suratga olamiz, fotosurat telefonda saqlanadi va iCloud-ga (bulutli fayllarni saqlash) saqlanishi mumkin. Telefon shuningdek, fotosurat metama'lumotlarini to'playdi: ko'rsatilgan narsa, geo teg, vaqt. Natijada, biz iPhone-ning qulay interfeysidan foydalanib, fotosuratimizni topishimiz mumkin va biz hatto ko'rsatkichlarni ham ko'ramiz, masalan, olov so'zi bo'lgan fotosuratlarni qidirganimda, men olov tasviri bilan 3 ta fotosuratni topaman. Men uchun bu juda tez va aniq ishlaydigan Business Intelligence vositasiga o'xshaydi.

Va, albatta, biz xavfsizlik (avtorizatsiya va autentifikatsiya) haqida unutmasligimiz kerak, aks holda bizning ma'lumotlarimiz jamoat mulki bo'lib qolishi mumkin. Ishlab chiquvchilarning e'tiborsizligi va oddiy qoidalarga rioya qilmaslik tufayli ma'lumotlari ommaga ochiq bo'lgan yirik korporatsiyalar va startaplar haqida ko'plab yangiliklar mavjud.

Hatto shunday oddiy rasm ham ma'lumotlar ko'li nima ekanligini, uning an'anaviy ma'lumotlar omboridan farqlari va asosiy elementlarini tasavvur qilishga yordam beradi:

  1. Ma'lumotlar yuklanmoqda (Ishga tushirish) ma'lumotlar ko'lining asosiy komponentidir. Ma'lumotlar ma'lumotlar omboriga ikki yo'l bilan kirishi mumkin - to'plam (intervallarda yuklash) va oqim (ma'lumotlar oqimi).
  2. Fayl saqlash (Saqlash) Ma'lumotlar ko'lining asosiy komponentidir. Bizga saqlash qulay, o'ta ishonchli va arzon bo'lishi kerak edi. Masalan, AWS da bu S3.
  3. Katalog va qidiruv (Katalog va qidiruv) - biz ma'lumotlar botqog'idan qochishimiz uchun (bu biz barcha ma'lumotlarni bitta qoziqqa to'kib tashlaganimizda, keyin u bilan ishlashning iloji yo'q), biz ma'lumotlarni tasniflash uchun metadata qatlamini yaratishimiz kerak. foydalanuvchilar tahlil qilish uchun zarur bo'lgan ma'lumotlarni osongina topishlari uchun. Bundan tashqari, siz ElasticSearch kabi qo'shimcha qidiruv echimlaridan foydalanishingiz mumkin. Qidiruv foydalanuvchiga qulay interfeys orqali kerakli ma'lumotlarni topishga yordam beradi.
  4. ishlov berish (Jarayon) - bu bosqich ma'lumotlarni qayta ishlash va o'zgartirish uchun javobgardir. Biz ma'lumotlarni o'zgartirishimiz, tuzilishini o'zgartirishimiz, tozalashimiz va boshqa ko'p narsalarni qila olamiz.
  5. Xavfsizlik (Xavfsizlik) - Yechimning xavfsizlik dizayniga vaqt sarflash muhimdir. Masalan, saqlash, qayta ishlash va yuklash vaqtida ma'lumotlarni shifrlash. Autentifikatsiya va avtorizatsiya usullaridan foydalanish muhimdir. Nihoyat, audit vositasi kerak.

Amaliy nuqtai nazardan, biz ma'lumotlar ko'lini uchta atribut bilan tavsiflashimiz mumkin:

  1. Har qanday narsani yig'ing va saqlang — maʼlumotlar koʻli barcha maʼlumotlarni oʻz ichiga oladi, har qanday vaqt oraligʻidagi xom ishlov berilmagan maʼlumotlar ham, qayta ishlangan/tozalangan maʼlumotlar ham.
  2. Chuqur skanerlash — maʼlumotlar koʻli foydalanuvchilarga maʼlumotlarni oʻrganish va tahlil qilish imkonini beradi.
  3. Moslashuvchan kirish — Maʼlumotlar koʻli turli maʼlumotlar va turli stsenariylar uchun moslashuvchan kirishni taʼminlaydi.

Endi biz ma'lumotlar ombori va ma'lumotlar ko'li o'rtasidagi farq haqida gapirishimiz mumkin. Odatda odamlar so'rashadi:

  • Ma'lumotlar ombori haqida nima deyish mumkin?
  • Biz ma'lumotlar omborini ma'lumotlar ko'li bilan almashtiramizmi yoki uni kengaytiramizmi?
  • Hali ham ma'lumot ko'lisiz qilish mumkinmi?

Qisqasi, aniq javob yo'q. Hammasi aniq vaziyatga, jamoaning mahoratiga va byudjetga bog'liq. Masalan, ma'lumotlar omborini Oracle-dan AWS-ga ko'chirish va Amazon sho''ba korxonasi - Woot tomonidan ma'lumotlar ko'lini yaratish - Ma'lumotlar ko'li haqidagi hikoyamiz: Woot.com qanday qilib AWS-da serversiz ma'lumotlar ko'lini qurdi.

Boshqa tomondan, Snowflake sotuvchisining ta'kidlashicha, endi siz ma'lumotlar ko'li haqida o'ylashingiz shart emas, chunki ularning ma'lumotlar platformasi (2020 yilgacha u ma'lumotlar ombori edi) sizga ma'lumotlar ko'li va ma'lumotlar omborini birlashtirishga imkon beradi. Men Snowflake bilan ko'p ishlaganim yo'q va bu haqiqatan ham buni qila oladigan noyob mahsulot. Emissiyaning narxi boshqa masala.

Xulosa qilib aytadigan bo'lsak, mening shaxsiy fikrimcha, bizga hisobot berish uchun asosiy ma'lumotlar manbai sifatida hali ham ma'lumotlar ombori kerak va nima mos kelmasa, biz ma'lumotlar ko'lida saqlaymiz. Analitikaning butun roli biznes uchun qaror qabul qilish uchun qulay foydalanishni ta'minlashdir. Qanday bo'lmasin, biznes foydalanuvchilari ma'lumotlar ko'liga qaraganda ma'lumotlar ombori bilan samaraliroq ishlaydi, masalan Amazonda - Redshift (analitik ma'lumotlar ombori) va Redshift Spectrum/Athena (S3 da ma'lumotlar ko'li uchun SQL interfeysi) mavjud. Hive/Presto). Xuddi shu narsa boshqa zamonaviy analitik ma'lumotlar omborlariga ham tegishli.

Keling, odatiy ma'lumotlar ombori arxitekturasini ko'rib chiqaylik:

Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Bu klassik yechim. Bizda manba tizimlari bor, ETL/ELT yordamida biz ma'lumotlarni analitik ma'lumotlar omboriga nusxalaymiz va uni Business Intelligence yechimiga ulaymiz (mening eng sevimlisi Tableau, sizniki-chi?).

Ushbu yechim quyidagi kamchiliklarga ega:

  • ETL/ELT operatsiyalari vaqt va resurslarni talab qiladi.
  • Qoida tariqasida, analitik ma'lumotlar omborida ma'lumotlarni saqlash uchun xotira arzon emas (masalan, Redshift, BigQuery, Teradata), chunki biz butun klasterni sotib olishimiz kerak.
  • Biznes foydalanuvchilari tozalangan va tez-tez yig'ilgan ma'lumotlarga kirish huquqiga ega va xom ma'lumotlarga kirish imkoniga ega emas.

Albatta, barchasi sizning holatingizga bog'liq. Agar ma'lumotlar omboringiz bilan bog'liq muammolar bo'lmasa, sizga ma'lumotlar ko'li umuman kerak emas. Ammo bo'sh joy, quvvat yoki narx etishmasligi bilan bog'liq muammolar paydo bo'lganda, asosiy rol o'ynasa, siz ma'lumotlar ko'li variantini ko'rib chiqishingiz mumkin. Shuning uchun ma'lumotlar ko'li juda mashhur. Mana ma'lumotlar ko'li arxitekturasining namunasi:
Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?
Data lake yondashuvidan foydalanib, biz xom ma'lumotlarni ma'lumotlar ko'limizga (to'plam yoki oqim) yuklaymiz, keyin kerak bo'lganda ma'lumotlarni qayta ishlaymiz. Ma'lumotlar ko'li biznes foydalanuvchilariga o'zlarining ma'lumotlar transformatsiyasini (ETL/ELT) yaratish yoki Business Intelligence yechimlarida (kerakli drayver mavjud bo'lsa) ma'lumotlarni tahlil qilish imkonini beradi.

Har qanday tahliliy yechimning maqsadi biznes foydalanuvchilariga xizmat ko'rsatishdir. Shuning uchun biz doimo biznes talablariga muvofiq ishlashimiz kerak. (Amazonda bu tamoyillardan biri - orqaga qarab ishlash).

Ma'lumotlar ombori va ma'lumotlar ko'li bilan ishlagan holda, biz ikkala echimni solishtirishimiz mumkin:

Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Xulosa qilish mumkin bo'lgan asosiy xulosa shundaki, ma'lumotlar ombori ma'lumotlar ko'li bilan raqobatlashmaydi, balki uni to'ldiradi. Lekin sizning holatingizga nima to'g'ri kelishini o'zingiz hal qilasiz. Buni o'zingiz sinab ko'rish va to'g'ri xulosalar chiqarish har doim qiziqarli.

Men sizga data lake yondashuvidan foydalanishni boshlagan holatlardan birini ham aytib bermoqchiman. Hamma narsa juda ahamiyatsiz, men ELT vositasidan foydalanishga harakat qildim (bizda Matillion ETL bor edi) va Amazon Redshift, mening yechimim ishladi, lekin talablarga mos kelmadi.

Men veb-jurnallarni olishim, ularni o'zgartirishim va 2 ta holat bo'yicha ma'lumotlarni taqdim qilish uchun jamlashim kerak edi:

  1. Marketing jamoasi SEO uchun bot faoliyatini tahlil qilmoqchi edi
  2. IT veb-sayt ishlash ko'rsatkichlarini ko'rib chiqmoqchi edi

Juda oddiy, juda oddiy jurnallar. Mana bir misol:

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 
192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 
"GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 
arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067
"Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012"
1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-"

Bitta fayl 1-4 megabaytni tashkil etdi.

Ammo bitta qiyinchilik bor edi. Dunyo bo'ylab bizda 7 ta domen bor edi va bir kunda 7000 50 ming fayl yaratildi. Bu ko'proq hajm emas, faqat 4 gigabayt. Ammo bizning Redshift klasterimiz hajmi ham kichik edi (XNUMX tugun). Bitta faylni an'anaviy tarzda yuklash taxminan bir daqiqa davom etdi. Ya'ni, muammo yuzma-yuz hal etilmagan. Va men data lake yondashuvidan foydalanishga qaror qilganimda shunday bo'ldi. Yechim shunday ko'rinardi:

Bizga ma'lumot ko'li kerakmi? Ma'lumotlar ombori bilan nima qilish kerak?

Bu juda oddiy (ta'kidlashni istardimki, bulutda ishlashning afzalligi oddiylikdir). Men foydalanganman:

  • Hisoblash quvvati uchun AWS Elastic Map Reduce (Hadoop).
  • AWS S3 ma'lumotlarni shifrlash va kirishni cheklash qobiliyatiga ega fayllarni saqlash sifatida
  • InMemory hisoblash quvvati sifatida Spark va mantiq va ma'lumotlarni o'zgartirish uchun PySpark
  • Spark natijasida parket
  • AWS Glue Crawler yangi ma'lumotlar va bo'limlar haqida metadata yig'uvchi sifatida
  • Redshift Spectrum mavjud Redshift foydalanuvchilari uchun ma'lumotlar ko'liga SQL interfeysi sifatida

Eng kichik EMR+Spark klasteri 30 daqiqada barcha fayllar to‘plamini qayta ishladi. AWS uchun boshqa holatlar mavjud, ayniqsa Alexa bilan bog'liq bo'lgan ko'p ma'lumotlar mavjud.

Yaqinda men ma'lumotlar ko'lining kamchiliklaridan biri bu GDPR ekanligini bilib oldim. Muammo shundaki, mijoz uni o'chirishni so'rasa va ma'lumotlar fayllardan birida bo'lsa, biz ma'lumotlar bazasidagi kabi Data Manipulation Language va DELETE operatsiyasidan foydalana olmaymiz.

Umid qilamanki, ushbu maqola ma'lumotlar ombori va ma'lumotlar ko'li o'rtasidagi farqni aniqlab berdi. Agar siz qiziqsangiz, men o'zimning ko'proq maqolalarimni yoki o'qigan mutaxassislarning maqolalarini tarjima qilishim mumkin. Shuningdek, men ishlayotgan yechimlar va ularning arxitekturasi haqida gapirib bering.

Manba: www.habr.com

a Izoh qo'shish