Zephyrnet Logosu

Amazon Data Firehose ve Snowflake |'ı kullanarak gerçek zamanlı akışla veri mimarinizi yükseltin. Amazon Web Hizmetleri

Tarih:

Günümüzün hızlı dünyası, zamanında bilgi ve kararlar talep ediyor ve bu da veri akışının önemini artırıyor. Akış verileri, çeşitli kaynaklardan sürekli olarak oluşturulan verileri ifade eder. Tıklama akışı olayları, değişiklik verileri yakalama (CDC), uygulama ve hizmet günlükleri ve Nesnelerin İnterneti (IoT) veri akışları gibi bu verilerin kaynakları hızla çoğalıyor. Snowflake, akış verilerini platformuna getirmek için iki seçenek sunar: Snowpipe ve Snowflake Snowpipe Streaming. Snowpipe, büyük dosyaların yüklenmesi gibi dosya alımı (toplu işlem) kullanım durumları için uygundur. Amazon Basit Depolama Hizmeti (Amazon S3) Snowflake'e. Mart 2023'te kullanıma sunulan daha yeni bir özellik olan Snowpipe Streaming, sürekli bir veri akışının yüklenmesi gibi satır kümesi alımı (akış) kullanım durumları için uygundur. Amazon Kinesis Veri Akışları or Apache Kafka için Amazon Tarafından Yönetilen Akış (Amazon MSK'sı).

Snowpipe Streaming'den önce, AWS müşterileri Snowpipe'ı her iki kullanım durumu için de kullanıyordu: dosya alımı ve satır kümesi alımı. Öncelikle akış verilerini Kinesis Data Streams veya Amazon MSK'ya aktardınız, ardından akışları toplayıp Amazon S3'e yazmak için Amazon Data Firehose'u kullandınız ve ardından verileri Snowflake'e yüklemek için Snowpipe'ı kullandınız. Ancak bu çok adımlı süreç, verilerin Snowflake'te analiz için kullanılabilir hale gelmesinden önce bir saate kadar gecikmelere neden olabilir. Üstelik, özellikle Snowpipe'ın Snowflake müşteri kümesine yüklemesi gereken küçük dosyalarınız olduğunda pahalıdır.

Bu sorunu çözmek için Amazon Data Firehose artık Snowpipe Streaming ile entegre olarak Kinesis Data Streams, Amazon MSK ve Firehose Direct PUT'tan Snowflake'e veri akışlarını düşük bir maliyetle saniyeler içinde yakalamanıza, dönüştürmenize ve iletmenize olanak tanıyor. Amazon Data Firehose konsolunda birkaç tıklamayla Snowflake'e veri iletmek için bir Firehose akışı oluşturabilirsiniz. Amazon Data Firehose'u kullanmak için hiçbir taahhüt veya ön yatırım yoktur ve yalnızca aktarılan veri miktarı kadar ödeme yaparsınız.

Amazon Data Firehose'un bazı temel özellikleri şunlardır:

  • Tümüyle yönetilen sunucusuz hizmet – Kaynakları yönetmenize gerek yoktur ve Amazon Data Firehose, sürekli yönetim gerektirmeden veri kaynağınızın aktarım hızına uyacak şekilde otomatik olarak ölçeklenir.
  • Kod gerektirmeden kullanımı kolay – Uygulama yazmanıza gerek yok.
  • Gerçek zamanlı veri dağıtımı – Verileri saniyeler içinde hızlı ve verimli bir şekilde hedeflerinize ulaştırabilirsiniz.
  • 20'den fazla AWS hizmetiyle entegrasyon – Kinesis Data Streams, Amazon MSK, Amazon VPC Flow Logs, AWS WAF logları, Amazon CloudWatch Logs, Amazon EventBridge, AWS IoT Core ve daha fazlası gibi birçok AWS hizmeti için sorunsuz entegrasyon mevcuttur.
  • Kullandıkça öde modeli – Yalnızca Amazon Data Firehose'un işlediği veri hacmi için ödeme yaparsınız.
  • Bağlantı – Amazon Data Firehose, VPC'nizdeki genel veya özel alt ağlara bağlanabilir.

Bu gönderide, gelişmiş analizler gerçekleştirmek için akış verilerini AWS'den Snowflake'e saniyeler içinde nasıl getirebileceğiniz açıklanmaktadır. Yaygın mimarileri araştırıyor ve düşük gecikme süreli veri akışı için düşük kodlu, sunucusuz, uygun maliyetli bir çözümün nasıl kurulacağını gösteriyoruz.

Çözüme genel bakış

AWS'den Snowflake'e veri akışı sağlamaya yönelik çözümü uygulamaya yönelik adımlar aşağıda verilmiştir:

  1. Snowflake veritabanı, şeması ve tablosu oluşturun.
  2. Kinesis veri akışı oluşturun.
  3. Güvenli bir özel bağlantı kullanarak kaynak olarak Kinesis Veri Akışları ve hedef olarak Snowflake ile bir Firehose dağıtım akışı oluşturun.
  4. Kurulumu test etmek için örnek akış verilerini oluşturun. Amazon Kinesis Veri Oluşturucu (KDG), hedef olarak Firehose teslimat akışıyla.
  5. Snowflake'e yüklenen verileri doğrulamak için Snowflake tablosunu sorgulayın.

Çözüm aşağıdaki mimari diyagramda gösterilmektedir.

Önkoşullar

Aşağıdaki ön koşullara sahip olmalısınız:

Snowflake veritabanı, şeması ve tablosu oluşturma

Snowflake'te verilerinizi ayarlamak için aşağıdaki adımları tamamlayın:

  • Snowflake hesabınıza giriş yapın ve veritabanını oluşturun:
    create database adf_snf;

  • Yeni veritabanında bir şema oluşturun:
    create schema adf_snf.kds_blog;

  • Yeni şemada bir tablo oluşturun:
    create or replace table iot_sensors
    (sensorId number,
    sensorType varchar,
    internetIP varchar,
    connectionTime timestamp_ntz,
    currentTemperature number
    );

Kinesis veri akışı oluşturun

Veri akışınızı oluşturmak için aşağıdaki adımları tamamlayın:

  • Kinesis Veri Akışları konsolunda şunu seçin: Veri akışları Gezinti bölmesinde.
  • Klinik Veri akışı oluşturun.
  • Veri akışı adı için bir ad girin (örneğin, KDS-Demo-Stream).
  • Kalan ayarları varsayılan olarak bırakın.
  • Veri akışı oluştur'u seçin.

Bir Firehose teslimat akışı oluşturun

Kaynak olarak Kinesis Data Streams ve hedef olarak Snowflake ile bir Firehose dağıtım akışı oluşturmak için aşağıdaki adımları tamamlayın:

  • Amazon Data Firehose konsolunda şunu seçin: Firehose akışı oluştur.
  • İçin Kaynak, seçmek Amazon Kinesis Veri Akışları.
  • İçin Varış yeri, seçmek Kar taneciği.
  • İçin Kinesis veri akışı, daha önce oluşturduğunuz veri akışına göz atın.
  • İçin Firehose akış adı, varsayılan olarak oluşturulan adı bırakın veya tercih ettiğiniz bir adı girin.
  • Altında Bağlantı ayarlarıAmazon Data Firehose'u Snowflake'e bağlamak için aşağıdaki bilgileri sağlayın:
    • İçin Snowflake hesap URL'si, Snowflake hesabınızın URL'sini girin.
    • İçin kullanıcı, önkoşullarda oluşturulan kullanıcı adını girin.
    • İçin Özel anahtar, önkoşullarda oluşturulan özel anahtarı girin. Özel anahtarın PKCS8 formatında olduğundan emin olun. PEM'i dahil etmeyin header-BEGIN önek ve footer-END özel anahtarın bir parçası olarak sonek. Anahtar birden fazla satıra bölünmüşse satır sonlarını kaldırın.
    • İçin Rolseçin Özel Kar Tanesi rolünü kullan ve veritabanı tablosuna yazma erişimi olan IAM rolünü girin.

Genel veya özel bağlantıyı kullanarak Snowflake'e bağlanabilirsiniz. Bir VPC uç noktası sağlamazsanız varsayılan bağlantı modu geneldir. Snowflake ağ politikanızda Firehose IP'lerinin listelenmesine izin vermek için bkz. Hedefiniz için Snowflake'i Seçin. Özel bir bağlantı URL'si kullanıyorsanız VPCE kimliğini şunu kullanarak sağlayın: SİSTEM$GET_PRIVATELINK_CONFIG:

select SYSTEM$GET_PRIVATELINK_CONFIG();

Bu işlev, aşağıdaki ekran görüntüsünde gösterildiği gibi, Snowflake hizmetine yönelik özel bağlantının self servis yapılandırmasını kolaylaştırmak için gerekli Snowflake hesap bilgilerinin JSON temsilini döndürür.

  • Bu yazı için özel bir bağlantı kullanıyoruz. VPCE KimliğiVPCE kimliğini girin.
  • Altında Veritabanı yapılandırma ayarlarıSnowflake veritabanınızı, şemanızı ve tablo adlarınızı girin.
  • içinde Yedekleme ayarları bölümü S3 yedekleme paketi, önkoşullar kapsamında oluşturduğunuz paketi girin.
  • Klinik Firehose akışı oluştur.

Alternatif olarak, bir AWS CloudFormation Amazon Data Firehose konsolunu kullanmak yerine hedef olarak Snowflake ile Firehose teslim akışını oluşturmak için şablon.

CloudFormation yığınını kullanmak için şunu seçin:

BDB-4100-CFN-Başlatma-Yığın

Örnek akış verileri oluşturun
Oluşturduğunuz Kinesis veri akışıyla KDG'den örnek akış verileri oluşturun:

{ 
"sensorId": {{random.number(999999999)}}, 
"sensorType": "{{random.arrayElement( ["Thermostat","SmartWaterHeater","HVACTemperatureSensor","WaterPurifier"] )}}", 
"internetIP": "{{internet.ip}}", 
"connectionTime": "{{date.now("YYYY-MM-DDTHH:m:ss")}}", 
"currentTemperature": {{random.number({"min":10,"max":150})}} 
}

Snowflake tablosunu sorgulama

Snowflake tablosunu sorgulayın:

select * from adf_snf.kds_blog.iot_sensors;

Kinesis Data Streams'e gönderilen KDG tarafından oluşturulan verilerin Amazon Data Firehose aracılığıyla Snowflake tablosuna yüklendiğini doğrulayabilirsiniz.

Sorun giderme

KDG, Firehose dağıtım akışına veri gönderdikten sonra veriler Kinesis Data Steams'e yüklenmezse yenileyin ve KDG'de oturum açtığınızdan emin olun.

Snowflake hedef tablosu tanımında herhangi bir değişiklik yaptıysanız Firehose dağıtım akışını yeniden oluşturun.

Temizlemek

Gelecekte masraf oluşmasını önlemek için, bu alıştırmanın bir parçası olarak oluşturduğunuz kaynakları daha fazla kullanmayı planlamıyorsanız silin.

Sonuç

Amazon Data Firehose, verileri Snowpipe Streaming'e iletmenin basit bir yolunu sunarak maliyetlerden tasarruf etmenize ve gecikme süresini saniyelere indirmenize olanak tanır. Amazon Kinesis Firehose with Snowflake'i denemek için hedef laboratuvar olarak Amazon Data Firehose with Snowflake'e bakın.


Yazarlar Hakkında

Swapna Bandla AWS Analitik Uzmanı SA Ekibinde Kıdemli Çözüm Mimarıdır. Swapna, müşterilerin veri ve analiz ihtiyaçlarını anlama ve onları bulut tabanlı iyi mimarili çözümler geliştirme konusunda destekleme konusunda tutkuludur. İş dışında ailesiyle vakit geçirmekten hoşlanıyor.

Mustafa Mansur Amazon Kinesis Data Firehose üzerinde çalıştığı Amazon Web Services'ta Baş Ürün Müdürü – Teknoloji'dir. Müşteriler için karmaşık sorunları büyük ölçekte çözen sezgisel ürün deneyimleri geliştirme konusunda uzmandır. Amazon Kinesis Data Firehose üzerinde yoğun bir şekilde çalışmadığı zamanlarda, Mostafa'yı muhtemelen rakiplerle mücadele etmeyi ve şutlarını mükemmelleştirmeyi sevdiği squash kortunda bulacaksınız.

bosco albuquerque AWS'de Kıdemli İş Ortağı Çözümleri Mimarıdır ve kurumsal veritabanı satıcıları ve bulut sağlayıcılarının veritabanı ve analitik ürünleriyle çalışma konusunda 20 yılı aşkın deneyime sahiptir. Teknoloji şirketlerinin veri analitiği çözümleri ve ürünleri tasarlamasına ve uygulamasına yardımcı oldu.

spot_img

En Son İstihbarat

spot_img