sql >> Databáze >  >> RDS >> PostgreSQL

Vkládání analytických dat ze Sparku do Postgresu

V současné době neexistuje žádná nativní implementace zápisu RDD do žádné DBMS. Zde jsou odkazy na související diskuse v seznamu uživatelů Spark:jeden , dva

Obecně by nejvýkonnější přístup byl následující:

  1. Ověřte počet oddílů v RDD, neměl by být příliš nízký ani příliš vysoký. 20-50 oddílů by mělo být v pořádku, pokud je číslo nižší - zavolejte repartition s 20 oddíly, je-li vyšší - zavolejte coalesce až 50 oddílů
  2. Zavolejte mapPartition transformace, uvnitř ní zavolejte funkci pro vložení záznamů do vašeho DBMS pomocí JDBC. V této funkci otevřete připojení k vaší databázi a použijete příkaz COPY s toto rozhraní API , umožnilo by vám to eliminovat potřebu samostatného příkazu pro každý záznam – tímto způsobem by bylo vkládání zpracováno mnohem rychleji

Tímto způsobem byste vložili data do Postgresu paralelně s využitím až 50 paralelních připojení (závisí na velikosti vašeho clusteru Spark a jeho konfiguraci). Celý přístup může být implementován jako Java/Scala funkce akceptující RDD a spojovací řetězec



  1. Jak zlepšit výkon dotazů pomocí pořadí podle, seskupení podle a spojení

  2. Proč st_intersection vrací nepolygony?

  3. Dokončený projekt Java, nyní se vytváří soubor jar nebo .exe (s databází)

  4. Jak vytvořit vláknové komentáře s 1 nebo 2 dotazy?