PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вмъкване на аналитични данни от Spark към Postgres

В момента няма нативна реализация за запис на RDD в която и да е СУБД. Ето връзките към свързаните дискусии в потребителския списък на Spark:един , две

Като цяло най-ефективният подход би бил следният:

  1. Потвърдете броя на дяловете в RDD, той не трябва да е твърде малък или твърде висок. 20-50 дяла трябва да са добре, ако броят е по-малък - извикайте repartition с 20 дяла, ако е по-висок - извикайте coalesce до 50 дяла
  2. Извикайте mapPartition трансформация, вътре в него извикайте функцията за вмъкване на записите във вашата СУБД с помощта на JDBC. В тази функция отваряте връзката към вашата база данни и използвате командата COPY с този API , това ще ви позволи да елиминирате необходимостта от отделна команда за всеки запис - по този начин вмъкването ще се обработва много по-бързо

По този начин бихте вмъкнали данните в Postgres по паралелен начин, като използвате до 50 паралелни връзки (зависи от размера на клъстера на Spark и неговата конфигурация). Целият подход може да бъде приложен като функция на Java/Scala, приемаща RDD и низа за връзка



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. партиден файл за съхраняване на изхода от psql заявката в променлива

  2. Преобразуване на юлиански ден в дата в PostgreSQL

  3. Postgres:Защо производителността е толкова лоша на подселекти с Offset/Limit

  4. Автоматизиране на барман с кукла:it2ndq/барман (част втора)

  5. Django миграции:връзката вече съществува