Apa itu Auto Loader?

Auto Loader secara bertahap dan efisien memproses file data baru saat tiba di penyimpanan cloud tanpa penyiapan tambahan apa pun.

Bagaimana cara kerja Auto Loader?

Auto Loader secara bertahap dan efisien memproses file data baru saat tiba di penyimpanan cloud. Ini menyediakan sumber Streaming Terstruktur yang disebut cloudFiles. Mengingat jalur direktori input pada penyimpanan file cloud, cloudFiles sumber secara otomatis memproses file baru saat mereka tiba, dengan opsi juga memproses file yang ada di direktori itu. Auto Loader memiliki dukungan untuk Python dan SQL di Lakeflow Spark Declarative Pipelines.

Anda dapat menggunakan Auto Loader untuk memproses miliaran file untuk memigrasikan atau mengisi ulang tabel. Auto Loader menskalakan dirinya untuk mendukung pengambilan hampir real-time jutaan file per jam.

Sumber Auto Loader yang Didukung

Auto Loader dapat memuat file data dari sumber berikut:

  • Amazon S3 (s3://)

  • Azure Data Lake Storage (ADLS, abfss://)

  • Google Cloud Storage (GCS, gs://)

  • Volume Katalog Unity (/Volumes/)

  • Azure Blob Storage (wasbs://)

    Note

    Driver Blob Windows Azure Storage (WASB) lama tidak digunakan lagi. ABFS memiliki banyak keuntungan dibandingkan WASB. Lihat dokumentasi Azure mengenai ABFS. Untuk dokumentasi tentang bekerja dengan driver WASB lama, lihat Hubungkan ke Azure Blob Storage dengan WASB (warisan).

Auto Loader dapat menyerap JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT, dan BINARYFILE.

Bagaimana Cara Loader Otomatis melacak kemajuan penyerapan?

Saat file ditemukan, metadatanya bertahan di penyimpanan nilai kunci yang scalable (RocksDB) di lokasi titik pemeriksaan alur Auto Loader Anda. Penyimpanan nilai kunci ini memastikan bahwa data diproses tepat sekali.

Jika terjadi kegagalan, Auto Loader dapat melanjutkan dari titik terakhir dengan menggunakan informasi yang disimpan di lokasi checkpoint dan terus memberikan jaminan sekali saja saat menulis data ke Delta Lake. Anda tidak perlu mempertahankan atau mengelola status apa pun sendiri untuk mencapai toleransi kesalahan atau semantik sekali-saja.

Penyerapan bertahap menggunakan Auto Loader dengan Alur Deklaratif Lakeflow Spark

Databricks merekomendasikan Auto Loader di Lakeflow Spark Declarative Pipelines untuk penyerapan data bertahap. Anda tidak perlu menyediakan skema atau lokasi titik pemeriksaan karena Alur Deklaratif Lakeflow Spark secara otomatis mengelola pengaturan ini untuk alur Anda. Lihat Mengonfigurasi Auto Loader untuk beban kerja produksi untuk konfigurasi yang direkomendasikan.

Databricks juga merekomendasikan Auto Loader setiap kali Anda menggunakan Apache Spark Structured Streaming untuk menyerap data dari penyimpanan objek cloud. API tersedia di Python dan Scala.

Mulai menggunakan Databricks Auto Loader

Lihat artikel berikut untuk mulai mengonfigurasi penyerapan data bertahap menggunakan Auto Loader dengan Alur Deklaratif Lakeflow Spark:

Contoh: Pola Pemuat Otomatis Umum

Untuk contoh pola Pemuat Otomatis umum, lihat Pola pemuatan data umum.

Mengonfigurasi opsi Auto Loader

Anda dapat menyetel Auto Loader berdasarkan volume data, variasi, dan kecepatan.

Untuk daftar lengkap opsi Auto Loader, lihat Opsi Auto Loader. Jika Anda mengalami performa yang tidak terduga, lihat FAQ.

Mengonfigurasi mode pendeteksian file Auto Loader

Auto Loader mendukung dua modus deteksi file. See:

Menangani data yang tidak berurutan

Auto Loader tidak menjamin urutan file ditemukan atau diproses, terlepas dari apakah Anda menggunakan daftar direktori atau mode pemberitahuan file. Gunakan strategi berikut untuk merancang pipeline Anda guna menangani kedatangan file yang tidak berurutan.

Alur Deklaratif Lakeflow Spark dengan AUTO CDC

Jika Anda menggunakan Lakeflow Spark Declarative Pipelines dengan Auto Loader dan AUTO CDC, konfigurasikan retensi batu nisan sehingga rekaman yang dihapus dipertahankan cukup lama untuk menangani kedatangan file yang tidak berurutan. Atur pipelines.cdc.tombstoneGCThresholdInSeconds properti tabel pada tabel streaming target ke nilai yang melebihi penundaan maksimum yang diharapkan antara kedatangan peristiwa dan eksekusi alur. Retensi default adalah dua hari. Untuk detailnya, lihat create_auto_cdc_flow.

Streaming Terstruktur tanpa Alur Deklaratif Lakeflow Spark

Jika Anda menggunakan Streaming Terstruktur Apache Spark langsung dengan Auto Loader (tanpa Lakeflow Spark Declarative Pipelines), pertimbangkan pola berikut untuk menangani data yang tidak berurutan:

  • Lebih suka penghapusan lunak daripada penghapusan keras: Lacak deleted penanda dan tanda waktu alih-alih menghapus baris, agar penghapusan yang datang terlambat tidak berkonflik dengan rekaman sebelumnya.
  • Bandingkan tanda waktu sebelum menerapkan pembaruan: Saat memasukkan atau memperbarui data, bandingkan tanda waktu pembaruan rekaman yang masuk dengan tanda waktu pada baris target yang ada saat ini untuk menghindari penimpaan dengan data yang kedaluwarsa.

Manfaat Auto Loader daripada menggunakan Streaming Terstruktur langsung pada file

Di Apache Spark, Anda dapat membaca file secara bertahap menggunakan spark.readStream.format(fileFormat).load(directory). Auto Loader memberikan manfaat berikut melalui sumber file:

  • Skalabilitas: Auto Loader dapat menemukan miliaran file secara efisien. Pengisian ulang dapat dilakukan secara asinkron untuk menghindari pemborosan sumber daya komputasi apa pun.
  • Kinerja: Biaya menemukan file dengan Auto Loader berkorelasi dengan jumlah file yang dimuat, bukan dengan jumlah direktori di mana file-file tersebut berada. Lihat Mengonfigurasi aliran Auto Loader dalam mode daftar direktori.
  • Dukungan inferensi dan evolusi skema: Auto Loader dapat mendeteksi pergeseran skema, memberi tahu Anda ketika perubahan skema terjadi, dan menyelamatkan data yang seharusnya diabaikan atau hilang. Lihat Cara kerja inferensi skema Auto Loader.
  • Biaya: Auto Loader menggunakan API cloud asli untuk mendapatkan daftar file yang ada di penyimpanan. Selain itu, mode pemberitahuan file Auto Loader dapat membantu mengurangi biaya cloud Anda lebih lanjut dengan menghindari daftar direktori sama sekali. Auto Loader dapat secara otomatis menyiapkan layanan pemberitahuan file pada penyimpanan untuk membuat penemuan file jauh lebih murah.