Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
RDS per PostgreSQL
Completa i passaggi seguenti per configurare una pipeline di OpenSearch ingestione con Amazon RDS per PostgreSQL.
Argomenti
Prerequisiti RDS per PostgreSQL
Prima di creare la pipeline di OpenSearch Ingestion, effettuate le seguenti operazioni:
-
Crea un gruppo di parametri DB personalizzato in Amazon RDS per configurare la replica logica.
rds.logical_replication=1Per ulteriori informazioni, consulta Esecuzione della replica logica per Amazon RDS per PostgreSQL.
-
Seleziona o crea un'istanza DB RDS per PostgreSQL e associa il gruppo di parametri creato nel passaggio 1 all'istanza DB.
-
Configura l'autenticazione con nome utente e password sulla tua istanza Amazon RDS utilizzando la gestione delle password con Amazon RDS e. AWS Secrets Manager Puoi anche creare una username/password combinazione creando un segreto di Secrets Manager.
-
Se utilizzi la funzionalità di snapshot iniziale completa, crea un ruolo IAM AWS KMS key e uno per esportare i dati da Amazon RDS ad Amazon S3.
Il ruolo IAM deve avere la seguente politica di autorizzazione:
Il ruolo dovrebbe inoltre avere le seguenti relazioni di fiducia:
-
Seleziona o crea un dominio OpenSearch di servizio o una raccolta OpenSearch Serverless. Per ulteriori informazioni, vedere Creazione di domini OpenSearch di servizio e Creazione di raccolte.
-
Allega una politica basata sulle risorse al tuo dominio o una politica di accesso ai dati alla tua raccolta. Queste politiche di accesso consentono a OpenSearch Ingestion di scrivere dati dalla tua istanza DB di Amazon RDS al tuo dominio o alla tua raccolta.
Fase 1: Configurazione del ruolo della pipeline
Dopo aver impostato i prerequisiti della pipeline Amazon RDS, configura il ruolo della pipeline da utilizzare nella configurazione della pipeline. Aggiungi anche le seguenti autorizzazioni per il codice sorgente Amazon RDS al ruolo:
Passaggio 2: creare la pipeline
Configura una pipeline di OpenSearch Ingestion come la seguente, che specifica un'istanza RDS per PostgreSQL come origine.
version: "2" rds-postgres-pipeline: source: rds: db_identifier: "instance-id" engine: postgresql database: "database-name" tables: include: - "schema1.table1" - "schema2.table2" s3_bucket: "bucket-name" s3_region: "bucket-region" s3_prefix: "prefix-name" export: kms_key_id: "kms-key-id" iam_role_arn: "export-role-arn" stream: true aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" authentication: username: ${{aws_secrets:secret:username}} password: ${{aws_secrets:secret:password}} sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"] index: "${getMetadata(\"table_name\")}" index_type: custom document_id: "${getMetadata(\"primary_key\")}" action: "${getMetadata(\"opensearch_action\")}" document_version: "${getMetadata(\"document_version\")}" document_version_type: "external" aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" extension: aws: secrets: secret: secret_id: "rds-secret-id" region: "us-east-1" sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" refresh_interval: PT1H
Nota
Puoi utilizzare un blueprint Amazon RDS preconfigurato per creare questa pipeline. Per ulteriori informazioni, consulta Lavorare con i progetti.
Per utilizzare RDS per PostgreSQL come sorgente, devi configurare l'accesso VPC per la pipeline. Il VPC scelto deve essere lo stesso VPC utilizzato dal sorgente Amazon RDS. Quindi scegli una o più sottoreti e uno o più gruppi di sicurezza VPC. Nota che la pipeline richiede l'accesso di rete a un database RDS per PostgreSQL, quindi dovresti anche verificare che la tua istanza Amazon RDS sia configurata con un gruppo di sicurezza VPC che consenta il traffico in entrata dal gruppo di sicurezza VPC della pipeline alla porta del database. Per ulteriori informazioni, consulta Controllare l'accesso con i gruppi di sicurezza. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Overview.RDSSecurityGroups.html
Se stai usando il Console di gestione AWS per creare la tua pipeline, devi anche collegarla al tuo VPC per utilizzare RDS for PostgreSQL come sorgente. Per fare ciò, trova la sezione Configurazione della rete, scegli Allega a VPC e scegli il tuo CIDR da una delle opzioni predefinite fornite, oppure seleziona il tuo. Il blocco CIDR deve utilizzare una lunghezza del prefisso /24. È possibile utilizzare qualsiasi CIDR /24 da uno spazio di indirizzi privato come definito nella RFC 1918 Best Current Practice.
Per fornire un CIDR personalizzato, seleziona Altro dal menu a discesa. Per evitare una collisione negli indirizzi IP tra OpenSearch Ingestion e Amazon RDS, assicurati che il CIDR VPC di Amazon RDS sia diverso dal CIDR per l'ingestione. OpenSearch
Per ulteriori informazioni, consulta Configurazione dell'accesso VPC per una pipeline. https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-security.html#pipeline-vpc-configure
Coerenza dei dati
La pipeline garantisce la coerenza dei dati inviando o ricevendo continuamente modifiche dall'istanza Amazon RDS e aggiornando i documenti corrispondenti nell'indice. OpenSearch
OpenSearch L'ingestion supporta il riconoscimento end-to-end per garantire la durabilità dei dati. Quando una pipeline legge istantanee o stream, crea dinamicamente partizioni per l'elaborazione parallela. La pipeline contrassegna una partizione come completa quando riceve un riconoscimento dopo aver inserito tutti i record del dominio o della raccolta. OpenSearch Se desideri inserire un documento in una raccolta di ricerca OpenSearch Serverless, puoi generare un ID del documento nella pipeline. Se desideri inserire una raccolta di serie temporali OpenSearch Serverless, tieni presente che la pipeline non genera un ID di documento, quindi devi omettere document_id: "${getMetadata(\"primary_key\")}" questo elemento nella configurazione del sink della pipeline.
Una pipeline OpenSearch di importazione associa inoltre le azioni degli eventi in entrata nelle corrispondenti azioni di indicizzazione in blocco per facilitare l'assimilazione dei documenti. Ciò mantiene i dati coerenti, in modo che ogni modifica dei dati in Amazon RDS venga riconciliata con le corrispondenti modifiche apportate ai documenti. OpenSearch
Mappatura dei tipi di dati
OpenSearch La pipeline di ingestione associa i tipi di dati PostgreSQL a rappresentazioni adatte al consumo di domini o raccolte di servizi. OpenSearch Se non è definito alcun modello di mappatura in OpenSearch, determina OpenSearch automaticamente i tipi di campo con una mappatura dinamica basata sul primo documento inviato.
La tabella seguente elenca RDS per i tipi di dati PostgreSQL e i tipi di campo corrispondenti. OpenSearch La colonna Tipo di OpenSearch campo predefinito mostra il tipo di campo corrispondente OpenSearch se non è definita alcuna mappatura esplicita. In questo caso, determina OpenSearch automaticamente i tipi di campo con mappatura dinamica. La colonna Tipo di OpenSearch campo consigliato è il tipo di campo consigliato corrispondente da specificare esplicitamente in un modello di mappatura. Questi tipi di campo sono più strettamente allineati con i tipi di dati in RDS per PostgreSQL e in genere possono consentire migliori funzionalità di ricerca disponibili in. OpenSearch
| Tipo di dati RDS per PostgreSQL | Tipo OpenSearch di campo predefinito | Tipo di OpenSearch campo consigliato |
|---|---|---|
| smallint | Long | short |
| intero | Long | intero |
| bigint | Long | Long |
| decimal | testo | doppio o parola chiave |
| numerico [(p, s)] | testo | double o parola chiave |
| real | virgola mobile | virgola mobile |
| double precision | virgola mobile | virgola mobile a doppia precisione |
| smallserial | Long | short |
| seriale | Long | intero |
| bigserial | Long | Long |
| money | oggetto | oggetto |
| carattere variabile (n) | testo | testo |
| varchar(n) | testo | testo |
| carattere (n) | testo | testo |
| char(n) | testo | testo |
| bpchar (n) | testo | testo |
| bpchar | testo | testo |
| testo | testo | testo |
| enum | testo | testo |
| bytea | testo | binary |
| timestamp [(p)] [senza fuso orario] | lungo (in millisecondi di epoca) | data |
| timestamp [(p)] con fuso orario | lungo (in millisecondi di epoca) | data |
| data | lungo (in millisecondi di epoca) | data |
| ora [(p)] [senza fuso orario] | lungo (in millisecondi di epoca) | data |
| ora [(p)] con fuso orario | lungo (in millisecondi di epoca) | data |
| intervallo [campi] [(p)] | testo (formato ISO8601) | testo |
| booleano | Booleano | Booleano |
| point | testo (in formato WKT) | geo_shape |
| linea | testo (in formato WKT) | geo_shape |
| gamba | testo (in formato WKT) | geo_shape |
| scatola | testo (in formato WKT) | geo_shape |
| path | testo (in formato WKT) | geo_shape |
| poligono | testo (in formato WKT) | geo_shape |
| cerchio | oggetto | oggetto |
| cidr | testo | testo |
| inet | testo | testo |
| macaddr | testo | testo |
| macaddr8 | testo | testo |
| bit(n) | Long | byte, corto, intero o lungo (a seconda del numero di bit) |
| bit varying(n) | Long | byte, breve, intero o lungo (a seconda del numero di bit) |
| json | oggetto | oggetto |
| jsonb | oggetto | oggetto |
| jsonpath | testo | testo |
Ti consigliamo di configurare la coda delle lettere morte (DLQ) nella pipeline di Ingestion. OpenSearch Se hai configurato la coda, OpenSearch Service invia tutti i documenti non riusciti che non possono essere inseriti a causa di errori di mappatura dinamica della coda.
Nel caso in cui le mappature automatiche falliscano, puoi utilizzare template_type and template_content nella configurazione della pipeline per definire regole di mappatura esplicite. In alternativa, puoi creare modelli di mappatura direttamente nel tuo dominio o raccolta di ricerca prima di avviare la pipeline.
Limitazioni
Considerate le seguenti limitazioni quando configurate una pipeline di OpenSearch Ingestion per RDS for PostgreSQL:
-
L'integrazione supporta solo un database PostgreSQL per pipeline.
-
L'integrazione attualmente non supporta l'inserimento di dati in più regioni; l'istanza e il dominio Amazon RDS devono trovarsi nella stessa area. OpenSearch Regione AWS
-
L'integrazione attualmente non supporta l'inserimento di dati tra più account; l'istanza Amazon RDS e OpenSearch la pipeline di ingestione devono trovarsi nella stessa posizione. Account AWS
-
Assicurati che l'istanza Amazon RDS abbia l'autenticazione abilitata utilizzando AWS Secrets Manager, che è l'unico meccanismo di autenticazione supportato.
-
La configurazione della pipeline esistente non può essere aggiornata per importare dati da un database and/or diverso in una tabella diversa. Per aggiornare il nome della and/or tabella del database di una pipeline, è necessario arrestare la pipeline e riavviarla con una configurazione aggiornata oppure creare una nuova pipeline.
-
Le istruzioni DDL (Data Definition Language) non sono generalmente supportate. La coerenza dei dati non verrà mantenuta se:
-
Le chiavi primarie vengono modificate (add/delete/rename).
-
Le tabelle sono. dropped/truncated
-
I nomi delle colonne o i tipi di dati vengono modificati.
-
-
Se le tabelle PostgreSQL da sincronizzare non hanno chiavi primarie definite, la coerenza dei dati non è garantita. Dovrai definire l'
document_idopzione personalizzata OpenSearch e inserire correttamente la configurazione per poterti sincronizzare. updates/deletes OpenSearch -
I cluster DB RDS Multi-AZ non sono supportati.
-
Versioni supportate: PostgreSQL 16 e versioni successive.
CloudWatch Allarmi consigliati
Le seguenti CloudWatch metriche sono consigliate per monitorare le prestazioni della pipeline di ingestione. Queste metriche possono aiutarvi a identificare la quantità di dati elaborati dalle esportazioni, il numero di eventi elaborati dagli stream, gli errori nell'elaborazione delle esportazioni e degli eventi di streaming e il numero di documenti scritti nella destinazione. È possibile impostare CloudWatch allarmi per eseguire un'azione quando una di queste metriche supera un valore specificato per un determinato periodo di tempo.
| Metrica | Description |
|---|---|
pipeline-name.rds.Credenziali modificate |
Questa metrica indica la frequenza con cui i segreti vengono ruotati. AWS |
pipeline-name.rds.executor RefreshErrors |
Questa metrica indica il mancato aggiornamento dei segreti. AWS |
pipeline-name.rds.export RecordsTotal |
Questa metrica indica il numero di record esportati da Amazon RDS per PostgreSQL. |
pipeline-name.rds.export RecordsProcessed |
Questa metrica indica il numero di record elaborati dalla pipeline di Ingestion. OpenSearch |
pipeline-name.rds.export RecordProcessingErrors |
Questa metrica indica il numero di errori di elaborazione in una pipeline di OpenSearch Ingestion durante la lettura dei dati da un'istanza Amazon RDS per PostgreSQL. |
pipeline-name.rds.export RecordsSuccessTotal |
Questa metrica indica il numero totale di record di esportazione elaborati correttamente. |
pipeline-name.rds.export RecordsFailedTotal |
Questa metrica indica il numero totale di record di esportazione che non sono stati elaborati. |
pipeline-name.rds.Bytes ricevuti |
Questa metrica indica il numero totale di byte ricevuti da una pipeline di Ingestion. OpenSearch |
pipeline-name.rds.Bytes processati |
Questa metrica indica il numero totale di byte elaborati da una pipeline di Ingestion. OpenSearch |
pipeline-name.rds.stream RecordsSuccessTotal |
Questa metrica indica il numero di record elaborati correttamente dallo stream. |
pipeline-name.rds.stream RecordsFailedTotal |
Questa metrica indica il numero totale di record non elaborati dallo stream. |