Snowflake ve Streamlit: Veri Uygulamaları Oluşturmak için Eksiksiz Rehber
Streamlit uygulamalarını doğrudan Snowflake içinde oluşturma, dağıtma ve optimize etme üzerine kapsamlı bir anlatım. Güçlü bir bulut platformuyla entegrasyonu sayesinde popüler açık kaynak Python framework’ünden yararlanın.
Snowflake, popüler ve güçlü bir bulut tabanlı veri platformudur; Streamlit ise veri web uygulamaları geliştirmek için tasarlanmış açık kaynak bir Python framework’üdür. Snowflake içinde Streamlit (SiS), veri uygulamalarını doğrudan Snowflake ekosistemi içinde oluşturup dağıtmanıza olanak tanıyan entegre bir çözümdür. Ayrı araçlarla uğraşmak yerine, etkileşimli uygulamaları hızla oluşturmak için Python ve Snowflake’in altyapısını kullanabilirsiniz.
Bu eğitim, Snowflake içinde Streamlit’in ne olduğunu, temel özelliklerini, kurulum adımlarını, dağıtım stratejilerini, güvenliği, performans ipuçlarını ve gerçek dünya kullanım örneklerini adım adım açıklayacaktır. Sonunda, ilk veri uygulamanızı oluşturup yayınlamak için net bir yol haritanız olacak. Lütfen Snowflake temellerini ve arayüzünü gözden geçirdiğinizden emin olun. Ayrıca, bu Streamlit eğitimi ile Snowflake dışında Python’da Streamlit’i denemenizi de öneririm; böylece işlevselliğini daha iyi anlayabilirsiniz.
Snowflake İçinde Streamlit Nedir?
Snowflake içinde Streamlit, platformdan ayrılmadan doğrudan Snowflake verilerinize bağlı etkileşimli uygulamalar oluşturmayı mümkün kılar.
Snowflake İçinde Streamlit’e Genel Bakış
Snowflake içinde Streamlit, Streamlit’in sadeliğini Snowflake’in ölçeklenebilirliğiyle birleştirir. Geleneksel olarak uygulama geliştirmek için harici sunucular, API’ler ve karmaşık entegrasyonlar gerekirdi. Streamlit, çekirdek işlevselliği birkaç nesne yönelimli API ve Python entegrasyonuna indirger. Dağıtım ise Snowsight üzerinden Snowflake’e devredilir.
Bu, ek altyapı ihtiyacını ortadan kaldırır ve Snowpark, Cortex AI ve Snowflake verilerinizle sorunsuz entegre olan birleşik bir ortam sunar. Bu da Python geliştiricileri ve veri ekiplerinin, verileri veya kodu taşımaya dair ek yük olmadan aynı kaynaktan çalışmalarını sağlar.
Tarihsel bağlam
2022’de Snowflake, etkileşimli uygulama geliştirmeyi kurumsal verilere yaklaştırmak için Streamlit’i satın aldı. Geliştiricilerin Python kullanarak şık web uygulamaları oluşturmasına olanak tanıyan açık kaynak vizyonunu korurken, bugün mevcut en güçlü veri platformlarından biriyle entegre olur. Kurumların, daha az güvenlik endişesiyle Streamlit’i esnek şekilde kullanmasını sağlar ve uygulama geliştirmeyi birleştirir.
Temel felsefe
SiS’in felsefesi, Snowflake’ten beklediğiniz düzeyde güvenlik ve yönetişimi korurken, veri web uygulamaları oluşturmak için Streamlit’i kullanmanın kolaylığını sunmaya odaklanır. Tüm veriler Snowflake içinde kaldığından, beklediğiniz aynı güvenlik ve emniyet garantilerine sahipsiniz.
En büyük artı, Python framework’ünün aynı kalmasını ve Snowflake dışında alacağınız deneyime benzer bir deneyimi Snowflake üzerinde de sunmasını sağlamaya odaklanmasıdır. Bu, geçmişte Streamlit ile çalışmış geliştiriciler veya Python deneyimi olan ve mevcut becerilerini Snowflake verileri için web uygulamaları geliştirmede kullanmak isteyenler için SiS’i erişilebilir kılar.
Snowflake İçinde Streamlit’in Temel Özellikleri ve Yetenekleri
Snowflake içinde Streamlit, Snowflake’in tam yönetimli olma ve kolay iş birliği gibi temel bulut özelliklerini korur. Ayrıca, altyapıyla entegre durumdayken Streamlit’in görselleştirme ve hızlı yineleme işlevselliğine sahiptir.
Tam yönetimli hizmet
Snowflake, altyapının tamamını arka planda yönetir; bu da sunucular, ölçekleme veya stabilite hakkında endişelenmenize gerek olmadığı anlamına gelir. Uygulamalar gerçek zamanlı etkileşimle çalışır, kullanıma göre otomatik ölçeklenir ve Snowflake’in yerleşik güvenilirliğinden yararlanır.
Snowflake altyapısıyla entegrasyon
Snowflake içindeki Streamlit uygulamaları, Snowpark, Cortex AI ve veritabanlarıyla doğal olarak bağlanır. Örneğin, Streamlit uygulamanıza Cortex AI Analyst’i entegre ederek kullanıcıların veriler hakkında doğal dilde sorular sormasını ve panoda yerel olarak yanıtlar almasını sağlayabilirsiniz.
Yerleşik önbellekleme gibi diğer Snowflake özellikleri yinelenen sorguları en aza indirirken, karanlık mod ve özel bileşenler gibi arayüz iyileştirmeleri kullanıcı deneyimini artırır. Kimlik doğrulama ve güvenli bağlantılar, Snowflake’in kimlik doğrulama protokolleriyle otomatik olarak yönetilir. Veri hassasiyeti, Snowflake’in role dayalı kontrolleriyle yönetilebilir.
Bu, veri yönetimi görevini basitleştirir ve geliştiricilerin araç oluşturmaya odaklanmasını sağlar.
Etkileşimli görselleştirmeler ve hızlı yineleme
Streamlit’in en büyük güçlerinden biri, basit bir Python betiğini dakikalar içinde etkileşimli bir uygulamaya dönüştürme yeteneğidir. Snowflake’te, uygulamaları doğrudan önizleyebilir ve yineleyebilirsiniz; kodu güncelleyip, uzun dağıtımları beklemeden canlı sonuçları görebilirsiniz.
Paylaşım ve iş birliği
Streamlit uygulamaları Snowflake içinde doğrudan kullanıcılara paylaşılabilir. Bu, uygulamayı rollere veya bireysel üyelere göre farklı ekiplere kolayca paylaşmayı sağlar. İş birliği iş akışına gömülüdür; birden fazla ekip üyesi uygulamalar üzerinde birlikte çalışabilir, test edebilir ve dağıtabilir.
Snowflake İçinde Streamlit’e Başlarken
SiS ile başlamak basittir ve ilk uygulamanızı dakikalar içinde oluşturabilirsiniz. Sadece doğru izinlere ve bilgiye sahip olduğunuzdan emin olmalıyız.
Ön koşullar
Snowflake’te bir Streamlit uygulaması oluşturmak için, web arayüzü olan Snowsight’a erişimi bulunan etkin bir Snowflake hesabına ihtiyacınız vardır. Bu Snowflake’e giriş dersi, Snowsight’ta nasıl gezineceğinizi gösterebilir. Temel Python bilgisine sahip olmalısınız. Hatta bilginizi tazelemek için şu Python’a giriş kursunu gözden geçirmek bile faydalı olabilir.
Snowflake’e erişiminiz olduğunda, aşağıdaki izinlere sahip olduğunuzdan emin olun:
Snowsight’a giriş yaparak ve uygulamanızın bulunacağı bir veritabanı ve şema seçerek veya oluşturarak başlayın. My Workspace alanına gidip yeni bir SQL dosyası açın. streamlit_database üzerindeki streamlit_schema’mıza erişimi olacak streamlit_creator adlı bir rol oluşturalım. Ayrıca, Streamlit uygulamamız için birincil hesaplama kaynağı olacak streamlit_wh adlı bir ambar da oluşturacağız.
CREATE ROLE streamlit_creator;CREATEDATABASE streamlit_db;USEDATABASE streamlit_db;CREATESCHEMA streamlit_schema;CREATE WAREHOUSE streamlit_wh WITH WAREHOUSE_SIZE = ‘XSMALL’;GRANTUSAGEONSCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;GRANTUSAGEONDATABASE streamlit_db TO ROLE streamlit_creator;GRANTUSAGEON WAREHOUSE streamlit_wh TO ROLE streamlit_creator;GRANTCREATE STREAMLIT ONSCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;GRANTCREATE STAGE ONSCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;Altyapı:
İlk Streamlit Uygulamanızı Oluşturma
Bunu somutlaştırmak için basit bir uygulama üzerinden ilerleyelim. Snowflake hesabınız ve izinleriniz ayarlandıktan sonra, Snowsight’ta PROJECTS >> Streamlit yolunu izleyin. Bu pencerede sağ üstteki + Streamlit App düğmesine tıklayın.
Uygulama adını istediğiniz bir adla doldurun. Uygulama konumunu STREAMLIT_DB ve STREAMLIT_SCHEMA’yı kullanacak şekilde güncelleyin. Ardından “Run on warehouse” seçeneğini ve App Warehouse olarak “STREAMLIT_WH” seçimini yapın.
Bu, düzenleyiciyi açar. Varsayılan olarak küçük bir betikle gelir. Uygulamayı otomatik olarak çalıştırır ve bir önizleme gösterir.
Uygulamaya biraz da ilgilendiğimiz kendi verilerimizden ekleyelim. Mevcut kodumuzun en altına şu küçük parçayı ekleyelim:
from snowflake.snowpark.functions importsumas sf_sum
st.title("Simple Sales Dashboard")
st.write("This app displays sales by part using Snowflake data.")# Query sample dataset
df =(
session.table("SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.LINEITEM").group_by("L_PARTKEY").agg(sf_sum("L_QUANTITY").alias("TOTAL_SALES")).limit(10).order_by("TOTAL_SALES", ascending=False).to_pandas())# Plot chart
st.bar_chart(data=df, x="L_PARTKEY", y="TOTAL_SALES")# Show table
st.dataframe(df)Altyapı:
Sonra sağ üstteki “Run” düğmesine basın. Bu uygulamadaki önizleme güncellenecek ve örnek tablonun sağladığı verileri işleyecektir. Hem bir veri tablosu hem de bir çubuk grafik görmelisiniz. Buradan sorguları özelleştirebilir, filtreler ekleyebilir veya Streamlit bileşenleriyle arayüzü zenginleştirebilirsiniz.
Burada göreceğiniz şey Snowpark kullanımüdür. Daha önce kullanmadıysanız Snowpark, Python gibi programlama dilleriyle Snowflake verilerini işlemenizi sağlayan Snowflake kütüphanesidir. Verileri Streamlit’e çekmek sıklıkla Snowflake veritabanlarınızla arayüz oluşturmak için Snowpark kullanımını gerektirdiğinden, bu Snowpark girişini özellikle öneririm.
Dağıtım Stratejileri ve Yöntemleri
Snowflake içinde Streamlit’i dağıtmanın birkaç yolu vardır. En kolayı web arayüzü olan Snowsight’ı kullanmaktır; ancak komut satırı arayüzü (CLI) araçlarını da kullanabilirsiniz. Ek olarak, proje organizasyonu ve dağıtımınızı ölçeklendirmeye yardımcı olacak iş akışı araçları ekleyebilirsiniz.
Snowsight ile dağıtım
Önceki bölümde gösterildiği gibi, en basit yöntem Snowflake’in web arayüzü Snowsight’tır. Buradaki artı, uygulamanızı gerçek zamanlı düzenleme ve önizleme için bölünmüş ekran görünümüdür. Bu kurulum, geliştirme sırasında anında geri bildirim almak isteyen geliştiriciler için idealdir.
CLI ile dağıtım
Daha gelişmiş senaryolarda, CLI araçları uygulamaları programatik olarak dağıtmanıza olanak tanır. Bu, özellikle uygulama dağıtımını sürekli tümleştirme ve sürekli teslim (CI/CD) hatlarına entegre ederken faydalıdır. Daha yapılandırılmış bir geliştirici yaklaşımı izleyerek, uygulamalar normal Streamlit uygulamaları gibi .py dosyaları ve ortam ile Snowflake komutlarını kontrol eden .yml dosyalarıyla birlikte proje klasörlerinde saklanabilir. Bu, değişiklikleri izlemek, otomatik kontroller çalıştırmak ve sorunsuz dağıtım yapmak için GitHub kullanabileceğimiz anlamına gelir.
dbt ve iş akışı araçlarıyla entegrasyon
Bir başka seçenek de Streamlit uygulamalarını, Snowflake’in doğal olarak desteklediği dbt (data build tool) gibi iş akışı araçlarıyla birleştirmektir. Örneğin, dbt çekirdek ETL iş akışınızı yönetebilir ve bu akış Streamlit uygulamanıza bağlanır. Aynı dbt projesi içinde Streamlit’i, dbt iş akışınıza uyacak şekilde gerektiğinde otomatik olarak yeniden dağıtabilirsiniz. Bu, karmaşık veri iş akışlarını projeler halinde düzenlemenizi ve dağıtımınızı iş akışınızla birlikte ölçeklendirmenizi sağlar.
Mimari ve Teknik Uygulama
Snowflake içinde Streamlit’in gerçekte nasıl çalıştığından bahsedelim.
Teknik mimari
Snowflake içindeki Streamlit uygulamaları, tamamen Snowflake tarafından yönetilen güvenli, konteyner tabanlı bir ortamda çalışır. Bu tasarım, uygulamaların izole kalmasını sağlarken Snowflake veri kaynakları ve hizmetlerine güvenli bir bağlantı sürdürür. Uygulamanızın karmaşıklığı arttıkça veya veritabanı boyutları büyüdükçe, Snowflake arka planda ölçeklemeyi yönetir.
Ambar yönetimi
Bir uygulamayı başlattığınızda, yapılandırdığınız ambardan hesaplama kaynakları tüketir. SQL sorgularınızda olduğu gibi, ambar boyutu hem performansı hem de maliyeti etkiler; bu nedenle kaynak planlaması önemlidir. Geliştiriciler, takibi basitleştirmek için Streamlit uygulamalarına bağlı bir ambar bulundurmayı faydalı bulur. Ayrıca, Snowflake güvenli dosya depolama için dahili aşamalar kullanır; bu da verilerin platform dışına sızmasını engeller. Bu, verilerinizi güvenliği korurken uygulamanıza beslemeyi kolaylaştırır.
Python paketleri ve ortam
SiS’teki Python ortamları güvenlik için yönetilir ve seçilir. Yalnızca onaylı paketler kullanılabilir ve harici paket kurulumu kısıtlıdır. Ek olarak, betikler, stiller, yazı tipleri ve iframe yerleştirme gibi bazı şeyler güvenlik nedeniyle kısıtlanmıştır. Sağlananların dışında bir işlevsellik gerekiyorsa, bunu Snowpark UDF’leri aracılığıyla uygulamanız veya Snowflake’in desteklediği mevcut Python kütüphanelerine güvenmeniz gerekebilir.
Güvenlik Modeli ve İzinler
Neyse ki SiS, role dayalı erişim kontrolü, paylaşım ve ağ güvenliği gibi Snowflake’in mevcut güvenlik altyapısının çoğunu kullanır.
Role dayalı erişim kontrolü (RBAC)
Snowflake, Streamlit uygulamaları ve verileri için role dayalı erişim kontrolü (RBAC) sistemi kullanır. Verilere erişmek, herhangi bir Streamlit uygulaması ve onun temel verileri için USAGE ayrıcalığını gerektirir. Yalnızca CREATE STREAMLIT ayrıcalığına sahip roller uygulama oluşturabilir; uygulama sahipliği ise şema düzeyindeki izinlere bağlıdır. Bu, kimlerin uygulama geliştirebileceği ve yönetebileceği üzerinde net bir kontrol sağlar.
Paylaşım ve erişim kontrolü
Uygulama paylaşımı da aynı şekilde kontrol edilir. Uygulamalara erişimi kullanıcı rollerine göre verebilir veya kısıtlayabilirsiniz. SQL yürütme için aynı role dayalı izinler geçerlidir. SQL, Streamlit uygulaması üzerinden çalıştırılır ve geliştiricilerin uygun izinler olmadan veritabanlarında SQL sorguları çalıştırmasına izin verilmez.
Ağ ve içerik güvenliği
Ağ tarafında, Snowflake sıkı içerik güvenliği politikaları (CSP) uygular. Bunlar, uygulamaların yetkisiz harici betikleri, stilleri veya kaynakları yüklemesini engelleyerek veri sızdırma veya güvensiz entegrasyon riskini azaltır. Ortama hangi harici kütüphanelerin alındığını en aza indirerek, güvenlik açıkları riski düşürülür ve veri ile kullanıcı gizliliği korunur.
Snowflake Streamlit Performans Optimizasyonu
Uygulamanız karmaşıklaştıkça, doğru işlevselliği sürdürmek için uygun optimizasyon önemlidir.
Sorgu Optimizasyonu ve Önbellekleme
Verimli uygulamalar oluşturmak, hem sorgulara hem de hesaplama kaynaklarına dikkat etmeyi gerektirir. Sorgularınızı, Streamlit uygulamanızın dışında (benzer bir ambarda) test etmek, sorgunuzun gerektirdiği hesaplama çabasını anlamaya yardımcı olur. Darboğazları önlemek için optimize SQL yazmak kritik önemdedir.
Streamlit’in yerleşik önbellek işlevleri olan st.cache_data ve st.cache_resource, yinelenen hesaplamaları ve verilerin yeniden yüklenmesini azaltmaya yardımcı olur. Ancak bir uyarı: st.cache_data ve st.cache_resource tam olarak desteklenmez. Yalnızca oturum bazlı önbelleğe izin verirler; yani kullanıcı her yeni oturum açtığında sorgu ve veriler yeniden yüklenecektir. Bunu aklınızda tutun ve sorgularınızı olabildiğince optimize ettiğinizden emin olun.
Ambar Seçimi ve Yapılandırması
Ambar seçimi, uygulama yanıt verebilirliğinde büyük rol oynar. Daha büyük ambarlar hızı artırır ancak maliyeti de yükseltir. Yüksek trafikli uygulamalar için ayrılmış ambarlar en iyi seçenek olabilir. Öte yandan, hafif uygulamalar genellikle performans sorunları olmadan daha küçük ambarlarda çalıştırılabilir.
Uygulama Mimarisi
Uygulama mimarisi de önemlidir. Kademeli veri yükleme ve durum yönetimi, özellikle büyük veri kümeleriyle çalışırken uygulamaları daha duyarlı hale getirebilir. Birden fazla bileşen varsa tüm uygulamanızı bir kerede yüklememeye çalışın. Her an kullanıcıya gerekeni yükleyin. Kaynak kısıtlarını göz önünde bulundurarak uygulama tasarlamak, ileti boyutu veya bellek sınırlarına takılma gibi sorunları önler.
Snowflake İçinde Streamlit’in Kullanım Alanları ve Örnek Uygulamalar
Basit panolar ve veri uygulamalarının ötesinde, Snowflake içinde Streamlit; makine öğrenimi, yapay zeka, iş zekası ve NLP için güçlü araçlardan yararlanabilir. Birkaç kullanım alanını öne çıkaralım.
İş zekâsı ve veri görselleştirmeleri
Analitik ekipleri için Snowflake içinde Streamlit, etkileşimli panolar ve raporlama araçları oluşturmanın bir yoludur. Snowflake veritabanlarınıza bağlı olmak, daha iyi karar alma için panolarda gerçek zamanlı güncellemeler sağlar. Farklı departman ve ekiplere yönelik benzer uygulamaları hızlı ve kolay şekilde dağıtabilirsiniz. Örneklere envanter takipçileri, hesaplama kullanımı panoları veya üst düzey performans özetleri dahildir. Örneğin, Snowflake Cortex ve Snowpark entegrasyonunu Streamlit uygulamasına ekleyerek çağrı verisi transkriptlerini alıp çağrılar üzerinde analitik üretecek çağrı merkezi analitiği geliştirebiliriz.
Makine öğrenimi ve yapay zeka
Verilerinizden gerçekten yararlanmak için Streamlit uygulamaları, makine öğrenimi ve yapay zeka içgörüleri için tasarlanabilir. Örneğin, makine öğrenimi ekipleri; talep tahmini, müşteri segmentasyonu veya anomali tespiti için modelleri sunan etkileşimli uygulamalar dağıtabilir. Cortex AI ile geliştiriciler, geri getirimle artırılmış üretim (RAG) uygulamaları veya sohbet tabanlı yapay zeka araçları da oluşturabilir. Başarılı bir uygulama örneği, bireysel profillere göre müşterilere hedefli çapraz satış önerileri sunan PyTorch modellerini, görsel bir çıkarım uygulaması içinde sunmaktır.
NLP ve ileri analitik
Sohbetler ve e-postalar gibi metin tabanlı geri bildirimlerden içgörü elde etmek için doğal dil işleme (NLP) doğru yoldur. spaCy, NLTK veya Snowflake’in dahili Cortex AI metin işleme kütüphanesi gibi araçları kullanarak tüm bu metin bilgisini duygu analizi, adlandırılmış varlık tanıma ve diğer NLP çözümleri için araçlara dönüştürebiliriz. Örneğin, özetleme ve duygu analizi gibi NLP analizinin büyük kısmını Snowflake Cortex ile ele alabiliriz. Bu da, Streamlit in Snowflake kullanarak yorumlar ve destek sohbetleri üzerinde analitik sağlayan bir veritabanını besler.
Veri toplama ve girdi uygulamaları
Streamlit uygulamaları, ek açıklama araçları veya iş birliğine dayalı giriş arayüzleri gibi veri toplama ve kalite yönetimi için de iyi çalışır. Dosya yüklemeleri 200 MB ile sınırlı olsa da, kullanıcıların potansiyel olarak küçük veri kümelerini veya belgeleri uygulamamızda işleme veya özetleme için yükleyebileceği bir alan sağlayabiliriz. Olanaklar sınırsız!
Snowflake Ekosistemiyle Entegrasyon
Snowflake içinde Streamlit’e sahip olmak, Snowpark ve veri paylaşımı gibi ekosistem içindeki sayısız entegrasyon sayesinde güçlüdür.
Snowpark ile entegrasyon
Snowpark, Snowflake ile Python’da analiz yapmayı çok kolaylaştırır. Gelişmiş veri işleme, dağıtık hesaplamalar ve özel işlevler sağlar. Snowflake içindeki Streamlit uygulamamızda Snowpark dataframe’lerini yerel olarak kullanabildiğimiz için bunu çok az ek yükle kolayca kullanabiliriz. Snowflake ortamınızdaki saklı yordamlar ve UDF’ler gibi şeyleri kullanmak, Snowpark’ın udf nesnesiyle çok kolaylaşır.
Veri paylaşımı ve otomasyon
Snowflake içinde veri paylaşımı basittir ve Snowsight arayüzüyle sadece birkaç tık alır. Snowflake Tasks ve olaya dayalı özellikleri ekleyerek, geliştiriciler iş akışlarını da kolayca otomatikleştirebilir. Örneğin, yeni veri geldiğinde uygulama güncellemelerini tetikleyebilir, hiçbir şeyin bozulmadığından emin olmak için veri kontrolleri yapabilir ve verileri taze tutabilirsiniz.
dbt ile birleştirildiğinde, veri dönüşümlerinin doğrudan Streamlit uygulamalarına aktığı uçtan uca iş akışları oluşturabilirsiniz; böylece kullanıcılara gerçek zamanlı güncellemeler sağlanır.
Faturalama ve Maliyet Hususları
Tüm bulut platformlarında olduğu gibi, faturalama ve maliyet hususları önemlidir. Pahalı bir Streamlit uygulamasının kullanılması olası değildir; bu nedenle maliyetleri önceden düşünmek, sorunsuz bir geliştirme süreci sağlar.
Snowflake içinde Streamlit’in maliyetlerini anlama
Snowflake içinde Streamlit’in maliyetleri, Snowflake’teki diğer işlemler gibidir. Streamlit için belirli bir veritabanı/şemanız varsa, o verilerle ilişkili olağan depolama maliyetleriniz olacaktır. Daha önce belirttiğimiz gibi, Snowflake içindeki Streamlit hizmetlerinize özel olarak tahsis edilmiş bir ambar oluşturmak isteyeceksiniz; böylece hesaplama maliyetlerini de takip edebilirsiniz. Daha büyük ambar boyutları, uygulama eşzamanlılığı (birden fazla kullanıcı oturumu) ve veri hacmi maliyetlerinizin başlıca itici güçleri olacaktır.
Kaynak Kullanımını Optimize Etme
Harcamayı kontrol etmek için ambarların doğru boyutlandırılması önemlidir. Hafif iş yüklerine sahip küçük uygulamalar gereksiz yere büyük ambarları kullanmaktan kaçınmalıdır. Streamlit önbellekleme, oturumlar içinde yinelenen sorguları en aza indirerek hesaplama kullanımını düşürmeye yardımcı olur. Snowflake ayrıca tüketimi izleyen ve veri odaklı maliyet ayarlamaları yapmanızı sağlayan izleme araçları sunar.
Sınırlamalar ve Dikkat Edilmesi Gerekenler
Snowflake içinde Streamlit güçlü olsa da, özellikle harici paketler ve dosya yüklemeleriyle ilgili bazı kısıtlamalar vardır.
İçerik güvenliği politikası (CSP) kısıtlamaları
Platform, veri güvenliğini sağlamak için sıkı içerik güvenliği politikaları uygular. Özel betikler, stiller ve harici bir alan gerektiren şeyler daha muhtemelen engellenecektir. Kullandığınız bileşenlerin harici çağrılar gerektirmediğinden emin olun. Bu, uygulamanızın güvenliğini büyük ölçüde artırır; ancak kendi Streamlit uygulamalarınızdan geliyorsanız alışık olabileceğiniz bazı özelleştirmeleri sınırlar.
Veri aktarımı ve önbellekleme sınırlamaları
Büyük veri kümelerini yönetmek, önbellekleme ve ileti aktarımındaki bazı sınırlamalar nedeniyle zor olabilir. Önbelleğe almanın temel sınırlaması, oturum bazlı olması ve kullanıcı bazlı olmamasıdır. Dolayısıyla uygulamaları yeniden ziyaret eden ve yeni oturum başlatan kullanıcıların verileri yeniden yüklemesi gerekir. Kullanıcılarınızı ve birden fazla kez yeni oturum başlatıp başlatmayacaklarını dikkatle değerlendirin. Öyleyse, oturumlar arasında veri yükünü nasıl en aza indirebileceğinizi düşünün.
Sorguların boyutu veya bellekteki veri miktarı için açık bir sınır olmasa da, iletiler 32 MB ile sınırlıdır. Bu, büyük dataframe’lerin görüntülenmesi ve son derece karmaşık haritaların bir sınırlayıcı faktör olabileceği anlamına gelir. Kullanıcılara göstermenin hayati olduğu şeyleri ve basitleştirilebilecekleri göz önünde bulundurun.
Dosya Yükleme ve Harici Depolama Kısıtlamaları
Dosya yüklemeleri çalışır; ancak boyutları 200 MB ile sınırlıdır. Ayrıca harici aşamalarla doğrudan çalışamayacak ve veriyi önce Snowflake’e taşımanız gerekecektir. Bu nedenle doğrudan Apache Iceberg’den çekmek çalışmaz; ancak dahili bir veri gölünden bu veriyi çekmek çalışır.
Ayrıca, dosya yükleme işlevselliği boyut olarak sınırlıdır ve harici aşamalar şu anda desteklenmemektedir; bu da uygulamaların dosyaları nasıl ele aldığını kısıtlar.
Sonuç
Snowflake içinde Streamlit, Snowflake ortamınızdan ayrılmadan etkileşimli veri uygulamaları oluşturup dağıtmanın güçlü ve entegre bir yolunu sunar. Snowpark, Cortex AI ve dbt ile gelişmiş entegrasyonları desteklerken güvenlik, ölçeklenebilirlik ve kullanım kolaylığını birleştirir.
Harici kaynaklar ve dosya yüklemelerine yönelik kısıtlamalar gibi sınırlamalar olsa da, hızlı yineleme, yönetilen altyapı ve sorunsuz paylaşımın sağladığı faydalar, SiS’i veri ekipleri için dönüştürücü bir platform haline getirir. Yeni başlayanlar küçük ölçekli—basit panolarla deney yaparak—başlayabilir ve kurumsal düzeyde yapay zeka ve analitik uygulamalara kadar ölçekleyebilir. Snowflake hakkında daha fazla bilgi için şunlara göz atın:
Snowflake Streamlit nedir ve normal Streamlit’ten nasıl farklıdır?⌄
Snowflake Streamlit, Snowflake içinde yerel olarak çalışan ve tamamen yönetilen bir Streamlit sürümüdür; ayrı sunucu veya altyapıya gerek kalmaz. Normal Streamlit’te çalıştırma/barındırma işlemini sizin yapmanız gerekir.
Başlamak için ne kadar Python bilgisi gerekir?⌄
Temel Python bilgisi yeterlidir. Fonksiyon yazabiliyor, kütüphane içe aktarabiliyor ve (ör. Pandas ile) dataframe’leri anlayabiliyorsanız, hızlıca basit uygulamalar geliştirebilirsiniz.
Snowsight ve CLI üzerinden dağıtım arasındaki temel farklar nelerdir?⌄
Snowsight görsel ve yeni başlayanlar için uygundur; prototipleme için en iyisidir. CLI ise otomasyon, sürüm kontrolü ve CI/CD hatları için daha uygundur.
Snowflake içinde Streamlit uygulamaları çalıştırmak kredi tüketimimi etkiler mi?⌄
Evet. Streamlit uygulamaları Snowflake’ten veri sorguladığı için, çalıştırmak kredi tüketir; tıpkı sorgu çalıştırmak gibi. Sorguları optimize etmek maliyetleri yönetmeye yardımcı olur.
Snowflake Streamlit uygulamaları GitHub veya CI/CD ile entegre edilebilir mi?⌄
Evet. Snowflake CLI kullanarak, uygulama dağıtımlarını CI/CD hatlarına (ör. GitHub Actions) entegre edebilirsiniz; kod değiştiğinde güncellemeleri otomatikleştirmeyi kolaylaştırır.
Mekânsal analiz, makine öğrenimi ve veri hatları konusunda deneyime sahip bir veri bilimciyim. GCP, Hadoop, Hive, Snowflake, Airflow ve diğer veri bilimi/mühendisliği süreçleriyle çalıştım.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kar Tanesi ile uygulamalı eğitim alın! Veri mühendisleri, analistler ve iş zekası uzmanlarına yönelik bu interaktif girişte verileri sorgulamayı, modellemeyi ve yönetmeyi öğrenin.
Snowflake, popüler ve güçlü bir bulut tabanlı veri platformudur; Streamlit ise veri web uygulamaları geliştirmek için tasarlanmış açık kaynak bir Python framework’üdür. Snowflake içinde Streamlit (SiS), veri uygulamalarını doğrudan Snowflake ekosistemi içinde oluşturup dağıtmanıza olanak tanıyan entegre bir çözümdür. Ayrı araçlarla uğraşmak yerine, etkileşimli uygulamaları hızla oluşturmak için Python ve Snowflake’in altyapısını kullanabilirsiniz.
Bu eğitim, Snowflake içinde Streamlit’in ne olduğunu, temel özelliklerini, kurulum adımlarını, dağıtım stratejilerini, güvenliği, performans ipuçlarını ve gerçek dünya kullanım örneklerini adım adım açıklayacaktır. Sonunda, ilk veri uygulamanızı oluşturup yayınlamak için net bir yol haritanız olacak. Lütfen Snowflake temellerini ve arayüzünü gözden geçirdiğinizden emin olun. Ayrıca, bu Streamlit eğitimi ile Snowflake dışında Python’da Streamlit’i denemenizi de öneririm; böylece işlevselliğini daha iyi anlayabilirsiniz.
Snowflake İçinde Streamlit Nedir?
Snowflake içinde Streamlit, platformdan ayrılmadan doğrudan Snowflake verilerinize bağlı etkileşimli uygulamalar oluşturmayı mümkün kılar.
Snowflake İçinde Streamlit’e Genel Bakış
Snowflake içinde Streamlit, Streamlit’in sadeliğini Snowflake’in ölçeklenebilirliğiyle birleştirir. Geleneksel olarak uygulama geliştirmek için harici sunucular, API’ler ve karmaşık entegrasyonlar gerekirdi. Streamlit, çekirdek işlevselliği birkaç nesne yönelimli API ve Python entegrasyonuna indirger. Dağıtım ise Snowsight üzerinden Snowflake’e devredilir.
Bu, ek altyapı ihtiyacını ortadan kaldırır ve Snowpark, Cortex AI ve Snowflake verilerinizle sorunsuz entegre olan birleşik bir ortam sunar. Bu da Python geliştiricileri ve veri ekiplerinin, verileri veya kodu taşımaya dair ek yük olmadan aynı kaynaktan çalışmalarını sağlar.
Tarihsel bağlam
2022’de Snowflake, etkileşimli uygulama geliştirmeyi kurumsal verilere yaklaştırmak için Streamlit’i satın aldı. Geliştiricilerin Python kullanarak şık web uygulamaları oluşturmasına olanak tanıyan açık kaynak vizyonunu korurken, bugün mevcut en güçlü veri platformlarından biriyle entegre olur. Kurumların, daha az güvenlik endişesiyle Streamlit’i esnek şekilde kullanmasını sağlar ve uygulama geliştirmeyi birleştirir.
Temel felsefe
SiS’in felsefesi, Snowflake’ten beklediğiniz düzeyde güvenlik ve yönetişimi korurken, veri web uygulamaları oluşturmak için Streamlit’i kullanmanın kolaylığını sunmaya odaklanır. Tüm veriler Snowflake içinde kaldığından, beklediğiniz aynı güvenlik ve emniyet garantilerine sahipsiniz.
En büyük artı, Python framework’ünün aynı kalmasını ve Snowflake dışında alacağınız deneyime benzer bir deneyimi Snowflake üzerinde de sunmasını sağlamaya odaklanmasıdır. Bu, geçmişte Streamlit ile çalışmış geliştiriciler veya Python deneyimi olan ve mevcut becerilerini Snowflake verileri için web uygulamaları geliştirmede kullanmak isteyenler için SiS’i erişilebilir kılar.
Snowflake İçinde Streamlit’in Temel Özellikleri ve Yetenekleri
Snowflake içinde Streamlit, Snowflake’in tam yönetimli olma ve kolay iş birliği gibi temel bulut özelliklerini korur. Ayrıca, altyapıyla entegre durumdayken Streamlit’in görselleştirme ve hızlı yineleme işlevselliğine sahiptir.
Tam yönetimli hizmet
Snowflake, altyapının tamamını arka planda yönetir; bu da sunucular, ölçekleme veya stabilite hakkında endişelenmenize gerek olmadığı anlamına gelir. Uygulamalar gerçek zamanlı etkileşimle çalışır, kullanıma göre otomatik ölçeklenir ve Snowflake’in yerleşik güvenilirliğinden yararlanır.
Snowflake altyapısıyla entegrasyon
Snowflake içindeki Streamlit uygulamaları, Snowpark, Cortex AI ve veritabanlarıyla doğal olarak bağlanır. Örneğin, Streamlit uygulamanıza Cortex AI Analyst’i entegre ederek kullanıcıların veriler hakkında doğal dilde sorular sormasını ve panoda yerel olarak yanıtlar almasını sağlayabilirsiniz.
Yerleşik önbellekleme gibi diğer Snowflake özellikleri yinelenen sorguları en aza indirirken, karanlık mod ve özel bileşenler gibi arayüz iyileştirmeleri kullanıcı deneyimini artırır. Kimlik doğrulama ve güvenli bağlantılar, Snowflake’in kimlik doğrulama protokolleriyle otomatik olarak yönetilir. Veri hassasiyeti, Snowflake’in role dayalı kontrolleriyle yönetilebilir.
Bu, veri yönetimi görevini basitleştirir ve geliştiricilerin araç oluşturmaya odaklanmasını sağlar.
Etkileşimli görselleştirmeler ve hızlı yineleme
Streamlit’in en büyük güçlerinden biri, basit bir Python betiğini dakikalar içinde etkileşimli bir uygulamaya dönüştürme yeteneğidir. Snowflake’te, uygulamaları doğrudan önizleyebilir ve yineleyebilirsiniz; kodu güncelleyip, uzun dağıtımları beklemeden canlı sonuçları görebilirsiniz.
Paylaşım ve iş birliği
Streamlit uygulamaları Snowflake içinde doğrudan kullanıcılara paylaşılabilir. Bu, uygulamayı rollere veya bireysel üyelere göre farklı ekiplere kolayca paylaşmayı sağlar. İş birliği iş akışına gömülüdür; birden fazla ekip üyesi uygulamalar üzerinde birlikte çalışabilir, test edebilir ve dağıtabilir.
Snowflake İçinde Streamlit’e Başlarken
SiS ile başlamak basittir ve ilk uygulamanızı dakikalar içinde oluşturabilirsiniz. Sadece doğru izinlere ve bilgiye sahip olduğunuzdan emin olmalıyız.
Ön koşullar
Snowflake’te bir Streamlit uygulaması oluşturmak için, web arayüzü olan Snowsight’a erişimi bulunan etkin bir Snowflake hesabına ihtiyacınız vardır. Bu Snowflake’e giriş dersi, Snowsight’ta nasıl gezineceğinizi gösterebilir. Temel Python bilgisine sahip olmalısınız. Hatta bilginizi tazelemek için şu Python’a giriş kursunu gözden geçirmek bile faydalı olabilir.
Snowflake’e erişiminiz olduğunda, aşağıdaki izinlere sahip olduğunuzdan emin olun:
USAGEUSAGE,CREATE STREAMLIT,CREATE STAGEHesap kurulumu ve ortam yapılandırması
Snowsight’a giriş yaparak ve uygulamanızın bulunacağı bir veritabanı ve şema seçerek veya oluşturarak başlayın.
My Workspacealanına gidip yeni bir SQL dosyası açın.streamlit_databaseüzerindekistreamlit_schema’mıza erişimi olacakstreamlit_creatoradlı bir rol oluşturalım. Ayrıca, Streamlit uygulamamız için birincil hesaplama kaynağı olacakstreamlit_whadlı bir ambar da oluşturacağız.İlk Streamlit Uygulamanızı Oluşturma
Bunu somutlaştırmak için basit bir uygulama üzerinden ilerleyelim. Snowflake hesabınız ve izinleriniz ayarlandıktan sonra, Snowsight’ta
PROJECTS>>Streamlityolunu izleyin. Bu pencerede sağ üstteki+ Streamlit Appdüğmesine tıklayın.Uygulama adını istediğiniz bir adla doldurun. Uygulama konumunu
STREAMLIT_DBveSTREAMLIT_SCHEMA’yı kullanacak şekilde güncelleyin. Ardından “Run on warehouse” seçeneğini veApp Warehouseolarak “STREAMLIT_WH” seçimini yapın.Bu, düzenleyiciyi açar. Varsayılan olarak küçük bir betikle gelir. Uygulamayı otomatik olarak çalıştırır ve bir önizleme gösterir.
Uygulamaya biraz da ilgilendiğimiz kendi verilerimizden ekleyelim. Mevcut kodumuzun en altına şu küçük parçayı ekleyelim:
Sonra sağ üstteki “Run” düğmesine basın. Bu uygulamadaki önizleme güncellenecek ve örnek tablonun sağladığı verileri işleyecektir. Hem bir veri tablosu hem de bir çubuk grafik görmelisiniz. Buradan sorguları özelleştirebilir, filtreler ekleyebilir veya Streamlit bileşenleriyle arayüzü zenginleştirebilirsiniz.
Burada göreceğiniz şey Snowpark kullanımüdür. Daha önce kullanmadıysanız Snowpark, Python gibi programlama dilleriyle Snowflake verilerini işlemenizi sağlayan Snowflake kütüphanesidir. Verileri Streamlit’e çekmek sıklıkla Snowflake veritabanlarınızla arayüz oluşturmak için Snowpark kullanımını gerektirdiğinden, bu Snowpark girişini özellikle öneririm.
Dağıtım Stratejileri ve Yöntemleri
Snowflake içinde Streamlit’i dağıtmanın birkaç yolu vardır. En kolayı web arayüzü olan Snowsight’ı kullanmaktır; ancak komut satırı arayüzü (CLI) araçlarını da kullanabilirsiniz. Ek olarak, proje organizasyonu ve dağıtımınızı ölçeklendirmeye yardımcı olacak iş akışı araçları ekleyebilirsiniz.
Snowsight ile dağıtım
Önceki bölümde gösterildiği gibi, en basit yöntem Snowflake’in web arayüzü Snowsight’tır. Buradaki artı, uygulamanızı gerçek zamanlı düzenleme ve önizleme için bölünmüş ekran görünümüdür. Bu kurulum, geliştirme sırasında anında geri bildirim almak isteyen geliştiriciler için idealdir.
CLI ile dağıtım
Daha gelişmiş senaryolarda, CLI araçları uygulamaları programatik olarak dağıtmanıza olanak tanır. Bu, özellikle uygulama dağıtımını sürekli tümleştirme ve sürekli teslim (CI/CD) hatlarına entegre ederken faydalıdır. Daha yapılandırılmış bir geliştirici yaklaşımı izleyerek, uygulamalar normal Streamlit uygulamaları gibi
.pydosyaları ve ortam ile Snowflake komutlarını kontrol eden.ymldosyalarıyla birlikte proje klasörlerinde saklanabilir. Bu, değişiklikleri izlemek, otomatik kontroller çalıştırmak ve sorunsuz dağıtım yapmak için GitHub kullanabileceğimiz anlamına gelir.dbt ve iş akışı araçlarıyla entegrasyon
Bir başka seçenek de Streamlit uygulamalarını, Snowflake’in doğal olarak desteklediği dbt (data build tool) gibi iş akışı araçlarıyla birleştirmektir. Örneğin, dbt çekirdek ETL iş akışınızı yönetebilir ve bu akış Streamlit uygulamanıza bağlanır. Aynı dbt projesi içinde Streamlit’i, dbt iş akışınıza uyacak şekilde gerektiğinde otomatik olarak yeniden dağıtabilirsiniz. Bu, karmaşık veri iş akışlarını projeler halinde düzenlemenizi ve dağıtımınızı iş akışınızla birlikte ölçeklendirmenizi sağlar.
Mimari ve Teknik Uygulama
Snowflake içinde Streamlit’in gerçekte nasıl çalıştığından bahsedelim.
Teknik mimari
Snowflake içindeki Streamlit uygulamaları, tamamen Snowflake tarafından yönetilen güvenli, konteyner tabanlı bir ortamda çalışır. Bu tasarım, uygulamaların izole kalmasını sağlarken Snowflake veri kaynakları ve hizmetlerine güvenli bir bağlantı sürdürür. Uygulamanızın karmaşıklığı arttıkça veya veritabanı boyutları büyüdükçe, Snowflake arka planda ölçeklemeyi yönetir.
Ambar yönetimi
Bir uygulamayı başlattığınızda, yapılandırdığınız ambardan hesaplama kaynakları tüketir. SQL sorgularınızda olduğu gibi, ambar boyutu hem performansı hem de maliyeti etkiler; bu nedenle kaynak planlaması önemlidir. Geliştiriciler, takibi basitleştirmek için Streamlit uygulamalarına bağlı bir ambar bulundurmayı faydalı bulur. Ayrıca, Snowflake güvenli dosya depolama için dahili aşamalar kullanır; bu da verilerin platform dışına sızmasını engeller. Bu, verilerinizi güvenliği korurken uygulamanıza beslemeyi kolaylaştırır.
Python paketleri ve ortam
SiS’teki Python ortamları güvenlik için yönetilir ve seçilir. Yalnızca onaylı paketler kullanılabilir ve harici paket kurulumu kısıtlıdır. Ek olarak, betikler, stiller, yazı tipleri ve iframe yerleştirme gibi bazı şeyler güvenlik nedeniyle kısıtlanmıştır. Sağlananların dışında bir işlevsellik gerekiyorsa, bunu Snowpark UDF’leri aracılığıyla uygulamanız veya Snowflake’in desteklediği mevcut Python kütüphanelerine güvenmeniz gerekebilir.
Güvenlik Modeli ve İzinler
Neyse ki SiS, role dayalı erişim kontrolü, paylaşım ve ağ güvenliği gibi Snowflake’in mevcut güvenlik altyapısının çoğunu kullanır.
Role dayalı erişim kontrolü (RBAC)
Snowflake, Streamlit uygulamaları ve verileri için role dayalı erişim kontrolü (RBAC) sistemi kullanır. Verilere erişmek, herhangi bir Streamlit uygulaması ve onun temel verileri için
USAGEayrıcalığını gerektirir. YalnızcaCREATE STREAMLITayrıcalığına sahip roller uygulama oluşturabilir; uygulama sahipliği ise şema düzeyindeki izinlere bağlıdır. Bu, kimlerin uygulama geliştirebileceği ve yönetebileceği üzerinde net bir kontrol sağlar.Paylaşım ve erişim kontrolü
Uygulama paylaşımı da aynı şekilde kontrol edilir. Uygulamalara erişimi kullanıcı rollerine göre verebilir veya kısıtlayabilirsiniz. SQL yürütme için aynı role dayalı izinler geçerlidir. SQL, Streamlit uygulaması üzerinden çalıştırılır ve geliştiricilerin uygun izinler olmadan veritabanlarında SQL sorguları çalıştırmasına izin verilmez.
Ağ ve içerik güvenliği
Ağ tarafında, Snowflake sıkı içerik güvenliği politikaları (CSP) uygular. Bunlar, uygulamaların yetkisiz harici betikleri, stilleri veya kaynakları yüklemesini engelleyerek veri sızdırma veya güvensiz entegrasyon riskini azaltır. Ortama hangi harici kütüphanelerin alındığını en aza indirerek, güvenlik açıkları riski düşürülür ve veri ile kullanıcı gizliliği korunur.
Snowflake Streamlit Performans Optimizasyonu
Uygulamanız karmaşıklaştıkça, doğru işlevselliği sürdürmek için uygun optimizasyon önemlidir.
Sorgu Optimizasyonu ve Önbellekleme
Verimli uygulamalar oluşturmak, hem sorgulara hem de hesaplama kaynaklarına dikkat etmeyi gerektirir. Sorgularınızı, Streamlit uygulamanızın dışında (benzer bir ambarda) test etmek, sorgunuzun gerektirdiği hesaplama çabasını anlamaya yardımcı olur. Darboğazları önlemek için optimize SQL yazmak kritik önemdedir.
Streamlit’in yerleşik önbellek işlevleri olan
st.cache_datavest.cache_resource, yinelenen hesaplamaları ve verilerin yeniden yüklenmesini azaltmaya yardımcı olur. Ancak bir uyarı:st.cache_datavest.cache_resourcetam olarak desteklenmez. Yalnızca oturum bazlı önbelleğe izin verirler; yani kullanıcı her yeni oturum açtığında sorgu ve veriler yeniden yüklenecektir. Bunu aklınızda tutun ve sorgularınızı olabildiğince optimize ettiğinizden emin olun.Ambar Seçimi ve Yapılandırması
Ambar seçimi, uygulama yanıt verebilirliğinde büyük rol oynar. Daha büyük ambarlar hızı artırır ancak maliyeti de yükseltir. Yüksek trafikli uygulamalar için ayrılmış ambarlar en iyi seçenek olabilir. Öte yandan, hafif uygulamalar genellikle performans sorunları olmadan daha küçük ambarlarda çalıştırılabilir.
Uygulama Mimarisi
Uygulama mimarisi de önemlidir. Kademeli veri yükleme ve durum yönetimi, özellikle büyük veri kümeleriyle çalışırken uygulamaları daha duyarlı hale getirebilir. Birden fazla bileşen varsa tüm uygulamanızı bir kerede yüklememeye çalışın. Her an kullanıcıya gerekeni yükleyin. Kaynak kısıtlarını göz önünde bulundurarak uygulama tasarlamak, ileti boyutu veya bellek sınırlarına takılma gibi sorunları önler.
Snowflake İçinde Streamlit’in Kullanım Alanları ve Örnek Uygulamalar
Basit panolar ve veri uygulamalarının ötesinde, Snowflake içinde Streamlit; makine öğrenimi, yapay zeka, iş zekası ve NLP için güçlü araçlardan yararlanabilir. Birkaç kullanım alanını öne çıkaralım.
İş zekâsı ve veri görselleştirmeleri
Analitik ekipleri için Snowflake içinde Streamlit, etkileşimli panolar ve raporlama araçları oluşturmanın bir yoludur. Snowflake veritabanlarınıza bağlı olmak, daha iyi karar alma için panolarda gerçek zamanlı güncellemeler sağlar. Farklı departman ve ekiplere yönelik benzer uygulamaları hızlı ve kolay şekilde dağıtabilirsiniz. Örneklere envanter takipçileri, hesaplama kullanımı panoları veya üst düzey performans özetleri dahildir. Örneğin, Snowflake Cortex ve Snowpark entegrasyonunu Streamlit uygulamasına ekleyerek çağrı verisi transkriptlerini alıp çağrılar üzerinde analitik üretecek çağrı merkezi analitiği geliştirebiliriz.
Makine öğrenimi ve yapay zeka
Verilerinizden gerçekten yararlanmak için Streamlit uygulamaları, makine öğrenimi ve yapay zeka içgörüleri için tasarlanabilir. Örneğin, makine öğrenimi ekipleri; talep tahmini, müşteri segmentasyonu veya anomali tespiti için modelleri sunan etkileşimli uygulamalar dağıtabilir. Cortex AI ile geliştiriciler, geri getirimle artırılmış üretim (RAG) uygulamaları veya sohbet tabanlı yapay zeka araçları da oluşturabilir. Başarılı bir uygulama örneği, bireysel profillere göre müşterilere hedefli çapraz satış önerileri sunan PyTorch modellerini, görsel bir çıkarım uygulaması içinde sunmaktır.
NLP ve ileri analitik
Sohbetler ve e-postalar gibi metin tabanlı geri bildirimlerden içgörü elde etmek için doğal dil işleme (NLP) doğru yoldur. spaCy, NLTK veya Snowflake’in dahili Cortex AI metin işleme kütüphanesi gibi araçları kullanarak tüm bu metin bilgisini duygu analizi, adlandırılmış varlık tanıma ve diğer NLP çözümleri için araçlara dönüştürebiliriz. Örneğin, özetleme ve duygu analizi gibi NLP analizinin büyük kısmını Snowflake Cortex ile ele alabiliriz. Bu da, Streamlit in Snowflake kullanarak yorumlar ve destek sohbetleri üzerinde analitik sağlayan bir veritabanını besler.
Veri toplama ve girdi uygulamaları
Streamlit uygulamaları, ek açıklama araçları veya iş birliğine dayalı giriş arayüzleri gibi veri toplama ve kalite yönetimi için de iyi çalışır. Dosya yüklemeleri 200 MB ile sınırlı olsa da, kullanıcıların potansiyel olarak küçük veri kümelerini veya belgeleri uygulamamızda işleme veya özetleme için yükleyebileceği bir alan sağlayabiliriz. Olanaklar sınırsız!
Snowflake Ekosistemiyle Entegrasyon
Snowflake içinde Streamlit’e sahip olmak, Snowpark ve veri paylaşımı gibi ekosistem içindeki sayısız entegrasyon sayesinde güçlüdür.
Snowpark ile entegrasyon
Snowpark, Snowflake ile Python’da analiz yapmayı çok kolaylaştırır. Gelişmiş veri işleme, dağıtık hesaplamalar ve özel işlevler sağlar. Snowflake içindeki Streamlit uygulamamızda Snowpark dataframe’lerini yerel olarak kullanabildiğimiz için bunu çok az ek yükle kolayca kullanabiliriz. Snowflake ortamınızdaki saklı yordamlar ve UDF’ler gibi şeyleri kullanmak, Snowpark’ın
udfnesnesiyle çok kolaylaşır.Veri paylaşımı ve otomasyon
Snowflake içinde veri paylaşımı basittir ve Snowsight arayüzüyle sadece birkaç tık alır. Snowflake Tasks ve olaya dayalı özellikleri ekleyerek, geliştiriciler iş akışlarını da kolayca otomatikleştirebilir. Örneğin, yeni veri geldiğinde uygulama güncellemelerini tetikleyebilir, hiçbir şeyin bozulmadığından emin olmak için veri kontrolleri yapabilir ve verileri taze tutabilirsiniz.
dbt ile birleştirildiğinde, veri dönüşümlerinin doğrudan Streamlit uygulamalarına aktığı uçtan uca iş akışları oluşturabilirsiniz; böylece kullanıcılara gerçek zamanlı güncellemeler sağlanır.
Faturalama ve Maliyet Hususları
Tüm bulut platformlarında olduğu gibi, faturalama ve maliyet hususları önemlidir. Pahalı bir Streamlit uygulamasının kullanılması olası değildir; bu nedenle maliyetleri önceden düşünmek, sorunsuz bir geliştirme süreci sağlar.
Snowflake içinde Streamlit’in maliyetlerini anlama
Snowflake içinde Streamlit’in maliyetleri, Snowflake’teki diğer işlemler gibidir. Streamlit için belirli bir veritabanı/şemanız varsa, o verilerle ilişkili olağan depolama maliyetleriniz olacaktır. Daha önce belirttiğimiz gibi, Snowflake içindeki Streamlit hizmetlerinize özel olarak tahsis edilmiş bir ambar oluşturmak isteyeceksiniz; böylece hesaplama maliyetlerini de takip edebilirsiniz. Daha büyük ambar boyutları, uygulama eşzamanlılığı (birden fazla kullanıcı oturumu) ve veri hacmi maliyetlerinizin başlıca itici güçleri olacaktır.
Kaynak Kullanımını Optimize Etme
Harcamayı kontrol etmek için ambarların doğru boyutlandırılması önemlidir. Hafif iş yüklerine sahip küçük uygulamalar gereksiz yere büyük ambarları kullanmaktan kaçınmalıdır. Streamlit önbellekleme, oturumlar içinde yinelenen sorguları en aza indirerek hesaplama kullanımını düşürmeye yardımcı olur. Snowflake ayrıca tüketimi izleyen ve veri odaklı maliyet ayarlamaları yapmanızı sağlayan izleme araçları sunar.
Sınırlamalar ve Dikkat Edilmesi Gerekenler
Snowflake içinde Streamlit güçlü olsa da, özellikle harici paketler ve dosya yüklemeleriyle ilgili bazı kısıtlamalar vardır.
İçerik güvenliği politikası (CSP) kısıtlamaları
Platform, veri güvenliğini sağlamak için sıkı içerik güvenliği politikaları uygular. Özel betikler, stiller ve harici bir alan gerektiren şeyler daha muhtemelen engellenecektir. Kullandığınız bileşenlerin harici çağrılar gerektirmediğinden emin olun. Bu, uygulamanızın güvenliğini büyük ölçüde artırır; ancak kendi Streamlit uygulamalarınızdan geliyorsanız alışık olabileceğiniz bazı özelleştirmeleri sınırlar.
Veri aktarımı ve önbellekleme sınırlamaları
Büyük veri kümelerini yönetmek, önbellekleme ve ileti aktarımındaki bazı sınırlamalar nedeniyle zor olabilir. Önbelleğe almanın temel sınırlaması, oturum bazlı olması ve kullanıcı bazlı olmamasıdır. Dolayısıyla uygulamaları yeniden ziyaret eden ve yeni oturum başlatan kullanıcıların verileri yeniden yüklemesi gerekir. Kullanıcılarınızı ve birden fazla kez yeni oturum başlatıp başlatmayacaklarını dikkatle değerlendirin. Öyleyse, oturumlar arasında veri yükünü nasıl en aza indirebileceğinizi düşünün.
Sorguların boyutu veya bellekteki veri miktarı için açık bir sınır olmasa da, iletiler 32 MB ile sınırlıdır. Bu, büyük dataframe’lerin görüntülenmesi ve son derece karmaşık haritaların bir sınırlayıcı faktör olabileceği anlamına gelir. Kullanıcılara göstermenin hayati olduğu şeyleri ve basitleştirilebilecekleri göz önünde bulundurun.
Dosya Yükleme ve Harici Depolama Kısıtlamaları
Dosya yüklemeleri çalışır; ancak boyutları 200 MB ile sınırlıdır. Ayrıca harici aşamalarla doğrudan çalışamayacak ve veriyi önce Snowflake’e taşımanız gerekecektir. Bu nedenle doğrudan Apache Iceberg’den çekmek çalışmaz; ancak dahili bir veri gölünden bu veriyi çekmek çalışır.
Ayrıca, dosya yükleme işlevselliği boyut olarak sınırlıdır ve harici aşamalar şu anda desteklenmemektedir; bu da uygulamaların dosyaları nasıl ele aldığını kısıtlar.
Sonuç
Snowflake içinde Streamlit, Snowflake ortamınızdan ayrılmadan etkileşimli veri uygulamaları oluşturup dağıtmanın güçlü ve entegre bir yolunu sunar. Snowpark, Cortex AI ve dbt ile gelişmiş entegrasyonları desteklerken güvenlik, ölçeklenebilirlik ve kullanım kolaylığını birleştirir.
Harici kaynaklar ve dosya yüklemelerine yönelik kısıtlamalar gibi sınırlamalar olsa da, hızlı yineleme, yönetilen altyapı ve sorunsuz paylaşımın sağladığı faydalar, SiS’i veri ekipleri için dönüştürücü bir platform haline getirir. Yeni başlayanlar küçük ölçekli—basit panolarla deney yaparak—başlayabilir ve kurumsal düzeyde yapay zeka ve analitik uygulamalara kadar ölçekleyebilir. Snowflake hakkında daha fazla bilgi için şunlara göz atın: