Nega SQL NoSQL-ni urmoqda va bu ma'lumotlarning kelajagi uchun nimani anglatadi

Bir necha yil o'liklarga qoldirilgandan so'ng, bugungi kunda SQL qayta tiklanmoqda. Qanaqasiga? Va bu ma'lumotlar hamjamiyatiga qanday ta'sir qiladi?

(Hacker News-da yangilanish: # 1! Muhokamani shu erda o'qing.)

(Yangilanish 2: TimescaleDB ishga qabul qilinadi! Muhandislik, marketing va sotish sohalarida ochiq lavozimlar. Sizni qiziqtiradimi?)

SQL NoSQL-ning qorong'u kuchlariga qarshi kurashish uchun uyg'onadi

Hisoblashning boshidan beri biz doimiy ravishda o'sib boradigan ma'lumotlarni yig'amiz, doimiy ravishda ma'lumotlarni saqlash, qayta ishlash va tahlil qilish texnologiyamizdan ko'proq narsani so'raymiz. So'nggi o'n yillikda, dasturiy ta'minot ishlab chiquvchilari SQL-ni ma'lumotlarning o'sib boradigan hajmlari bilan o'lchab bo'lmaydigan qoldiq sifatida tashlab yuborishdi, bu esa NoSQL: MapReduce va Bigtable, Cassandra, MongoDB va boshqalarni ko'payishiga olib keldi.

Ammo bugungi kunda SQL qayta tiklanmoqda. Hozir barcha yirik bulut ta'minotchilari mashhur boshqariladigan relyatsion ma'lumotlar bazasi xizmatlarini taklif qilishadi: masalan, Amazon RDS, Google Cloud SQL, PostgreSQL uchun Azure ma'lumotlar bazasi (Azure shu yilda ishga tushirilgan). Amazon so'zlari bilan aytganda, uning PostgreSQL- va MySQL-ga mos keladigan Aurora ma'lumotlar bazasi mahsuloti "AWS tarixidagi eng tez rivojlanayotgan xizmat" bo'ldi. Hadoop va Spark ustidagi SQL interfeyslari rivojlanib borishda davom etmoqda. Va o'tgan oyda Kafka SQL-ni qo'llab-quvvatladi. O'zingizning kamtar mualliflaringiz SQL-ni to'liq qamrab oluvchi yangi vaqt seriyalari bazasini ishlab chiquvchilardir.

Ushbu postda biz mayatnik nima uchun SQL-ga qaytayotganini va bu ma'lumotlar muhandisligi va tahlilining kelajagi uchun nimani anglatishini ko'rib chiqamiz.

1-qism: Yangi umid

SQL nima uchun orqaga qaytishayotganini tushunish uchun avval nima uchun ishlab chiqilganligidan boshlaylik.

Barcha yaxshi voqealar singari biznikilar ham 70-yillarda boshlanadi

Bizning hikoyamiz nisbiy ma'lumotlar bazasi tug'ilgan 1970-yillarning boshlarida IBM Research-da boshlanadi. O'sha paytda so'rovlar tillari murakkab matematik mantiq va notatsiyaga asoslangan edi. Yaqinda ikkita kashf qilingan doktorantlar - Donald Chamblin va Raymond Boyzlar o'zaro bog'liqlik modelidan taassurot olishdi, ammo so'rovlar tili qabul qilish uchun eng katta muammo bo'lishini ko'rishdi. Ular yangi so'rovlar tilini (o'z so'zlari bilan) ishlab chiqishni maqsad qildilar: "foydalanuvchilar matematik yoki kompyuter dasturlarida rasmiy o'qimasdan foydalanishlari mumkin."

SQL (a, b) va SQL (c) dan oldin so'rovlar tillari (manba)

Bu haqda o'ylab ko'ring. Internetdan oldin, shaxsiy kompyuterdan oldin, C dasturlash tili birinchi marta dunyoga kelganida, ikkita yosh kompyuter olimlari "kompyuter sanoatining muvaffaqiyati ko'p jihatdan o'qitilgan kompyuterdan tashqari foydalanuvchilar sinfini rivojlantirishga bog'liq" deb tushunishdi. Ular ingliz tilida oson o'qiladigan va ma'lumotlar bazasi ma'muriyati va manipulyatsiyasini o'z ichiga oladigan so'rovlar tilini xohladilar.

Natijada SQL birinchi bo'lib 1974 yilda dunyoga keltirildi. Keyingi bir necha o'n yilliklar davomida SQL juda mashhur bo'lib chiqdi. Tizim R, Ingres, DB2, Oracle, SQL Server, PostgreSQL, MySQL (va boshqalar) kabi relyatsion ma'lumotlar bazalari dasturiy ta'minot sohasini egallaganligi sababli, SQL ma'lumotlar bazasi bilan ishlashda eng muhim til sifatida paydo bo'ldi va tobora ko'proq tillarga bo'lingan tilga aylandi. olomon va raqobatbardosh ekotizim.

(Afsuski, Raymond Boyce hech qachon SQL yutug'iga guvoh bo'la olmadi. U SQLning eng dastlabki taqdimotlaridan birini taqdim etganidan 1 oy o'tgach, 26 yoshida xotini va yosh qizini qoldirib miya anevrizmasidan vafot etdi.)

Bir muddat SQL o'z vazifasini muvaffaqiyatli bajara olganday tuyuldi. Ammo keyin Internet yuz berdi.

2-qism: NoSQL orqaga qaytadi

Chamberlin va Boyce SQL-ni ishlab chiqayotganlarida, ular Kaliforniyada ikkinchi guruh muhandislari keyinchalik SQL-ning mavjud bo'lishiga tahdid soladigan yangi tomurcuklanma loyihasi ustida ishlayotganliklarini anglamadilar. Ushbu loyiha ARPANET edi va 1969 yil 29 oktyabrda u tug'ilgan.

Bugungi kunda Internetga aylangan ARPANET-ning ba'zi ijodkorlari (manba)

Ammo 1989 yilda boshqa muhandis paydo bo'lib, Butunjahon Internet Tarmoqini ixtiro qilgangacha SQL juda yaxshi edi.

Internetni ixtiro qilgan fizik (manba)

Yovvoyi o't kabi Internet va Veb gullab-yashnadi va bizning dunyomizni son-sanoqsiz ravishda buzib tashladi, ammo ma'lumotlar hamjamiyati uchun u bitta bosh og'rig'ini keltirib chiqardi: ma'lumotlar avvalgiga qaraganda ancha yuqori hajm va tezlikda paydo bo'ladigan yangi manbalar.

Internet o'sishda va o'sishda davom etar ekan, dasturiy ta'minot hamjamiyati o'sha davrning nisbiy ma'lumotlar bazalari ushbu yangi yukni bajara olmasligini aniqladi. Kuchda bezovtalik yuz berdi, go'yo millionlab ma'lumotlar bazasi qichqirgan va to'satdan haddan tashqari ko'p bo'lgan.

Keyin ikkita yangi Internet giganti yangi yutuqlarga erishdilar va o'zlarining tarqalib bo'lmaydigan tizimlarini ishlab chiqdilar: Google tomonidan MapReduce (2004 yilda nashr etilgan) va Bigtable (2006 yilda nashr etilgan) va Amazon tomonidan Dynamo (2007 yilda nashr etilgan). Ushbu seminal hujjatlar, hatto Hadoop (MapReduce qog'ozi asosida, 2006), Kassandra (Bigtable va Dinamo qog'ozlari tomonidan ilhomlanib, 2008) va MongoDB (2009) kabi boshqa ma'lumotlar bazalariga olib keldi. Bular asosan noldan yozilgan yangi tizimlar bo'lganligi sababli, ular SQL-ni olib tashladilar va bu NoSQL harakatining kuchayishiga olib keldi.

Va bola dasturiy ta'minotni ishlab chiqaruvchilar hamjamiyati NoSQL-ni yutib yubordi, bu uni asl Google / Amazon mualliflari kutganidan ancha kengroq qabul qildi. Sababini tushunish oson: NoSQL yangi va yorqin edi; u miqyosi va kuchini va'da qildi; bu muhandislik muvaffaqiyatining tezkor yo'li kabi tuyuldi. Ammo keyin muammolar paydo bo'la boshladi.

Klassik dasturiy ta'minot ishlab chiqaruvchisi NoSQL tomonidan vasvasaga solingan. Bu yigit bo'lma.

Tez orada ishlab chiquvchilar SQL-ga ega bo'lish aslida cheklash ekanligini aniqladilar. NoSQL-ning har bir ma'lumotlar bazasi o'ziga xos so'rovlar tilini taklif qildi, ya'ni: ko'proq tillarni o'rganish (va hamkasblaringizga o'rgatish); ushbu ma'lumotlar bazalarini amaliy dasturlarga ulashda qiyinchiliklar kuchayib, bu tonna mo'rt elim kodiga olib keldi; kompaniyalardan o'z operatsion va vizual vositalarini ishlab chiqishni talab qiladigan uchinchi tomon ekotizimining etishmasligi.

Ushbu yangi NoSQL tillari ham to'liq ishlab chiqilmagan. Masalan, SQL-ga zarur funktsiyalarni qo'shish uchun (masalan, JOIN-lar) aloqador ma'lumotlar bazalarida yillar davomida ishlagan; NoSQL tillarining etukligi shuni anglatadiki, dastur darajasida ko'proq murakkablik talab etiladi. JOINlarning etishmasligi, shuningdek, ma'lumotlarning buzilishi va qat'iyligiga olib keladigan denormalizatsiya olib keldi.

Ba'zi NoSQL ma'lumotlar bazalari Cassandra-ning CQL singari o'zlarining "SQL-shunga o'xshash" so'rov tillarini qo'shdilar. Ammo bu ko'pincha muammoni yanada kuchaytirdi. Ko'proq odatiy bo'lgan narsa bilan o'xshash interfeysdan foydalanish aslida ko'proq aqliy ishqalanishni keltirib chiqardi: muhandislar nima qo'llab-quvvatlanishini va nima yo'qligini bilishmasdi.

SQL-ga o'xshash so'rov tillari Star Wars Holiday Special-ga o'xshaydi. Hech qanday taqlidni qabul qilmang. (Va har doim maxsus Yulduzli Urushlar Bayramidan qoching.)

Ba'zi odamlar NoSQL bilan bog'liq muammolarni erta boshlarida ko'rishgan (masalan, DeWitt va 2008 yilda Stonebraker). Vaqt o'tishi bilan, shaxsiy tajribaning mashaqqatli izlari tufayli, tobora ko'proq dasturiy ta'minot ishlab chiquvchilari ularga qo'shilishdi.

3-qism: SQL-ni qaytarish

Dastlab qorong'u tomonga aldanib, dasturiy ta'minot hamjamiyati yorug'likni ko'ra boshladi va SQL-ga qaytdi.

Birinchi bo'lib Hadoop (va keyinchalik Spark) tepasida SQL interfeyslari paydo bo'ldi, bu sohani NoSQL-ni "nafaqat SQL" ga (ha, yaxshi sinov) olib bordi.

Keyin NewSQL paydo bo'ldi: SQL-ni to'liq qamrab oladigan yangi kengaytiriladigan ma'lumotlar bazasi. H-Store (2008 yilda nashr etilgan) MIT va Braun tadqiqotchilari tomonidan OLTP miqyosidagi dastlabki ma'lumotlar bazalaridan biri bo'lgan. Google yana o'zining birinchi Spanner qog'ozi (2012 yilda nashr etilgan) va uning mualliflari MapReduce-ning asl nusxalarini o'z ichiga olgan SQL-interfeysli ma'lumotlar bazasini yaratdi va CockroachDB (2014) kabi boshqa kashshoflar qatoriga qo'shildi.

Shu bilan birga, PostgreSQL hamjamiyati jonlanishga kirishdi, JSON ma'lumotlar turi (2012) kabi tanqidiy yaxshilanishlarni qo'shdi va PostgreSQL 10-da yangi funktsiyalar potentsiali: bo'linish va ko'paytirish uchun mahalliy yordam, JSON uchun to'liq matnli qidiruv va boshqalar. (nashr shu yil oxiriga mo'ljallangan). CitusDB (2016) kabi boshqa kompaniyalar va haqiqatan ham sizning (TimescaleDB, bu yil chiqarilgan) ma'lumotlaringizni ixtisoslashtirilgan ish yuklari uchun PostgreSQL ko'lamini kengaytirishning yangi usullarini topdilar.

