Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Streaming di dati alle tabelle con Amazon Data Firehose

Modalità Focus
Streaming di dati alle tabelle con Amazon Data Firehose - Amazon Simple Storage Service

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à.

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 in tempo reale a destinazioni come Amazon S3, Amazon Redshift, Amazon Service, OpenSearch Splunk, Apache Iceberg tabelle e endpoint HTTP personalizzati o endpoint HTTP di proprietà di fornitori di servizi terzi supportati. Con Amazon Data Firehose, non è necessario scrivere applicazioni o gestire risorse. È sufficiente configurare i produttori dati perché inviino i dati a Firehose, che li distribuirà automaticamente alla destinazione specificata. È anche possibile configurare Firehose per trasformare i dati prima di distribuirli. Per ulteriori informazioni su Amazon Data Firehose, consulta What is Amazon Data Firehose?

Dopo aver integrato i tuoi table bucket con i servizi di AWS analisi, esegui le seguenti operazioni:

  1. 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.

  2. Crea un link di risorsa alla tua tabella o al namespace della tabella.

  3. 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.

  4. 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.

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione a sinistra, seleziona Policy.

  3. Scegli Crea una policy e scegliere JSON nell'editor delle policy.

  4. 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 user 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

  5. Dopo aver creato la policy, creare un ruolo IAM con il servizio AWS come il Tipo di entità attendibile.

  6. Per Servizio o caso d'uso scegli Kinesis. Per Caso d'uso scegli Kinesis Firehose.

  7. Scegli Successivo, quindi seleziona la policy creata in precedenza.

  8. 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" ] } } ] }

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 user input placeholders con le tue informazioni.

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.

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

Console
  1. 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.

  2. Nel riquadro di navigazione, scegli Autorizzazioni dati, quindi scegli Concedi.

  3. 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.

  4. In LF-Tags o risorse del catalogo, scegli Risorse Catalogo dati denominato.

  5. Per Catalogs, scegli l'ID del tuo account, che è il catalogo predefinito.

  6. Per Database, scegli il link alla risorsa che hai creato per lo spazio dei nomi della tabella.

  7. Per le autorizzazioni relative al collegamento alle risorse, scegli Descrivi.

  8. Scegli Concessione.

CLI
  1. Assicurati di eseguire AWS CLI i comandi come amministratore del data lake. Per ulteriori informazioni, consulta Creare un amministratore del data lake nella Guida per gli AWS Lake Formation sviluppatori.

  2. Esegui il comando seguente per concedere i permessi di Lake Formation su una tabella in un bucket di tabella S3 a un principale IAM in modo che il principale possa accedere alla tabella. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni. Il DataLakePrincipalIdentifier valore può essere un utente IAM o un ARN di ruolo.

    aws lakeformation grant-permissions \ --principal DataLakePrincipalIdentifier=arn:aws:iam::account-id:role/role-name \ --resource Database='{CatalogId=account-id, Name=database-name}' \ --permissions DESCRIBE
  1. 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.

  2. Nel riquadro di navigazione, scegli Autorizzazioni dati, quindi scegli Concedi.

  3. 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.

  4. In LF-Tags o risorse del catalogo, scegli Risorse Catalogo dati denominato.

  5. Per Catalogs, scegli l'ID del tuo account, che è il catalogo predefinito.

  6. Per Database, scegli il link alla risorsa che hai creato per lo spazio dei nomi della tabella.

  7. Per le autorizzazioni relative al collegamento alle risorse, scegli Descrivi.

  8. 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

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)
  1. Aprire la console Firehose all'indirizzo. https://console.aws.amazon.com/firehose/

  2. Scegli Crea un flusso Firehose.

  3. Per Origine scegli una delle seguenti origini:

    • Flusso di dati Amazon Kinesis

    • MSK Amazon

    • Diretta PUT

  4. Per Destinazione, scegli Apache Iceberg Tavoli.

  5. Immettere un nome per il flusso Firehose.

  6. Configurare le impostazioni dell'origine.

  7. Per le impostazioni di destinazione, seleziona Account corrente e la AWS regione delle tabelle verso cui desideri eseguire lo streaming.

  8. 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.

  9. In Impostazioni di backup specificare un bucket di backup S3.

  10. Per Ruoli IAM esistenti in Impostazioni avanzate, seleziona il ruolo IAM creato per Firehose.

  11. 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.

Argomento successivo:

AWS Glue ETL

Argomento precedente:

Amazon QuickSight
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.