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à.
Amazon Data Firehose è un servizio completamente gestito per la distribuzione di dati di streaming
Dopo aver integrato i tuoi table bucket con i servizi di AWS analisi, esegui le seguenti operazioni:
-
Configura Firehose per fornire dati nelle tue tabelle S3. A tale scopo, create un ruolo di servizio AWS Identity and Access Management (IAM) che consenta a Firehose di accedere alle tabelle.
-
Crea un link di risorsa alla tua tabella o al namespace della tabella.
-
Concedi al ruolo di servizio Firehose autorizzazioni esplicite per la tabella o lo spazio dei nomi della tabella concedendo le autorizzazioni sul link alla risorsa.
-
Crea uno stream Firehose che indirizza i dati alla tua 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 uno stream 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
con le tue informazioni.user input placeholders
{ "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" ] } } ] }
Creazione di un collegamento di risorsa agli spazi dei nomi della tabella
Per accedere alle tue tabelle, Amazon Data Firehose necessita di un link di risorsa che abbia come destinazione lo spazio dei nomi della tabella. Il collegamento di una risorsa è un oggetto del Catalogo dati che funge da alias o puntatore a un'altra risorsa del Catalogo dati, ad esempio un database o una tabella. Il collegamento è archiviato nel Catalogo dati dell'account o della Regione in cui è stato creato. Per ulteriori informazioni, consulta Come funzionano i link alle risorse nella Guida per gli AWS Lake Formation sviluppatori.
Dopo aver integrato i table bucket con i servizi di AWS analisi, puoi creare link a risorse per lavorare con le tue tabelle in Firehose.
È necessario creare collegamenti di risorse ai namespace delle tabelle e quindi fornire il nome del collegamento a Firehose in modo che Firehose possa funzionare con le tabelle collegate.
Il AWS CLI comando seguente crea un link di risorse che puoi usare per connettere le tue tabelle S3 a Firehose. Per utilizzare questo comando di esempio, sostituisci
con le tue informazioni.user input
placeholders
aws glue create-database --region
us-east-1
\ --catalog-id "111122223333
" \ --database-input \ '{ "Name": "resource-link-name
", "TargetDatabase": { "CatalogId": "111122223333
:s3tablescatalog/amzn-s3-demo-table-bucket
", "DatabaseName": "my_namespace
" }, "CreateTableDefaultPermissions": [] }'
Nota
È necessario concedere separatamente le autorizzazioni sia al link di risorsa che allo spazio dei nomi di destinazione (collegato). Per ulteriori informazioni, consulta Concessione dell'autorizzazione per un collegamento a una risorsa.
Concessione dell'autorizzazione per un collegamento a una risorsa
Quando si utilizza un collegamento a una risorsa per accedere alle tabelle, è necessario concedere separatamente le autorizzazioni sia al collegamento alla risorsa che allo spazio dei nomi o alla tabella di destinazione (collegati). Puoi concedere a un principale IAM le autorizzazioni Lake Formation su un link di risorsa collegato allo spazio dei nomi della tua tabella tramite la console Lake Formation o il. AWS CLI
-
Apri la AWS Lake Formation console all'indirizzo https://console.aws.amazon.com/lakeformation/
e accedi come amministratore del data lake. Per ulteriori informazioni su come creare un amministratore di data lake, consulta Create a data lake administrator nella AWS Lake Formation Developer Guide. Nel riquadro di navigazione, scegli Autorizzazioni dati, quindi scegli Concedi.
Nella pagina Concedi autorizzazioni, in Principali, scegli utenti e ruoli IAM e seleziona il ruolo di servizio che hai creato per lo streaming sulle tabelle.
-
In LF-Tags o risorse del catalogo, scegli Risorse Catalogo dati denominato.
Per Catalogs, scegli l'ID del tuo account, che è il catalogo predefinito.
-
Per Database, scegli il link alla risorsa che hai creato per lo spazio dei nomi della tabella.
-
Per le autorizzazioni relative al collegamento alle risorse, scegli Descrivi.
-
Scegli Concessione.
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.
-
Creazione di un link di risorsa al tuo namespaceper 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 (_).
Concessione delle autorizzazioni di Lake Formation sulle risorse del tavoloal 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
-
Diretta PUT
-
-
Per Destinazione, scegli Apache Iceberg Tavoli.
-
Immettere un nome per il flusso Firehose.
-
Configurare le impostazioni dell'origine.
-
Per le impostazioni di destinazione, seleziona Account corrente e la AWS regione 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, consulta Instradare i record in entrata a una singola tabella Iceberg e Instradare i record in entrata a diverse tabelle Iceberg nella Amazon Data 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 puoi configurare per uno stream, consulta Configurare lo stream Firehose nella Amazon Data Firehose Developer Guide.