Azure Databricks göl evine veri yükleme
Azure Databricks, Delta Lake tarafından desteklenen bir lakehouse’a veri yüklemek için çeşitli yöntemler sunar. Bu makalede desteklenen alım araçları ve veri kaynağı ve gecikme süresi gibi ölçütlere göre hangi yöntemin kullanılacağına ilişkin yönergeler listelenmektedir.
Tüketim yöntemleri
Aşağıdaki yöntemleri kullanarak Databricks'e veri alabilirsiniz:
- Seyrek işleme için bir veri satırı kümesinin Toplu veri alımı
- Gerçek zamanlı işleme için gelen tek tek veri satırlarının veya veri satırı kümelerinin Akış alımı
Alınan veriler Delta tablolarına yüklenir bu tablolar aşağı akış verilerinizde ve yapay zeka kullanım örneklerinizde kullanılabilir. Databricks'in Lakehouse mimarisi nedeniyle, kullanım örnekleri arasında verilerinizi yinelemeniz gerekmez ve tüm verilerinizde merkezi erişim denetimi, denetim, köken ve veri bulma için Unity Kataloğu'nu kullanabilirsiniz.
Toplu veri alımı
Toplu veri yükleme ile, verileri genellikle bir zamanlamaya göre (örneğin, her gün) veya manuel olarak tetiklenerek Databricks'e satır kümeleri (veya toplu işlemler) olarak yüklersiniz. Bu, geleneksel ayıklama, dönüştürme, yükleme (ETL) kullanım örneklerinin "ayıklama" parçasını temsil eder. Aşağıdakilerden veri yüklemek için toplu veri alımını kullanabilirsiniz:
- CSV'ler gibi yerel dosyalar
- Amazon S3, Azure Data Lake Storage ve Google Cloud Storage dahil olmak üzere bulut nesne depolaması
- Salesforce gibi SaaS uygulamaları ve SQL Server gibi veritabanları
Toplu veri alımı CSV, TSV, JSON, XML, Avro, ORC, Parquet ve metin dosyaları gibi çok çeşitli dosya kaynağı biçimlerini destekler.
Databricks hem geleneksel toplu alma hem de kademeli toplu alma seçeneklerini destekler. Geleneksel toplu alma işlemi her çalıştığında tüm kayıtları işlerken, artımlı toplu alma veri kaynağındaki yeni kayıtları otomatik olarak algılar ve zaten alınmış olan kayıtları yoksayar. Bu, işlemden geçirilmesi gereken veri miktarının azalması ve sonuç olarak alım işlerinin daha hızlı çalışarak işlem kaynaklarını daha verimli kullanması anlamına gelir.
Geleneksel (tek seferlik) toplu veri etkileşimi
Veri ekleme kullanıcı arabirimini kullanarak yerel veri dosyalarını karşıya yükleyebilir veya genel URL'den dosya indirebilirsiniz. Bkz. dosyaları karşıya yükleme.
Artımlı toplu veri alımı
Bu bölümde desteklenen artımlı toplu veri alma araçları açıklanmaktadır.
Akış tabloları
CREATE STREAMING TABLE
SQL komutu, bulut nesne depolamasından akış tablolarına artımlı olarak veri yüklemenizi sağlar. Bkz. CREATE STREAMING TABLE.
Örnek: Akış tablolarını kullanarak artımlı toplu veri alma
CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM read_files("/databricks-datasets/retail-org/customers/", "csv")
Bulut nesne depolama bağlayıcısı
Yerleşik bulut nesne depolama bağlayıcısı olan Auto Loader, Amazon S3 (S3), Azure Data Lake Storage 2. Nesil (ALDS2) veya Google Cloud Storage'a (GCS) ulaştıklarında yeni veri dosyalarını artımlı ve verimli bir şekilde işlemenizi sağlar. Bkz. Otomatik Yükleyici.
Örnek: Otomatik Yükleyici kullanılarak artımlı veriş yüklemesi
df = spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("rescuedDataColumn", "_rescued_data")
.schema("/databricks-datasets/retail-org/customers/schema")
.load("/databricks-datasets/retail-org/customers/")
Tam olarak yönetilen bağlayıcılar
Lakeflow Connect, Salesforce gibi SaaS uygulamalarından ve SQL Server gibi veritabanlarından almak için tam olarak yönetilen bağlayıcılar sağlar. Yönetilen bağlayıcılar aşağıdakiler kullanılarak kullanılabilir:
- Databricks kullanıcı arabirimi
- Databricks CLI
- Databricks API'leri
- Databricks SDK'ları
- Databricks Varlık Paketleri (DAB)
Bkz. Lakeflow Connect.
Akış verilerinin alınması
Akış alımıyla, veri satırlarını veya veri satırlarının toplu işlemlerini oluşturulurken sürekli yüklersiniz, böylece neredeyse gerçek zamanlıya ulaştıkça sorgulayabilirsiniz. Apache Kafka, Amazon Kinesis, Google Pub/Sub ve Apache Pulsar gibi kaynaklardan akış verilerini yüklemek için akış alımını kullanabilirsiniz.
Databricks, yerleşik bağlayıcıları kullanarak akış alımını da destekler. Bu bağlayıcılar, akış kaynaklarından gelen yeni verileri artımlı ve verimli bir şekilde işlemenizi sağlar. Akış veri kaynaklarını yapılandırma için bkz. .
Örnek: Kafka'dan veri akışı alımı
spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "<server:ip>")
.option("subscribe", "topic1")
.option("startingOffsets", "latest")
.load()
DLT ile Toplu iş ve akış alımını
Databricks, güvenilir ve ölçeklenebilir veri işleme işlem hatları oluşturmak için DLT kullanılmasını önerir. DLT hem toplu hem de akış alımını destekler ve Otomatik Yükleyici tarafından desteklenen herhangi bir veri kaynağından veri alabilirsiniz.
Örnek: DLT kullanılarak aşamalı toplu alım
@dlt.table
def customers():
return (
spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.load("/databricks-datasets/retail-org/customers/")
)
Örnek: DLT kullanarak Kafka'dan akış veri alma
@dlt.table
def kafka_raw():
return (
spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "<server:ip>")
.option("subscribe", "topic1")
.option("startingOffsets", "latest")
.load()
)
Veri giriş zamanlamaları
Verileri tek seferlik bir işlem olarak, yinelenen bir zamanlamaya göre veya sürekli olarak alabilirsiniz.
- Neredeyse gerçek zamanlı akış kullanım örnekleri için sürekli modu kullanın.
- Toplu alım kullanım örnekleri için bir kez alın veya yinelenen bir zamanlama ayarlayın.
Bkz. İşler ile Alımı ve Tetiklenmiş veya sürekli işlem hattı modu.
Veri alma iş ortakları
Birçok üçüncü taraf araç, Databricks'e toplu veya akış veri alımını destekler. Databricks çeşitli üçüncü taraf tümleştirmelerini doğrular, ancak kaynak sistemlere erişimi yapılandırma ve verileri alma adımları araçlara göre farklılık gösterir. Doğrulanmış araçların listesi için bkz. Veri Alma İş Ortakları. Bazı teknoloji iş ortakları, üçüncü taraf araçlarını lakehouse verilerine bağlamayı kolaylaştıran bir kullanıcı arabirimi sağlayan Databricks İş Ortağı Bağlantısı'nde de yer alır.
DIY işleme
Databricks genel bir işlem platformu sağlar. Sonuç olarak, Python veya Java gibi Databricks tarafından desteklenen herhangi bir programlama dilini kullanarak kendi alım bağlayıcılarınızı oluşturabilirsiniz. Ayrıca veri yükleme aracı, Airbyte ve Debezium gibi popüler açık kaynak bağlayıcı kitaplıklarını içeri aktarabilir ve kullanabilirsiniz.
Alternatif alım yöntemleri
Databricks, yüksek veri hacimlerine, düşük gecikme süreli sorgulamaya ve üçüncü taraf API sınırlarına uyacak şekilde ölçeklendirildiğinden çoğu kullanım örneği için alımı önerir. Veri alımı, kaynak sistemlerinizdeki verileri Azure Databricks'e kopyalar ve bu da zaman içinde eskimiş olabilecek yinelenen verilere neden olur. Verileri kopyalamak istemiyorsanız aşağıdaki araçları kullanabilirsiniz:
- Lakehouse Federation, verilerinizi taşımadan dış veri kaynaklarını sorgulamanıza olanak tanır.
- Delta Sharing, verileri platformlar, bulutlar ve bölgeler arasında güvenli bir şekilde paylaşmanızı sağlar.
Ancak, verileri kopyalamak istemiyorsanız Lakehouse Federation veya Delta Sharing kullanın.
Delta Sharing ne zaman kullanılır?
Aşağıdaki senaryolar için Delta Paylaşımı'nı seçin:
- Veri yinelemeyi sınırlama
- Mümkün olan en yeni verileri sorgulama
Lakehouse Federasyonu ne zaman kullanılır?
Aşağıdaki senaryolar için Lakehouse Federasyonu'nu seçin.
- ETL işlem hatlarınızda geçici raporlama veya kavram kanıtı çalışması
Alma yöntemi seçerken dikkat edilmesi gerekenler
Saygı | Yönlendirme |
---|---|
Veri kaynağı | Veri kaynağı için Lakeflow Connect yerel bağlayıcıları varsa, bu verileri almanın en basit yolu olacaktır. Lakeflow Connect tarafından desteklenmeyen veri kaynakları için, kaynaktan verileri ayıklayın ve verileri Databricks'e almak için Otomatik Yükleyici'yi kullanın. Yerel dosyalar için Databricks kullanıcı arabirimini kullanarak verileri karşıya yükleyin. |
Gecikme | Verileri neredeyse gerçek zamanlı olarak analiz etmek istiyorsanız artımlı işlemeden yararlanmak için akışı kullanın. Akış ile, her kayıt gelir gelmez veriler sorgulanabilir. Aksi takdirde toplu alım kullanın. |
Veri taşıma | Kaynak sistemlerinizden Databricks'e veri kopyalayamıyorsanız Lakehouse Federasyonu veya Delta Paylaşımı'nı kullanın. |
Verileri Delta Lake'e geçirme
Var olan verileri Delta Lake'e geçirmeyi öğrenmek için bkz . Delta Lake'e veri geçirme.
COPY INTO (eski)
CREATE STREAMING TABLE
SQL komutu, bulut nesne depolama alanından artımlı alım için eski COPY INTO
SQL komutuna önerilen alternatiftir. Bkz. COPY INTO. Daha ölçeklenebilir ve güçlü bir dosya alımı deneyimi için Databricks, SQL kullanıcılarının COPY INTO
yerine akış tablolarından yararlanmasını önerir.