Aslida, TimescaleDB rivojlanayotgan sayohatimiz ushbu sohani bosib o'tgan yo'lni yaqindan aks ettiradi. TimescaleDB-ning dastlabki ichki versiyalarida bizning "ioQL" deb nomlangan SQL-ga o'xshash so'rovlar tili mavjud edi. Ha, biz ham qorong'u tomonni vasvasaga soldik: o'z so'rovimiz tilini yaratishda o'zimizni kuchli his qildik. Ammo bu oson yo'l kabi tuyulgan bo'lsa-da, tez orada biz ko'proq ish qilishimiz kerakligini angladik: masalan, sintaksisni hal qilish, turli xil ulagichlar o'rnatish, foydalanuvchilarni o'qitish va boshqalar. Shuningdek, biz doimo so'rovlarga to'g'ri sintaktikani qidirib topdik. biz o'zimiz yozgan so'rovlar tili uchun allaqachon SQL-da ifoda eta olamiz!

Bir kuni biz o'zimizning so'rov tilini yaratish ma'nosiz ekanligini angladik. Kalit SQL-ni o'z ichiga olishi kerak edi. Va bu biz qabul qilgan eng yaxshi dizayn qarorlaridan biri edi. Bir zumda butunlay yangi dunyo ochildi. Bugungi kunda biz 5 oylik ma'lumotlar bazasi bo'lishiga qaramay, bizning foydalanuvchilarimiz bizni ishlab chiqarishda foydalanishi va barcha ajoyib narsalarni qutidan chiqarib olishlari mumkin: vizualizatsiya vositalari (Tableau), keng tarqalgan ORMlarga ulagichlar, turli xil vositalar va zaxira variantlari , onlayn darsliklar va sintaksis tushuntirishlarning ko'pligi va boshqalar.

