PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum unterschiedliche Zählergebnisse bei aufeinanderfolgenden Lesevorgängen?

Es sei denn Dataset wird cached mit zuverlässigem Speicher (Standard-Spark cache gibt Ihnen nur schwache Garantien) kann mehrmals auf die Datenbank zugegriffen werden, wobei jedes Mal der aktuelle Zustand der Datenbank angezeigt wird. Seit

Das Anzeigen unterschiedlicher Zählwerte ist ein erwartetes Verhalten.

Wenn die JDBC-Quelle in einem verteilten Modus verwendet wird (mit Partitionierungsspalte oder predicates ), dann verwendet jeder Executor-Thread seine eigene Transaktion. Als Ergebnis der Zustand des Dataset möglicherweise nicht vollständig konsistent.

Verwenden Sie kein JDBC. Sie können zum Beispiel

  • COPY Daten in ein Dateisystem und laden sie von dort.
  • Verwenden Sie eine Replikationslösung Ihrer Wahl, um eine Replikation speziell für Analysen zu erstellen und die Replikation einzustellen und anzuhalten, während Sie die Daten analysieren.