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à.
Streaming di dati alle tabelle con Amazon Data Firehose
Nota
L'integrazione con i servizi di AWS analisi per i table bucket è in versione di anteprima ed è soggetta a modifiche.
Amazon Data Firehose è un servizio completamente gestito per la distribuzione di dati di streaming
Dopo aver integrato i bucket di tabelle con i servizi di analisi di AWS, è possibile configurare Firehose per fornire dati alle tabelle S3. A tale scopo, creare un ruolo di servizio IAM che consenta a Firehose di accedere alle tabelle. Successivamente, si crea un collegamento di risorsa alla tabella o allo spazio dei nomi della tabella e si concedono al ruolo del servizio Firehose autorizzazioni esplicite a tali risorse. Quindi, è possibile creare un flusso Firehose che indirizza i dati alla tabella.
Creazione di un ruolo per Firehose per l'uso delle tabelle S3 come destinazione
Firehose necessita di un ruolo di servizio IAM con autorizzazioni specifiche per accedere alle AWS Glue tabelle e scrivere dati nelle tabelle S3. È necessario fornire questo ruolo IAM quando si crea un flusso Firehose.
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel riquadro di navigazione a sinistra, seleziona Policy.
-
Scegli Crea una policy e scegliere JSON nell'editor delle policy.
-
Aggiungere la seguente policy in linea che concede le autorizzazioni a tutti i database e alle tabelle del catalogo dei dati. Se lo si desidera, è possibile concedere le autorizzazioni solo a tabelle e database specifici. Per utilizzare questa policy, sostituisci
input placeholders
con le tue informazioni.{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:
<region>
:<account-id>
:catalog/s3tablescatalog/*", "arn:aws:glue:<region>
:<account-id>
:catalog/s3tablescatalog", "arn:aws:glue:<region>
:<account-id>
:catalog", "arn:aws:glue:<region>
:<account-id>
:database/*", "arn:aws:glue:<region>
:<account-id>
:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<error delivery bucket>
", "arn:aws:s3:::<error delivery bucket>
/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>
:<account-id>
:stream/<stream-name>
" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>
:<account-id>
:key/<KMS-key-id>
" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>
.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::<error delivery bucket>
/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>
:<account-id>
:log-group:<log-group-name>
:log-stream:<log-stream-name>
" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>
:<account-id>
:function:<function-name>
:<function-version>
" ] } ] }Questa policy contiene istruzioni che consentono l'accesso a Kinesis Data Streams, l'invocazione delle funzioni Lambda e l'accesso alle chiavi. AWS KMS Se non si utilizza nessuna di queste risorse, è possibile rimuovere le rispettive istruzioni.
Se la registrazione degli errori è abilitata, Firehose invia anche gli errori di consegna dei dati al gruppo di log e CloudWatch ai flussi. Per questo motivo, è necessario configurare i nomi del gruppo di log e del flusso di log. Per i nomi dei gruppi di log e dei flussi di log, consulta Monitoring Amazon Data Firehose Using Logs. CloudWatch
-
Dopo aver creato la policy, creare un ruolo IAM con il servizio AWS come il Tipo di entità attendibile.
-
Per Servizio o caso d'uso scegli Kinesis. Per Caso d'uso scegli Kinesis Firehose.
-
Scegli Successivo, quindi seleziona la policy creata in precedenza.
-
Assegnare un nome al proprio ruolo. Verifica i dettagli del ruolo e scegli Crea ruolo. Il ruolo avrà la seguente policy di attendibilità.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "firehose.amazonaws.com" ] } } ] }
Configurazione di un flusso Firehose alle tabelle S3
La seguente procedura mostra come configurare un flusso Firehose per fornire dati alle tabelle S3 utilizzando la console. I seguenti prerequisiti sono necessari per configurare un flusso Firehose alle tabelle S3.
Prerequisiti
-
Integrare i bucket di tabelle con i servizi di analisi di AWS.
-
Creare un collegamento di risorsa al proprio spazio dei nomiper essere la destinazione del tuo stream.
Nota
Quando si crea un collegamento a una risorsa per Firehose, il nome può essere composto solo da lettere maiuscole, minuscole e caratteri di sottolineatura (_).
Concedere le autorizzazioni di Lake Formation sulle risorse delle tabelleal ruolo del servizio Firehose che hai creato per lo streaming sulle tabelle.
Nota
È necessario concedere separatamente le autorizzazioni sia al collegamento alla risorsa che allo spazio dei nomi o alla tabella di destinazione (collegati). Firehose necessita dell'autorizzazione Descrivi sul link alla risorsa.
Per fornire informazioni di instradamento a Firehose quando si configura un flusso, si utilizza il nome del collegamento di risorsa creato per il proprio spazio dei nomi come il nome del database e il nome di una tabella in tale spazio dei nomi. È possibile utilizzare questi valori nella sezione Chiave unica di una configurazione del flusso Firehose per instradare i dati a una singola tabella. È inoltre possibile utilizzare questi valori per eseguire l'instradamento a una tabella utilizzando le espressioni di query JSON. Per ulteriori informazioni, consulta Instradare i record in entrata a una singola tabella Iceberg.
Per configurare un flusso su tabelle S3 (console)
Aprire la console Firehose all'indirizzo. https://console.aws.amazon.com/firehose/
-
Scegli Crea un flusso Firehose.
-
Per Origine scegli una delle seguenti origini:
-
Flusso di dati Amazon Kinesis
-
MSK Amazon
-
PUT diretto
-
-
Per Destinazione scegli Tabelle Apache Iceberg.
-
Immettere un nome per il flusso Firehose.
-
Configurare le impostazioni dell'origine.
-
Per Impostazioni di destinazione seleziona Account attuale e la Regione AWS delle tabelle verso cui desideri eseguire lo streaming.
-
Configura i nomi di database e tabelle utilizzando la configurazione Unique Key, JSONQuery le espressioni o una funzione Lambda. Per ulteriori informazioni, fare riferimento a Instradare i record in entrata a una singola tabella Iceberg e Instradare i record in entrata a diverse tabelle Iceberg nella Firehose Developer Guide.
-
In Impostazioni di backup specificare un bucket di backup S3.
-
Per Ruoli IAM esistenti in Impostazioni avanzate, seleziona il ruolo IAM creato per Firehose.
Scegli Crea un flusso Firehose.
Per ulteriori informazioni sulle altre impostazioni che è possibile configurare per un flusso, consulta Configurare il flusso Firehose nella Guida per gli sviluppatori di Firehose.