Günümüzde yazılım geliştirmedeki en büyük trendlerden biri PostgreSQL'in fiili veritabanı standardı olarak ortaya çıkmasıdır. PostgreSQL'in Her Şey için nasıl kullanılacağına dair birkaç blog yazısı vardı, ancak bunun neden olduğu (ve daha da önemlisi bunun neden önemli olduğu) hakkında henüz bir yazı yok.
Şimdiye kadar!
01 PostgreSQL Fiili Veritabanı Standardı Haline Geliyor
02 Her Şey Bilgisayara Dönüşüyor
03 PostgreSQL'in Dönüşü
04 Kendinizi Özgürleştirin, Geleceği İnşa Edin, PostgreSQL'i Kucaklayın
05 Zaman Ölçeği “Zaman Serisi için PostgreSQL” Olarak Başladı
06 Zaman Serisinin Ötesine Genişletilmiş Zaman Ölçeği
07 Zaman Ölçeği artık “PostgreSQL Güçlü Hale Getirildi”
08 Coda: Yoda mı?
Geçtiğimiz birkaç ay boyunca "Her Şey için PostgreSQL" geliştiriciler arasında büyüyen bir savaş çığlığı haline geldi:
“PostgreSQL yalnızca basit bir ilişkisel veritabanı değil; tüm veritabanı alanını içine alma potansiyeline sahip bir veri yönetimi çerçevesidir. "Postgres'i Her Şey İçin Kullanma" eğilimi artık birkaç elit ekiple sınırlı değil, ana akım en iyi uygulama haline geliyor."
(
"Yığınınızı basitleştirmenin ve hareketli parçaları azaltmanın, geliştirmeyi hızlandırmanın, riski azaltmanın ve girişiminizde daha fazla özellik sunmanın bir yolu" Her şey için Postgres kullanın." Postgres, aralarında Kafka, RabbitMQ, Mongo ve Redis'in de bulunduğu birçok arka uç teknolojisinin (milyonlarca kullanıcıya kadar) yerini alabilir."
(
(
"Postgres'i ilk duyduğumda (MySQL'in kesinlikle hakim olduğu bir dönemde), bana "matematik meraklıları tarafından oluşturulan veritabanı" olarak tanımlandı ve sonra aklıma şu geldi: evet, bunlar tam da yapmak istediğiniz insanlar veritabanınız.”
(
Kaynak )
“Olağanüstü bir geri dönüş yaptı. Artık NoSQL öldüğüne ve MySQL'in sahibi Oracle olduğuna göre başka ne var?"
( Kaynak )
“Postgres yalnızca ilişkisel bir veritabanı değil. Bu bir yaşam biçimi.”
( Kaynak )
Sağlam temelinin yanı sıra yerel özellikler ve uzantılar aracılığıyla sağladığı çok yönlülük sayesinde geliştiriciler artık Her Şey için PostgreSQL'i kullanabilir ve karmaşık, kırılgan veri mimarilerini doğrudan basitlikle değiştirebilir:
Bu, PostgreSQL'in geçen yıl profesyonel geliştiriciler (60.369 katılımcı) arasında en popüler veritabanı sıralamasında MySQL'den neden en üst sırada yer aldığını açıklamaya yardımcı olabilir:
Geçtiğimiz yıl hangi veritabanı ortamlarında kapsamlı geliştirme çalışmaları yaptınız ve gelecek yıl hangilerinde çalışmak istiyorsunuz? Yanıt verenlerin %49'undan fazlası PostgreSQL'i yanıtladı. (
Bu sonuçlar 2023 Yığın Taşması Geliştirici Anketinden alınmıştır. Zamanın geneline bakarsanız, son birkaç yılda PostgreSQL'in benimsenmesinde istikrarlı bir artış olduğunu görebilirsiniz:
PostgreSQL, 2020-2022 yılları arasında Stack Overflow Geliştirici Anketi katılımcılarının ikinci favori veritabanı olsa da kullanımı sürekli arttı. Kaynak:
Bu sadece küçük girişimler ve hobiciler arasındaki bir trend değil. Aslında PostgreSQL kullanımı her ölçekteki kuruluşta artıyor:
Şirket büyüklüğüne göre PostgreSQL kullanım yüzdesi. (
Timescale'de bu trend bizim için yeni değil. Neredeyse on yıldır PostgreSQL'e inanıyoruz. İşte bu yüzden işimizi PostgreSQL üzerine kurduk, bu yüzden biz de
PostgreSQL'in her şey için nasıl kullanılacağına dair birkaç blog yazısı vardı, ancak bunun neden olduğu (ve daha da önemlisi bunun neden önemli olduğu) hakkında henüz hiçbiri yok.
Şimdiye kadar.
Ancak bunun neden olduğunu anlamak için daha temel bir eğilimi ve bu eğilimin insan gerçekliğinin temel doğasını nasıl değiştirdiğini anlamamız gerekiyor.
Arabalarımız, evlerimiz, şehirlerimiz, çiftliklerimiz, fabrikalarımız, para birimlerimiz, eşyalarımız gibi her şey bir bilgisayara dönüşüyor. Biz de dijitalleşiyoruz. Her yıl kendi kimliğimizi ve eylemlerimizi daha çok dijitalleştiriyoruz: Nasıl bir şeyler satın alıyoruz, kendimizi nasıl eğlendiriyoruz, sanat eserlerini nasıl topluyoruz, sorularımıza nasıl yanıt buluyoruz, nasıl iletişim kuruyoruz ve bağlantı kuruyoruz, kim olduğumuzu nasıl ifade ediyoruz.
Yirmi iki yıl önce, bu "her yerde bulunan bilgi işlem" fikri cüretkar görünüyordu. O zamanlar MIT Yapay Zeka Laboratuvarı'nda yüksek lisans öğrencisiydim ve kendi çalışmalarım üzerinde çalışıyordum.
O zamandan beri çok şey değişti. Bilgisayar artık her yerde: masalarımızda, ceplerimizde, eşyalarımızda ve “bulutumuzda”. Bu kadarını tahmin etmiştik.
Ancak bu değişikliklerin ikinci dereceden etkileri çoğumuzun beklediği gibi değildi:
Her yerde bulunan bilgi işlem her yerde bulunan verilere yol açmıştır . Her yeni bilgi işlem cihazıyla gerçekliğimiz hakkında daha fazla bilgi topluyoruz: insan verileri, makine verileri, iş verileri, çevresel veriler ve sentetik veriler. Bu veriler dünyamıza akın ediyor.
Veri seli, veri tabanlarında Kambriyen döneminde bir patlamaya yol açtı . Tüm bu yeni veri kaynakları, bunların saklanacağı yeni yerlere ihtiyaç duydu. Yirmi yıl önce belki beş geçerli veritabanı seçeneği vardı. Bugün, çoğu belirli kullanım durumları veya veriler için uzmanlaşmış birkaç yüz tane var ve her ay yenileri ortaya çıkıyor.
Daha fazla veri ve daha fazla veritabanı, daha fazla yazılım karmaşıklığına yol açtı . Yazılım iş yükünüz için doğru veritabanını seçmek artık kolay değil. Bunun yerine, geliştiriciler aşağıdakileri içerebilecek karmaşık mimarileri bir araya getirmek zorunda kalıyor: ilişkisel bir veritabanı (güvenilirliği için), ilişkisel olmayan bir veritabanı (ölçeklenebilirliği için), bir veri ambarı (analiz sunma yeteneği için), bir nesne deposu ( eski verileri ucuza arşivleme yeteneği nedeniyle). Bu mimari, zaman serisi veya vektör veritabanı gibi daha özel bileşenlere bile sahip olabilir.
Daha fazla karmaşıklık, inşa etmek için daha az zaman anlamına gelir. Karmaşık mimariler daha kırılgandır, daha karmaşık uygulama mantığı gerektirir, geliştirme için daha az zaman sunar ve geliştirmeyi yavaşlatır. Karmaşıklık bir fayda değil, gerçek bir maliyettir.
Bilgi işlem her yerde yaygınlaştıkça, gerçekliğimiz bilgi işlemle daha fazla iç içe geçmiş hale geldi. Bilgisayarı dünyamıza, kendimizi de onun dünyasına getirdik. Artık sadece çevrimdışı kimliklerimiz değil, çevrimdışı ve çevrimiçi yaptıklarımızın bir karışımıyız.
Yazılım geliştiricileri bu yeni gerçeklikte insanlığın öncüsüdür. Bu yeni gerçekliği şekillendiren yazılımı geliştiren biziz.
Ancak geliştiriciler artık veri yağmuruna tutuluyor ve veritabanı karmaşıklığı içinde boğuluyor.
Bu, geliştiricilerin geleceği şekillendirmek yerine zamanlarının çoğunu tesisat yönetimine harcadıkları anlamına geliyor.
Buraya nasıl geldik?
Her yerde bulunan bilgi işlem, her yerde bulunan verilere yol açmıştır. Bu bir gecede gerçekleşmedi; onlarca yıl boyunca birbirini takip eden dalgalar halinde gerçekleşti:
Her dalgada bilgisayarlar daha küçük, daha güçlü ve daha yaygın hale geldi. Her dalga bir öncekinin üzerine inşa edilmiştir: kişisel bilgisayarlar daha küçük ana bilgisayarlardır; İnternet, birbirine bağlı bilgisayarlardan oluşan bir ağdır; akıllı telefonlar internete bağlı daha da küçük bilgisayarlardır; bulut bilişim bilişim kaynaklarına demokratikleştirilmiş erişim; Nesnelerin İnterneti, Buluta bağlı diğer fiziksel şeylerin bir parçası olarak yeniden yapılandırılan akıllı telefon bileşenleridir.
Ancak son yirmi yılda, bilgi işlem ilerlemeleri yalnızca fiziksel dünyada değil, aynı zamanda hibrit gerçekliğimizi yansıtan dijital dünyada da meydana geldi:
Her yeni bilgi işlem dalgasıyla birlikte hibrit gerçekliğimiz hakkında yeni bilgi kaynakları elde ediyoruz: insanın dijital tüketimi, makine verileri, iş verileri ve sentetik veriler. Gelecekteki dalgalar daha da fazla veri yaratacak. Tüm bu veriler, en sonuncusu Üretken Yapay Zeka olan ve gerçekliğimizi daha da şekillendiren yeni dalgaları körüklüyor.
Bilgi işlem dalgaları silolanmış değil, domino taşları gibi çağlayandır. Veri sızıntısı olarak başlayan şey, kısa sürede veri seline dönüştü. Ve sonra veri seli giderek daha fazla veri tabanının oluşturulmasına yol açtı.
Tüm bu yeni veri kaynakları, bunların saklanacağı yeni yerlere veya veritabanlarına ihtiyaç duydu.
Ana bilgisayarlar şununla başladı:
İnternetin işbirlikçi gücü, ilk açık kaynak veritabanları da dahil olmak üzere açık kaynak yazılımların yükselişini mümkün kıldı:
İnternet aynı zamanda çok büyük miktarda veri yarattı ve bu da ilk ilişkisel olmayan veya NoSQL veritabanlarının ortaya çıkmasına yol açtı:
2010 yılı civarında bir kırılma noktasına ulaşmaya başladık. O noktaya kadar yazılım uygulamaları öncelikle tek bir veritabanına (örneğin Oracle, MySQL, PostgreSQL) bağlıydı ve seçim nispeten kolaydı.
Ancak “Büyük Veri” büyümeye devam etti: Nesnelerin İnterneti, makine verilerinin artmasına yol açtı; iPhone ve Android sayesinde akıllı telefon kullanımı katlanarak artmaya başladı ve bu da insanların daha da fazla dijital tükenmesine yol açtı; Bulut bilişim, bilgi işlem ve depolamaya erişimi demokratikleştirerek bu eğilimleri güçlendiriyor. Üretken yapay zeka son zamanlarda vektör verilerinin oluşturulmasıyla bu sorunu daha da kötüleştirdi.
Toplanan verilerin hacmi arttıkça özel veri tabanlarının da arttığını gördük:
Yirmi yıl önce belki beş geçerli veritabanı seçeneği vardı. Bugün, var
Bu sel ve çeşitli ödünleşimler içeren özel veritabanları ile karşı karşıya kalan geliştiricilerin, karmaşık mimarileri bir araya getirmekten başka seçeneği yoktu.
Bu mimariler tipik olarak ilişkisel bir veritabanı (güvenilirlik için), ilişkisel olmayan bir veritabanı (ölçeklenebilirlik için), bir veri ambarı (veri analizi için), bir nesne deposu (ucuz arşivleme için) ve hatta zaman serisi gibi daha özelleştirilmiş bileşenleri içerir. veya bu kullanım durumları için vektör veritabanı.
Ancak daha fazla karmaşıklık, inşa etmek için daha az zaman anlamına gelir. Karmaşık mimariler daha kırılgandır, daha karmaşık uygulama mantığı gerektirir, geliştirme için daha az zaman sunar ve geliştirmeyi yavaşlatır.
Bu, yazılım geliştiricilerin geleceği inşa etmek yerine tesisatın bakımına çok fazla zaman harcadıkları anlamına geliyor. Bugün buradayız.
Daha iyi bir yol var.
Hikayemizin bir dönüm noktası olduğu yer burası. Kahramanımız, yeni ve parlak bir veritabanı olmak yerine, yalnızca bir ana çekirdek geliştiricinin sevebileceği bir isme sahip, eski ve sağlam bir kişidir: PostgreSQL.
İlk başta PostgreSQL, MySQL'in arkasında iki numaraydı. MySQL'in kullanımı daha kolaydı, arkasında bir şirket vardı ve herkesin kolayca telaffuz edebileceği bir isim vardı. Ancak daha sonra MySQL, Sun Microsystems (2008) tarafından satın alındı ve daha sonra Oracle (2009) tarafından satın alındı. MySQL'i pahalı Oracle diktatörlüğünden kurtarıcı olarak gören yazılım geliştiricileri de ne kullanacaklarını yeniden düşünmeye başladı.
Aynı zamanda, bir avuç küçük bağımsız şirketin sponsorluğunda dağıtılmış bir geliştirici topluluğu, PostgreSQL'i yavaş yavaş daha iyi ve daha iyi hale getiriyordu. Tam metin araması (2008), pencere işlevleri (2009) ve JSON desteği (2012) gibi güçlü özellikleri sessizce eklediler. Ayrıca akış çoğaltma, çalışırken bekleme, yerinde yükseltme (2010), mantıksal çoğaltma (2017) gibi yetenekler aracılığıyla ve hataları özenle düzelterek ve pürüzlü kenarları düzelterek veritabanını daha sağlam hale getirdiler.
Bu süre zarfında PostgreSQL'e eklenen en etkili yeteneklerden biri uzantıları destekleme yeteneğiydi: PostgreSQL'e (2011) işlevsellik katan yazılım modülleri.
Uzantılar sayesinde PostgreSQL harika bir ilişkisel veritabanından daha fazlası olmaya başladı. PostGIS sayesinde harika bir coğrafi veri tabanı haline geldi; TimescaleDB sayesinde harika bir zaman serisi veritabanı haline geldi; bir anahtar-değer deposu olan hstore; AGE, bir grafik veritabanı; pgvector, bir vektör veritabanı. PostgreSQL bir platform haline geldi.
Artık geliştiriciler PostgreSQL'i güvenilirliği, ölçeklenebilirliği (ilişkisel olmayan veritabanlarının yerine), veri analizi (veri ambarlarının yerine) ve daha fazlası için kullanabilirler.
Bu noktada akıllı okuyucunun “Peki ya büyük veri?” diye sorması gerekiyor. Bu adil bir soru. Geçmişte, "büyük veri" (örneğin, yüzlerce terabayt ve hatta petabayt) ve ilgili analitik sorguları, kendi başına yatay olarak ölçeklenemeyen PostgreSQL gibi bir veritabanı için pek uygun değildi.
Bu da değişiyor. Geçtiğimiz Kasım ayında lansmanımızı yaptık “
Dolayısıyla “Büyük Veri” geçmişte PostgreSQL için zayıf bir alan olsa da, yakın gelecekte hiçbir iş yükü çok büyük olmayacak.
Cevap PostgreSQL'dir. PostgreSQL kendimizi özgürleştirme ve geleceği inşa etme yöntemimizdir.
Her birinin kendine özgü tuhaflıkları ve sorgulama dilleri olan birkaç farklı veritabanı sistemiyle uğraşmak yerine, dünyanın en çok yönlü ve muhtemelen en güvenilir veritabanına güvenebiliriz: PostgreSQL. Sıhhi tesisata daha az, geleceği inşa etmeye daha fazla zaman ayırabiliriz.
Ve PostgreSQL gelişmeye devam ediyor. PostgreSQL topluluğu çekirdeği daha iyi hale getirmeye devam ediyor. Günümüzde hiper ölçekleyiciler de dahil olmak üzere PostgreSQL'e katkıda bulunan çok daha fazla şirket var.
Günümüzün PostgreSQL ekosistemi (
PostgreSQL deneyimini daha iyi hale getirmek için çekirdek etrafında inşa edilen daha yenilikçi, bağımsız şirketler de var:
Ve elbette biz de varız.
Zaman Ölçeği hikayesi muhtemelen biraz tanıdık gelecektir: Nesnelerin İnterneti müşterileri için bazı zorlu sensör verileri sorunlarını çözüyorduk ve veriler içinde boğuluyorduk. Buna ayak uydurmak için en az iki farklı veritabanı sistemini (bunlardan biri zaman serisi veritabanıydı) içeren karmaşık bir yığın oluşturduk.
Bir gün kırılma noktasına ulaştık. Kullanıcı arayüzümüzde cihazları hem cihaz_tipi hem de çalışma süresine göre filtrelemek istedik. Bu basit bir SQL birleştirmesi olmalıydı. Ancak iki farklı veritabanı kullandığımız için uygulamamızda iki veritabanımız arasında birleştirici kod yazmamız gerekiyordu. Değişikliği yapmak haftalar sürecek ve tam bir mühendislik sprinti alacaktı.
Daha sonra mühendislerimizden birinin aklına çılgın bir fikir geldi: Neden doğrudan PostgreSQL'de bir zaman serisi veritabanı oluşturmuyoruz? Bu şekilde, tüm verilerimiz için tek bir veritabanına sahip olacağız ve yazılımı daha hızlı göndermekte özgür olacağız. Sonra onu inşa ettik ve hayatımızı çok kolaylaştırdı. Daha sonra arkadaşlarımıza bundan bahsettik, onlar da denemek istediler. Ve bunun dünyayla paylaşmamız gereken bir şey olduğunu fark ettik.
Böylece zaman serisi uzantımız TimescaleDB'yi açık kaynak haline getirdik ve
O günden bu yana geçen yedi yılda, hem uzantıya hem de PostgreSQL bulut hizmetimize büyük yatırımlar yaptık ve zaman serileri ve analizler için giderek daha iyi bir PostgreSQL geliştirici deneyimi sunduk: 350 kat daha hızlı sorgular, hipertablolar aracılığıyla %44 daha yüksek eklemeler (otomatik- bölümleme tabloları); sürekli toplamalar (gerçek zamanlı somutlaştırılmış görünümler) aracılığıyla yaygın sorgular için milisaniyelik yanıt süreleri; Yerel sütunlu sıkıştırma sayesinde %90'ın üzerinde depolama maliyeti tasarrufu; katmanlı depolama aracılığıyla sonsuz, düşük maliyetli nesne depolama; ve dahası.
Zaman serisi verilerinde başladığımız yer burası ve aynı zamanda en çok tanındığımız şey.
Ancak geçen yıl genişlemeye başladık.
Başlattık
Son zamanlarda,
PopSQL, ekip işbirliğine yönelik SQL editörüdür
Biz de başlattık”
Bugün Timescale, PostgreSQL'i her ölçekte güçlü hale getirdi. Artık kimsenin çözemediği zor veri sorunlarını yalnızca zaman serilerinde değil, yapay zeka, enerji, oyun, makine verileri, elektrikli araçlar, uzay, finans, video, ses, web3 ve çok daha fazlasında çözüyoruz.
Geliştiricilerin PostgreSQL'i her şey için kullanması gerektiğine inanıyoruz ve bunu yapabilmeleri için PostgreSQL'i geliştiriyoruz.
Müşteriler Timescale'i yalnızca zaman serisi verileri için değil, aynı zamanda vektör verileri ve genel ilişkisel verileri için de kullanıyor. PostgreSQL'i Her Şey için kullanabilmek için Timescale'i kullanıyorlar. Sen de yapabilirsin:
Hem fiziksel hem de sanal, çevrimdışı ve çevrimiçi insan gerçekliğimiz verilerle doludur. Yoda'nın da söyleyebileceği gibi veriler bizi çevreliyor, bağlıyor. Bu gerçeklik, giderek bizim tarafımızdan yazılım geliştiricileri tarafından yazılan yazılımlar tarafından yönetilmektedir.
Bunun ne kadar olağanüstü olduğunu takdir etmeye değer. Çok da uzun zaman önce, 2002'de, ben MIT yüksek lisans öğrencisiyken, dünya yazılıma olan inancını kaybetmişti. Dotcom balonunun çöküşünü atlatmaya çalışıyorduk. Önde gelen iş dünyası yayınları şunu ilan etti: “
Ancak bugün, özellikle de üretken yapay zekanın olduğu bu dünyada, geleceği şekillendiren biziz. Biz geleceğin inşacılarıyız. Kendimizi çimdiklemeliyiz.
Her şey bilgisayar haline geliyor. Bu büyük ölçüde iyi bir şey oldu: Arabalarımız daha güvenli, evlerimiz daha konforlu, fabrikalarımız ve çiftliklerimiz daha üretken. Her zamankinden daha fazla bilgiye anında erişebiliyoruz. Birbirimize daha çok bağlanıyoruz. Bazen bizi daha sağlıklı ve mutlu kıldı.
Ama her zaman değil. Güç gibi bilişimin de hem aydınlık hem de karanlık tarafı vardır. Cep telefonlarının ve sosyal medyanın doğrudan katkıda bulunduğuna dair kanıtlar giderek artıyor.
Geleceğin nasıl inşa edileceğini etkileyen iki değerli kaynağın koruyucusu haline geldik: zamanımız ve enerjimiz.
Bu kaynakları ya tesisat yönetimine harcamayı seçebiliriz ya da Her Şey için PostgreSQL'i benimseyip doğru geleceği inşa edebiliriz.
Sanırım nerede durduğumuzu biliyorsun.
Okuduğunuz için teşekkürler. #Postgres4Life
(
Bu yazı Ajay Kulkarni tarafından yazılmıştır.