Ammo buning uchun bizning so'zimizni olma. Google-ni oling.

Google o'n yildan ortiq vaqtdan beri aniq ma'lumotlar muhandisligi va infratuzilmasining etakchi pog'onasida. Ularning qilayotgan ishlariga diqqat bilan qarash kerak.

To'rt oy oldin chiqarilgan Google-ning ikkinchi yirik Spanner qog'ozini ko'rib chiqing (Spanner: SQL tizimi bo'lib, 2017 yil may) va bu bizning mustaqil topilmalarimizga yordam berishini bilib olasiz.

Masalan, Google Bigtable-ning ustida qurishni boshladi, ammo keyin SQL-ning yo'qligi muammolar keltirib chiqardi (biznikidan pastdagi barcha tirnoqlarga urg'u berilgan):

"Ushbu tizimlar ma'lumotlar bazasi tizimining ba'zi afzalliklarini taqdim etgan bo'lsa-da, ularda dasturiy ta'minot ishlab chiqaruvchilari tayanadigan ko'plab an'anaviy ma'lumotlar bazasi xususiyatlari yo'q edi. Asosiy misol - bu so'rovlarning mustahkam tili, demak ishlab chiquvchilar o'z dasturlarida ma'lumotlarni qayta ishlash va birlashtirish uchun murakkab kod yozishlari kerak edi. Natijada, biz Spanner-ni to'liq xususiyatli SQL tizimiga aylantirishga qaror qildik va so'rov bajarilishi Spanner-ning boshqa arxitektura xususiyatlari (masalan, mustahkamlik va global replikatsiya) bilan uzviy bog'langan. "

