Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
PostgreSQL-anslutningsappen för Lakeflow Connect finns i offentlig förhandsversion. Kontakta ditt Databricks-kontoteam för att registrera dig i den offentliga förhandsversionen.
På den här sidan visas begränsningar och överväganden för PostgreSQL-inmatning med Databricks Lakeflow Connect.
Allmänna begränsningar för databasanslutningar
Begränsningarna i det här avsnittet gäller för alla databasanslutningar i Lakeflow Connect. Fortsätt läsa för anslutningsspecifika begränsningar.
- När du kör en schemalagd pipeline utlöses inte aviseringar omedelbart. I stället utlöses de när nästa uppdatering körs.
- När en källtabell tas bort tas inte måltabellen bort automatiskt. Du måste ta bort destinationstabellen manuellt. Det här beteendet överensstämmer inte med beteendet hos Lakeflow Spark Deklarativa Pipeline.
- Mellanlagringskatalogen får inte vara en extern katalog.
- Under källunderhållsperioder kanske Databricks inte kan komma åt dina data.
- Om ett källtabellnamn står i konflikt med ett befintligt måltabellnamn misslyckas pipelineuppdateringen.
- Stöd för pipeline med flera destinationer är endast tillgängligt via API.
- Du kan välja att byta namn på en tabell som du importerar. Om du byter namn på en tabell i din pipeline, blir det en API-endast pipeline, och du kan inte längre redigera pipelinen i UI:t.
- Om du väljer en kolumn efter att en pipeline redan har startat, fyller inte kontakten automatiskt i data för den nya kolumnen. För att hämta historiska data, kör manuellt en fullständig uppdatering av tabellen.
- Databricks kan inte mata in två eller flera tabeller med samma namn i samma pipeline, även om de kommer från olika källscheman.
- Källsystemet förutsätter att markörkolumnerna ökar monotont.
- Hanterade inmatningspipelines stöds inte för FedRAMP High- eller FedRAMP Moderate-arbetsytor.
- Anslutningsappen matar in rådata utan transformeringar. Använd nedströms Lakeflow Spark Deklarativa Pipelines för transformationer.
- Anslutningsappen stöder endast replikering från primära PostgreSQL-instanser.
Authentication
- Anslutningsappen stöder endast autentisering med användarnamn och lösenord.
Databasvariationer
- Anslutningsappen stöder PostgreSQL 13 eller senare.
- Anslutningsappen stöder AWS RDS PostgreSQL, Aurora PostgreSQL, Amazon EC2, Azure Database for PostgreSQL, virtuella Azure-datorer och GCP Cloud SQL för PostgreSQL. Anslutningsappen stöder även lokal PostgreSQL med hjälp av Azure ExpressRoute, AWS Direct Connect och VPN-nätverk. Mer information om anslutningar mellan moln finns i Nätverksanslutning.
Pipelines
- Varje inmatningspipeline måste associeras med exakt en inmatningsgateway. Gatewayer kan inte delas mellan pipelines.
- Även om inmatningspipelinen körs på serverlös beräkning måste inmatningsgatewayen köras på klassisk beräkning.
- Inmatningsgatewayen måste köras i kontinuerligt läge för att förhindra Write-Ahead logg (WAL) uppsvälldhet och ackumulering av replikeringsfack.
Replication
- Logisk replikering kräver PostgreSQL 13 eller senare med parametern inställd på
wal_levellogical.
- Varje tabell som du replikerar måste ha dess replikidentitet inställd på
FULLellerDEFAULT. Databricks rekommenderar att du använderFULLreplikidentitet för tabeller utan primära nycklar eller med TOASTable-kolumner. - Replikeringsplatser tas inte bort automatiskt när du tar bort pipelines. Du måste rensa replikeringsfack manuellt för att förhindra WAL-ackumulering. Se Rensa replikeringsslotar.
Schemats utveckling
Anslutningsappen hanterar automatiskt nya och borttagna kolumner.
- När en ny kolumn visas i källan matar Databricks automatiskt in den vid nästa pipelinekörning.
- När en kolumn tas bort från källan tar Databricks inte bort den automatiskt. I stället använder anslutningen en tabellegenskap för att ange den borttagna kolumnen till
inactivei målplatsen. Om en annan kolumn senare visas som har ett motstridigt namn medinactivekolumnen misslyckas pipelinen. I det här fallet kör du en fullständig uppdatering av tabellen eller släpper den inaktiva kolumnen manuellt.
Anslutningsappen kan hantera nedanstående DDL:er (till exempel kolumnbyten) men kräver en fullständig uppdatering av måltabellerna.
DDL kräver fullständig uppdatering
- Ändra datatypen för en kolumn
- Byta namn på en kolumn
- Ändra primärnyckeln för en tabell
- Konvertera en tabell från ologgad till loggad eller vice versa
- Lägga till eller ta bort partitioner (för partitionerade tabeller)
Staging
Mellanlagringskatalogen får inte vara en utländsk katalog.
Tables
- Databricks rekommenderar att du matar in 250 eller färre tabeller per pipeline. Det finns dock ingen gräns för antalet rader eller kolumner som stöds i dessa tabeller.
- Databricks kan inte mata in två tabeller vars namn endast skiljer sig åt i storlek (till exempel
mytableochMyTable) med en och samma pipeline. För att stödja sådana fall skapar du två pipelinepar för gatewayinmatning som publicerar till olika målscheman. - Namnen
source_catalog,source_schemaochsource_tableär skiftlägeskänsliga för databasnamnet men utan hänsyn till skiftläge för schema- och tabellnamnen (enligt PostgreSQL-standardbeteendet). Om källdatabasen till exempel heterMyDatabasemåste du ange den somMyDatabaseiingestion_definition. - Även om du kan mata in från flera källdatabaser eller scheman i en pipeline kan du inte mata in två tabeller med samma namn. Du kan till exempel inte mata in både
schema1.ordersochschema2.ordersi samma pipeline. - Du kan inkludera flera tabell- eller schemaspecifikationer i
objectsfältet iingestion_definition. Källtabellnamnen i olika källscheman kan dock inte överlappa varandra. Överlappande namn orsakar fel i inmatningspipeline.
Datatyper
- Användardefinierade typer och tilläggstyper från tredje part matas in som strängar.
- Datatyperna
TIMEochTIMETZmatas in som strängar. - För
NUMERICochDECIMALdatatyper:- Om precisionen är 38 eller mindre
NaNmappas tillnull. - Om precisionen är större än 38 lagras värdet som en sträng och
NaNbevaras som en sträng. -
Infoch-Infstöds endast för obundna numeriska typer. För precision större än 38 lagras värdet som en sträng och oändlighetsvärdet bevaras.
- Om precisionen är 38 eller mindre
- För
DATEdatatyp: Det fullständiga PostgreSQL-datumintervallet stöds.Infoch-Infkonverteras tillnull. BC-datum lagras med hjälp av astronomisk årsnumrering. Till exempel motsvarar 1 f.Kr. år 0 och 2 f.Kr. motsvarar år -1. - För
TIMESTAMP(utan tidszon) datatyp: Värden matas in som strängar.Infoch-Infbevaras som strängar. - För
TIMESTAMP WITH TIME ZONEdatatyp: PostgreSQL-intervallet som stöds är4713-01-01 00:00:00.000000 BCtill294276-12-31 23:59:59.999999 AD, medan databricks-intervallet som stöds är-290308-12-21 BCE 19:59:06 GMTtill+294247-01-10 CE 04:00:54 GMT. Tidsstämplar över den maximala tidsstämpel som stöds av Databricks konverteras tillnull. BC-datum lagras med hjälp av astronomisk årsnumrering. Till exempel motsvarar 1 f.Kr. år 0 och 2 f.Kr. motsvarar år -1.Infoch-Infkonverteras tillnull. - För
INTERVALdatatyp: Oändlighetsvärden mappas till0 years 0 mins 0 days 0 hours 0 mins 0.0 secs. -
MONEYvärden matas in som strängar. - Alla inbyggda PostgreSQL-datatyper som inte visas i tabellen Automatiska datatransformeringar matas in som sträng.
Partitionerade tabeller
- PostgreSQL-partitionerade tabeller stöds.
- Varje partition behandlas som en separat tabell i replikeringssyfte.
- Att lägga till eller ta bort partitioner kräver en fullständig uppdatering av tabellen.
Begränsningar för specifika PostgreSQL-variationer
Amazon RDS och Aurora
- Parametern
rds.logical_replicationmåste vara inställd på1.
Azure-databasen för PostgreSQL
- Logisk replikering måste vara aktiverad i serverparametrarna.
- För distributioner med enskild server är logisk replikering endast tillgänglig på nivåerna Generell användning och Minnesoptimerad.
- För distributioner med flexibel server stöds logisk replikering på alla nivåer.
- Parametern
max_slot_wal_keep_sizeär skrivskyddad, fast vid -1 (oändlig) och kan inte konfigureras.
Google Cloud SQL för PostgreSQL
- Flaggan
cloudsql.logical_decodingmåste vara aktiverad. - Cloud SQL tillåter inte konfigurering av
max_slot_wal_keep_size; det är fast inställt på -1 (oändligt) som standard.