Bagikan melalui


Menyerap data ke dalam lakehouse Azure Databricks

Azure Databricks menawarkan berbagai metode untuk memasukkan data ke dalam lakehouse yang didukung oleh Delta Lake. Artikel ini mencantumkan alat penyerapan yang didukung dan panduan tentang metode mana yang akan digunakan berdasarkan kriteria seperti sumber data dan latensi.

metode penyerapan

Anda dapat menyerap data ke Dalam Databricks menggunakan metode berikut:

  • penyerapan Batch dari sekumpulan baris data untuk pemrosesan yang jarang
  • Penyerapan streaming baris data individual atau kumpulan baris data saat tiba untuk pemrosesan real time

Data yang diserap dimuat ke dalam tabel Delta yang kemudian dapat digunakan di seluruh data hilir dan kasus penggunaan AI Anda. Karena arsitektur Databricks Lakehouse, Anda tidak perlu menduplikasi data Anda di seluruh kasus penggunaan, dan Anda dapat memanfaatkan Unity Catalog untuk kontrol akses terpusat, audit, silsilah data, dan penemuan data di semua data Anda.

Penyerapan Batch

Dengan pemasukan batch, Anda dapat memuat data sebagai kumpulan (atau batch) baris ke dalam Databricks, sering kali berdasarkan jadwal (misalnya, setiap hari) atau dapat dipicu secara manual. Ini mewakili bagian "ekstraksi" dari ekstraksi, transformasi, pemuatan (ETL) kasus penggunaan tradisional. Anda dapat menggunakan ingest batch untuk memuat data dari:

  • File-file lokal, misalnya CSV
  • Penyimpanan objek cloud, termasuk Amazon S3, Azure Data Lake Storage, dan Google Cloud Storage
  • Aplikasi SaaS seperti Salesforce dan database seperti SQL Server

Ingesti batch mendukung berbagai format sumber file, termasuk file CSV, TSV, JSON, XML, Avro, ORC, Parquet, dan file teks.

Databricks mendukung penyerapan batch tradisional dan opsi penyerapan batch inkremental. Meskipun penyerapan batch tradisional memproses semua rekaman setiap kali berjalan, penyerapan batch inkremental secara otomatis mendeteksi rekaman baru di sumber data dan mengabaikan rekaman yang telah diserap. Ini berarti lebih sedikit data yang perlu diproses dan, akibatnya, pekerjaan penyerapan berjalan lebih cepat dan menggunakan sumber daya komputasi dengan lebih efisien.

penyerapan batch Tradisional (satu kali)

Anda dapat mengunggah file data lokal atau mengunduh file dari URL publik menggunakan UI tambahkan data. Lihat Mengunggah file.

Penyerapan batch inkremental

Bagian ini menjelaskan alat pemrosesan batch inkremental yang didukung.

Tabel aliran data

Perintah SQL CREATE STREAMING TABLE memungkinkan Anda memuat data secara bertahap ke dalam tabel streaming dari penyimpanan objek cloud. Lihat CREATE STREAMING TABLE.

Contoh : Penyerapan batch inkremental menggunakan tabel streaming

CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM read_files("/databricks-datasets/retail-org/customers/", "csv")
konektor penyimpanan objek cloud

Auto Loader, konektor penyimpanan objek cloud bawaan, memungkinkan Anda memproses file data baru secara bertahap dan efisien saat tiba di Amazon S3 (S3), Azure Data Lake Storage Gen 2 (ALDS2), atau Google Cloud Storage (GCS). Lihat Auto Loader.

Contoh : Penyerapan batch inkremental menggunakan Auto Loader

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/")
Konektor yang dikelola sepenuhnya

Lakeflow Connect menyediakan konektor yang dikelola penuh untuk diserap dari aplikasi SaaS seperti Salesforce dan database seperti SQL Server. Konektor terkelola tersedia menggunakan yang berikut ini:

  • Databricks UI
  • Databricks CLI
  • API Databricks
  • SDK Databricks
  • Bundel Aset Databricks (DAB)

Lihat Lakeflow Connect.

penyerapan streaming

Dengan penyerapan streaming, Anda terus-menerus memuat baris data atau kumpulan baris data saat data tersebut dihasilkan sehingga Anda dapat mengolahnya segera setelah tiba hampir mendekati waktu nyata. Anda dapat menggunakan penyerapan streaming untuk memuat data streaming dari sumber seperti Apache Kafka, Amazon Kinesis, Google Pub/Sub, dan Apache Pulsar.

Databricks juga mendukung penyerapan streaming menggunakan konektor bawaan. Konektor ini memungkinkan Anda memproses data baru secara bertahap dan efisien saat tiba dari sumber streaming. Lihat Konfigurasi sumber data streaming.

Contoh : Penyerapan streaming dari Kafka

spark.readStream
    .format("kafka")
    .option("kafka.bootstrap.servers", "<server:ip>")
    .option("subscribe", "topic1")
    .option("startingOffsets", "latest")
    .load()

Batch dan penyerapan streaming dengan DLT