Keyinchalik hujjatda ular NoSQL-dan SQL-ga o'tish asoslarini olishadi:

Spanner-ning asl APIsi individual va intervallangan jadvallarni qidirish va diapazonlarni qidirish uchun NoSQL usullarini taqdim etdi. NoSQL usullari Spanner-ni ishga tushirish uchun oddiy yo'lni ta'minlagan va sodda olish stsenariylarida foydali bo'lishda davom etar ekan, SQL ma'lumotlarga kirishning yanada murakkab naqshlarini ifoda etishda va ma'lumotlarni hisoblashda turtki berishda muhim qo'shimcha qiymat berdi.

Shuningdek, hujjatda SQL-ning qabul qilinishi Spanner-da to'xtamasligi, ammo aslida Google-ning qolgan qismida tarqalganligi, bugungi kunda bir nechta tizimlar keng tarqalgan SQL lahjasini ishlatadigan joy:

Spanner-ning SQL dvigateli "Standard SQL" deb nomlangan keng tarqalgan SQL dialektiga ega, Google-da F1 va Dremel kabi ichki tizimlar (boshqalar qatorida) va BigQuery kabi tashqi tizimlar ...
Google ichidagi foydalanuvchilar uchun bu tizimlarda ishlash to'sig'ini kamaytiradi. Spanner ma'lumotlar bazasiga qarshi SQL yozadigan dasturchi yoki ma'lumotlar tahlilchisi, ularning tushunchasini Dremelga sintaksisdagi nozik farqlar, NULL ishlov berish va boshqalar haqida qayg'urmasdan etkazishi mumkin.

