PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memasukkan data Analitik dari Spark ke Postgres

Saat ini tidak ada implementasi asli penulisan RDD ke DBMS mana pun. Berikut adalah tautan ke diskusi terkait dalam daftar pengguna Spark:satu , dua

Secara umum, pendekatan yang paling efektif adalah sebagai berikut:

  1. Validasi jumlah partisi dalam RDD, tidak boleh terlalu rendah dan terlalu tinggi. 20-50 partisi seharusnya baik-baik saja, jika jumlahnya lebih rendah - panggil repartition dengan 20 partisi, jika lebih tinggi - panggil coalesce hingga 50 partisi
  2. Panggil mapPartition transformasi, di dalamnya memanggil fungsi untuk memasukkan catatan ke DBMS Anda menggunakan JDBC. Dalam fungsi ini Anda membuka koneksi ke database Anda dan menggunakan perintah COPY dengan API ini , ini akan memungkinkan Anda untuk menghilangkan kebutuhan akan perintah terpisah untuk setiap record - dengan cara ini penyisipan akan diproses lebih cepat

Dengan cara ini Anda akan memasukkan data ke dalam Postgres secara paralel menggunakan hingga 50 koneksi paralel (tergantung pada ukuran cluster Spark Anda dan konfigurasinya). Seluruh pendekatan dapat diimplementasikan sebagai fungsi Java/Scala yang menerima RDD dan string koneksi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA 2.1 StoredProcedureQuery dengan PostgreSQL dan REF_CURSORs

  2. PostgreSQL Upsert (Pada Konflik) dengan nilai yang sama di Sisipkan dan Perbarui

  3. Django-DB-Migrations:tidak dapat MENGUBAH TABLE karena memiliki peristiwa pemicu yang tertunda

  4. SQLAlchemy + Postgres:Anda mungkin perlu menambahkan gips tipe eksplisit saat digabungkan

  5. Bagaimana cara memetakan Postgres _INT8 ke entitas Java menggunakan Hibernate?