Databricks merekomendasikan penggunaan DLT untuk membangun alur pemrosesan data yang andal dan dapat diskalakan. DLT mendukung penyerapan batch dan streaming, dan Anda dapat menyerap data dari sumber data apa pun yang didukung oleh Auto Loader.

Contoh : Penyerapan batch inkremental menggunakan DLT

@dlt.table
def customers():
  return (
    spark.readStream.format("cloudFiles")
      .option("cloudFiles.format", "csv")
      .load("/databricks-datasets/retail-org/customers/")
  )

Contoh : Penyerapan streaming dari Kafka menggunakan DLT

@dlt.table
def kafka_raw():
  return (
    spark.readStream
      .format("kafka")
      .option("kafka.bootstrap.servers", "<server:ip>")
      .option("subscribe", "topic1")
      .option("startingOffsets", "latest")
      .load()
  )

Jadwal konsumsi

Anda dapat menyerap data sebagai operasi satu kali, pada jadwal berulang, atau terus menerus.

  • Untuk kasus penggunaan streaming hampir real-time, gunakan mode berkelanjutan.
  • Untuk kasus penggunaan penyerapan batch, serap satu kali atau atur jadwal berulang.

Lihat Penyerapan dengan Pekerjaan dan Dipicu vs. mode alur berkelanjutan.

mitra penyerapan

Banyak alat pihak ketiga mendukung pengambilan batch atau streaming ke Databricks. Databricks memvalidasi berbagai integrasi pihak ketiga, meskipun langkah-langkah untuk mengonfigurasi akses ke sistem sumber dan menyerap data bervariasi menurut alat. Lihat mitra pengambilan data untuk daftar alat yang divalidasi. Beberapa mitra teknologi juga ditampilkan dalam Databricks Partner Connect, yang menyediakan UI yang menyederhanakan proses menghubungkan alat pihak ketiga ke data lakehouse.

penyerapan DIY

Databricks menyediakan platform komputasi umum. Akibatnya, Anda dapat membuat konektor penyerapan Anda sendiri menggunakan bahasa pemrograman apa pun yang didukung oleh Databricks, seperti Python atau Java. Anda juga dapat mengimpor dan memanfaatkan pustaka konektor sumber terbuka populer seperti alat pemuatan data, Airbyte, dan Debezium.

alternatif penyerapan

Databricks merekomendasikan pengambilan data untuk sebagian besar kasus penggunaan karena dapat menangani volume data yang tinggi, kueri dengan latensi rendah, dan batas API dari pihak ketiga. Penyerapan menyalin data dari sistem sumber Anda ke Azure Databricks, yang menghasilkan data duplikat yang mungkin menjadi basi dari waktu ke waktu. Jika Anda tidak ingin menyalin data, Anda bisa menggunakan alat berikut:

  • Federasi Lakehouse memungkinkan Anda mengkueri sumber data eksternal tanpa memindahkan data Anda.
  • Delta Sharing memungkinkan Anda untuk berbagi data dengan aman di seluruh platform, cloud, dan wilayah.

Namun, jika Anda tidak ingin menyalin data, gunakan Lakehouse Federation atau Delta Sharing.

Kapan menggunakan Delta Sharing

Pilih Berbagi Delta untuk skenario berikut:

  • Membatasi duplikasi data
  • Mengkueri data sesegar mungkin

Kapan menggunakan Federasi Lakehouse

Pilih Federasi Lakehouse untuk skenario berikut:

  • Pelaporan ad hoc atau pekerjaan prototipe konsep di dalam pipeline ETL Anda

Pertimbangan saat memilih metode penyerapan

Pertimbangan Bimbingan
Sumber data Jika konektor asli Lakeflow Connect ada untuk sumber data, ini akan menjadi cara paling sederhana untuk menyerap data. Untuk sumber data yang tidak didukung oleh Lakeflow Connect, ekstrak data dari sumbernya lalu gunakan Auto Loader untuk menyerap data ke dalam Databricks. Untuk file lokal, gunakan UI Databricks untuk mengunggah data.
Latensi Jika Anda ingin menganalisis data mendekati real time, gunakan streaming untuk memanfaatkan pemrosesan inkremental. Dengan streaming, data tersedia untuk dikueri segera setelah setiap rekaman tiba. Jika tidak, gunakan penyerapan batch.
Pergerakan data Jika Anda tidak dapat menyalin data dari sistem sumber Anda ke Databricks, gunakan Lakehouse Federation atau Berbagi Delta.

Memigrasikan data ke Delta Lake

Untuk mempelajari cara memigrasikan data yang ada ke Delta Lake, lihat Memigrasikan data ke Delta Lake.

COPY INTO (warisan)

Perintah SQL CREATE STREAMING TABLE adalah alternatif yang direkomendasikan untuk perintah warisan COPY INTO SQL untuk penyerapan inkremental dari penyimpanan objek cloud. Lihat COPY INTO. Untuk pengalaman penyerapan file yang lebih dapat diskalakan dan kuat, Databricks merekomendasikan agar pengguna SQL memanfaatkan tabel streaming alih-alih COPY INTO.

Sumber daya tambahan

Apa perbedaan antara streaming dan pemrosesan batch inkremental?