Ushbu yondashuvning muvaffaqiyati o'zi uchun gapiradi. Spanner allaqachon katta Google tizimlari, jumladan AdWords va Google Play uchun "haqiqat manbai" dir, "Potentsial Cloud mijozlari esa SQL-dan foydalanishga katta qiziqish bildirmoqda".

Google birinchi navbatda NoSQL harakatini boshlashga yordam berganligini hisobga olsak, bugungi kunda SQL-ni qamrab olgani juda diqqatga sazovordir. (Ba'zilarning hayron bo'lishicha: "Google yirik ma'lumot sanoatini 10 yil davomida soxta ma'lumot bilan yuborganmi?".)

Ma'lumot kelajagi uchun bu nimani anglatadi: SQL universal interfeys sifatida

Kompyuter tarmog'ida universal interfeysni tasvirlaydigan "tor bel" tushunchasi mavjud.

Ushbu g'oya asosiy muammoni hal qilish uchun paydo bo'ldi: har qanday tarmoqqa ulangan qurilmada, pastki qismida apparat qatlamlari va tepasida dasturiy ta'minot qatlamlari bo'lgan stekni tasavvur qiling. Turli xil tarmoq uskunalari mavjud bo'lishi mumkin; shunga o'xshash turli xil dasturlar va ilovalar mavjud bo'lishi mumkin. Uskuna bo'lishidan qat'i nazar, dasturiy ta'minot hali ham tarmoqqa ulana olishini ta'minlash uchun usul kerak. va dasturiy ta'minotdan qat'iy nazar, tarmoq uskunasi tarmoq so'rovlarini qanday bajarishni biladi.

Tarmoq universal interfeysi sifatida IP (manba)

Tarmoqda universal interfeysning rolini Internet-protokoli (IP) o'ynaydi, u mahalliy darajadagi tarmoq uchun mo'ljallangan quyi darajadagi tarmoq protokollari va yuqori darajadagi dastur va transport protokollari o'rtasida bog'lovchi qatlam vazifasini bajaradi. (Bu juda yaxshi tushuntirish.) Va (keng miqyosda tushuntirish bilan) ushbu universal interfeys kompyuterlarning lingua franki bo'lib, tarmoqlarni bir-biriga ulash, qurilmalar bir-biriga ulanishi va ushbu "tarmoqlar tarmog'i" bugungi kunda boy va xilma-xil Internetga aylanishiga imkon berdi.

Biz SQL ma'lumotlarni tahlil qilish uchun universal interfeysga aylanganiga ishonamiz.

Biz ma'lumotlar "dunyoning eng muhim manbai" ga aylanib borayotgan davrda yashayapmiz (The Economist, 2017 yil may). Natijada biz Kembriyadagi ixtisoslashtirilgan ma'lumotlar bazalarining portlashini (OLAP, vaqt seriyalari, hujjatlar, grafikalar va boshqalar), ma'lumotlarni qayta ishlash vositalarini (Hadoop, Spark, Flink), ma'lumot avtobuslarini (Kafka, RabbitMQ) va boshqalarni portlatganligini ko'rdik. uchinchi tomon ma'lumotlarini vizualizatsiya qilish vositalari (Tableau, Grafana, PowerBI, Superset), veb-ramkalar (Rayllar, Django) yoki shaxsiy ma'lumotlarga asoslangan ilovalar bo'lsin, ushbu ma'lumotlar infratuzilmasiga tayanishi kerak bo'lgan qo'shimcha dasturlar mavjud.

Tarmoq singari bizda ham murakkab ustun bor, pastki qismida infratuzilma va tepada ilovalar mavjud. Odatda, biz ushbu stakni ishlashi uchun juda ko'p yopishtiruvchi kodni yozamiz. Ammo elim kodi mo'rt bo'lishi mumkin: uni saqlash va unga rioya qilish kerak.

Bizga kerak bo'lgan narsa bu stekning qismlari bir-biri bilan aloqa qilishiga imkon beradigan interfeys. Ideal holda, ushbu sohada allaqachon standartlashtirilgan narsa. Minimal ishqalanish bilan har xil qatlamlarni almashtirishga imkon beradigan narsa.

Bu SQL kuchi. IP singari, SQL ham universal interfeys.

Ammo SQL aslida IP-dan ko'proq narsa. Chunki ma'lumotlar ham odamlar tomonidan tahlil qilinadi. Dastlab SQL yaratuvchilariga berilgan maqsadga muvofiq, SQL o'qilishi mumkin.

SQL mukammalmi? Yo'q, lekin bu bizning ko'pchiligimiz biladigan til. Tabiiy tilga yo'naltirilgan interfeys ustida ishlaydigan muhandislar allaqachon mavjud bo'lsa-da, o'sha tizimlar nima bilan bog'lanadi? SQL.

Shunday qilib, suyakning eng yuqori qismida yana bir qavat bor. Va bu qatlam biz.

SQL Qaytish

SQL qaytdi. NoSQL vositalarini birlashtirish uchun elim kodini yozish zerikarli emas. Ko'p sonli yangi tillarni o'rganish uchun ishchilarni qayta tayyorlash juda qiyin bo'lgani uchungina emas. Faqat standartlar yaxshi narsa bo'lishi mumkinligi uchun emas.

Ammo dunyo ma'lumotlar bilan to'ldirilganligi sababli. U bizni o'rab oladi, bog'laydi. Avvaliga biz uni qayta ishlash uchun insonning sezgi va hissiy asab tizimlariga suyanganmiz. Endi bizning dasturiy va apparat tizimlarimiz ham bizga yordam beradigan darajada aqlli bo'lmoqdalar. Dunyomizni yaxshiroq anglash uchun ko'proq va tobora ko'proq ma'lumot to'playotgan bo'lsak, ma'lumotlarni saqlash, qayta ishlash, tahlil qilish va vizualizatsiya qilish tizimlarimizning murakkabligi o'sishda davom etadi.

Master Data Scientist Yoda

Yoki biz mo'rt tizimlar va million interfeyslar dunyosida yashay olamiz. Yoki SQL-ni qabul qilishni davom ettirishimiz mumkin. Va kuchni muvozanatni tiklang.

Ushbu post yoqadimi va ko'proq o'rganishni xohlaysizmi?

Bizni bu erda O'rta O'rta Osiyoda kuzatib boring, GitHub-ni tekshiring, Slack hamjamiyatimizga qo'shiling va quyida hamjamiyatning pochta xabarlari ro'yxatiga yoziling. Biz ham ishga qabul qilamiz!

Ma'lumotlar bazalari tarixi haqida ko'proq bilishni istaganlar uchun o'qish tavsiya etiladi (kelajakdagi TimescaleDB Intro to ma'lumotlar bazasi sinfiga oid o'quv qo'llanma):

  • Yirik umumiy ma'lumotlar banklari uchun ma'lumotlarning nisbiy modeli (IBM Research, 1970)
  • SEQUEL: Strukturalangan ingliz tilidagi so'rovlar tili (IBM Research, 1974)
  • Tizim R: Ma'lumotlar bazasini boshqarishga nisbatan yondashuv (IBM Research, 1976)
  • MapReduce: Katta guruhlar bo'yicha ma'lumotlarni soddalashtirilgan qayta ishlash (Google, 2004)
  • Do'kon: ustunlarga yo'naltirilgan ma'lumotlar bazasi (MIT, boshqalar, 2005)
  • Bigtable: Strukturalangan ma'lumotlarni tarqatish uchun saqlash tizimi (Google, 2006)
  • Dynamo: Amazon'ning kalitlarni boyitadigan do'kon (Amazon, 2007)
  • MapReduce: Oldinga katta qadam (DeWitt, Stonebreaker, 2008)
  • H-Store: Yuqori unumdorlik bilan ishlangan, tarqatilgan asosiy operatsiyalarni qayta ishlash tizimi (MIT, Brown, boshqalar, 2008)
  • Uchqun: ishchi to'plam bilan klasterli hisoblash (UC Berkeley, 2010)
  • Spanner: Google-ning dunyo bo'ylab tarqalgan ma'lumotlar bazasi (Google, 2012)
  • SQL ning dastlabki tarixi (Chamberlin, 2012)
  • Internet qanday paydo bo'lgan (Hines, 2015)
  • Spanner: SQL tizimiga aylanish (Google, 2017)