

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

# Avvio rapido: esecuzione di query sui dati in Amazon S3
<a name="studio-sqlexplorer-athena-s3-quickstart"></a>

Gli utenti possono analizzare i dati archiviati in Amazon S3 eseguendo query SQL da JupyterLab notebook utilizzando l'estensione SQL. L’estensione si integra con Athena e consente di abilitare la funzionalità per i dati in Amazon S3 con pochi passaggi aggiuntivi.

Questa sezione illustra i passaggi per caricare i dati da Amazon S3 in Athena e quindi interrogare tali dati JupyterLab utilizzando l'estensione SQL. Creerai un'origine dati e un AWS Glue crawler Athena per indicizzare i tuoi dati Amazon S3, configurerai le autorizzazioni IAM appropriate per consentire l' JupyterLab accesso ad Athena e JupyterLab ti connetterai ad Athena per interrogare i dati. Seguendo questi pochi passaggi, sarai in grado di analizzare i dati di Amazon S3 utilizzando l'estensione SQL nei JupyterLab notebook.

**Prerequisiti**  
Accedi alla console di AWS gestione utilizzando un account utente AWS Identity and Access Management (IAM) con autorizzazioni di amministratore. Per informazioni su come registrare un account AWS e creare un utente con accesso amministrativo, consulta [Prerequisiti completi per Amazon SageMaker AI](gs-set-up.md).
Disponi di un dominio SageMaker AI e di un profilo utente per accedere a SageMaker Studio. Per informazioni su come impostare un ambiente di SageMaker intelligenza artificiale, consulta[Usa la configurazione rapida per Amazon SageMaker AI](onboard-quick-start.md).
Disponi di un bucket e di una cartella Amazon S3 per archiviare i risultati delle query Athena, utilizzando la stessa AWS regione e lo stesso account del tuo ambiente AI. SageMaker Per informazioni su come creare un bucket in Amazon S3, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3. Configura questo bucket come posizione di output della tua query.

**Topics**
+ [Fase 1: Configurare un'origine dati Athena e AWS Glue crawler per i tuoi dati Amazon S3](#studio-sqlexplorer-athena-s3-quickstart-setup)
+ [Fase 2. Concedi a Studio le autorizzazioni per accedere ad Athena](#studio-sqlexplorer-athena-s3-quickstart-permissions)
+ [Fase 3: Attivare la connessione predefinita Athena in JupyterLab](#studio-sqlexplorer-athena-s3-quickstart-connect)
+ [Fase 4: Interrogare i dati in Amazon S3 dai JupyterLab notebook utilizzando l'estensione SQL](#studio-sqlexplorer-athena-s3-quickstart-query)

## Fase 1: Configurare un'origine dati Athena e AWS Glue crawler per i tuoi dati Amazon S3
<a name="studio-sqlexplorer-athena-s3-quickstart-setup"></a>

Segui questa procedura per indicizzare i dati in Amazon S3 e creare tabelle in Athena.

**Nota**  
Per evitare conflitti tra i nomi delle tabelle archiviate in diverse posizioni Amazon S3, crea un’origine dati e un crawler separati per ogni posizione. Ogni origine dati crea una tabella chiamata come la cartella che la contiene, a meno che non sia presente un prefisso.

1. Configurazione di una posizione dei risultati della query

   1. Vai alla console Athena:. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)

   1. Dal menu a sinistra, scegli **Gruppi di lavoro**.

   1. Segui il link per il gruppo di lavoro `primary` e scegli **Modifica**.

   1. Nella sezione **Configurazione dei risultati delle query**, inserisci il percorso Amazon S3 della tua directory di output, quindi scegli **Salva le modifiche**.

1. Creazione di un’origine dati Athena per i dati di Amazon S3

   1. Dal menu a sinistra della console Athena, scegli **Origini dati** e **Crea origine dati**. 

   1. **Scegli **S3 - AWS Glue Data Catalog** e poi Avanti.** 

   1. Lascia l’impostazione predefinita per **Catalogo dati AWS Glue in questo account**, scegli **Crea un crawler in AWS Glue**, quindi seleziona **Crea in AWS Glue**. Questo apre la AWS Glue console. 

1.  AWS Glue Usalo per scansionare la tua fonte di dati

   1. Inserisci un nome e una descrizione per il crawler, quindi scegli **Avanti**. 

   1. Nella sezione **Origini dati**, scegli **Aggiungi un’origine dati**.

      1. Se il bucket Amazon Amazon S3 contenente i tuoi dati si trova in un AWS account diverso rispetto al tuo ambiente SageMaker AI, scegli **In un account diverso** per la **posizione dei** dati S3.

      1. Inserisci il percorso del set di dati in Amazon S3. Esempio:

         ```
         s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/
         ```

      1. Mantieni tutti gli altri valori predefiniti, quindi scegli **Aggiungi un’origine dati Amazon S3**. Dovresti vedere una nuova origine dati Amazon S3 nella tabella delle origini dati.

      1. Scegli **Next (Successivo)**.

       

   1. Configura il ruolo IAM per consentire al crawler di accedere ai dati.
**Nota**  
Ogni ruolo è limitato all’origine dati specificata. Quando riutilizzi un ruolo, modifica la policy JSON per aggiungere eventuali nuove risorse a cui concedere l’accesso o crea un nuovo ruolo per questa origine dati.

      1. Scegli **Crea un nuovo ruolo IAM**.

      1. Inserisci un nome per il ruolo, quindi scegli **Avanti**.

1. Crea o seleziona un database per le tue tabelle

   1. Se non disponi di un database esistente in Athena, scegli **Aggiungi database** e **Crea un nuovo database**.

   1. Tornando alla scheda di creazione del crawler precedente, scegli il pulsante **Aggiorna** in **Configurazione di output**. L’elenco dovrebbe ora mostrare il database appena creato.

   1. Seleziona il database, aggiungi un prefisso facoltativo in **Prefisso del nome della tabella**, quindi scegli **Avanti**.
**Nota**  
Nell’esempio precedente, in cui i dati si trovano in `s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/`, l’aggiunta del prefisso `taxi-ride-` creerà una tabella denominata `taxi-ride-year_2019`. L’aggiunta di un prefisso aiuta a prevenire i conflitti tra i nomi delle tabelle quando in più posizioni di dati sono presenti cartelle con lo stesso nome.

1. Scegli **Crea crawler**.

1. Esegui il crawler per indicizzare i tuoi dati. Attendi che l’esecuzione del crawler raggiunga lo stato `Completed`. Questa operazione potrebbe richiedere alcuni minuti.

**Per assicurarti che sia stata creata una nuova tabella, vai al menu a sinistra di AWS Glue e scegli **Database**, quindi Tabelle.** A questo punto, dovresti vedere una nuova tabella con i tuoi dati. 

## Fase 2. Concedi a Studio le autorizzazioni per accedere ad Athena
<a name="studio-sqlexplorer-athena-s3-quickstart-permissions"></a>

Nelle fasi seguenti concedi al ruolo di esecuzione del tuo profilo utente le autorizzazioni per accedere ad Athena.

1. Recupera l’ARN del ruolo di esecuzione associato al profilo utente

   1. Vai alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e scegli **Domini** nel menu a sinistra.

   1. Seleziona il nome del tuo dominio.

   1. Nell’elenco **Profili utente**, seleziona il nome del tuo profilo utente.

   1. Nella pagina **Dettagli utente**, copia l’ARN del ruolo di esecuzione.

1. Aggiorna la policy di attendibilità del ruolo di esecuzione

   1. Trova la tua AWS regione e l'ID dell'account in alto a destra nella console SageMaker AI. Utilizza questi valori e il nome del tuo database per aggiornare i segnaposto nella policy JSON seguente in un editor di testo.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "GetS3AndDataSourcesMetadata",
                  "Effect": "Allow",
                  "Action": [
                      "glue:GetDatabases",
                      "glue:GetSchema",
                      "glue:GetTables",
                      "s3:ListBucket",
                      "s3:GetObject",
                      "s3:GetBucketLocation",
                      "glue:GetDatabase",
                      "glue:GetTable",
                      "glue:ListSchemas",
                      "glue:GetPartitions"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*",
                      "arn:aws:glue:{{us-east-1}}:{{111122223333}}:catalog",
                      "arn:aws:glue:{{us-east-1}}:{{111122223333}}:database/{{db-name}}"
                  ]
              },
              {
                  "Sid": "ExecuteAthenaQueries",
                  "Effect": "Allow",
                  "Action": [
                      "athena:ListDataCatalogs",
                      "athena:ListDatabases",
                      "athena:ListTableMetadata",
                      "athena:StartQueryExecution",
                      "athena:GetQueryExecution",
                      "athena:RunQuery",
                      "athena:StartSession",
                      "athena:GetQueryResults",
                      "athena:ListWorkGroups",
                      "s3:ListMultipartUploadParts",
                      "s3:ListBucket",
                      "s3:GetBucketLocation",
                      "athena:GetDataCatalog",
                      "s3:AbortMultipartUpload",
                      "s3:GetObject",
                      "s3:PutObject",
                      "athena:GetWorkGroup"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              },
              {
                  "Sid": "GetGlueConnectionsAndSecrets",
                  "Effect": "Allow",
                  "Action": [
                      "glue:GetConnections",
                      "glue:GetConnection"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

------

   1. Vai alla console IAM: [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)e scegli **Ruoli** nel menu a sinistra.

   1. Cerca il nome del tuo ruolo.
**Nota**  
Puoi recuperare il nome di un ruolo di esecuzione dal suo nome della risorsa Amazon (ARN) suddividendo l’ARN in corrispondenza di `'/'` e prendendo l’ultimo elemento. Ad esempio, nell’ARN di esempio seguente, `arn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole`, il nome del ruolo di esecuzione è `SageMakerStudio-SQLExtension-ExecutionRole`.

   1. Segui il link relativo al tuo ruolo.

   1. Nella scheda **Autorizzazioni**, scegli **Aggiungi autorizzazioni**, quindi **Crea policy inline**.

   1. Nella sezione **Editor di policy**, scegli il formato `JSON`.

   1. Copia la policy riportata sopra, quindi scegli **Avanti**. Assicurati di aver sostituito tutti i campi `account-id`, `region-name` e `db-name` con i relativi valori.

   1. Immetti un nome per la policy e scegli **Crea policy**.

## Fase 3: Attivare la connessione predefinita Athena in JupyterLab
<a name="studio-sqlexplorer-athena-s3-quickstart-connect"></a>

Nei passaggi seguenti, abiliti un `default-athena-connection` nella tua JupyterLab applicazione. La connessione Athena predefinita consente di eseguire query SQL in Athena direttamente da JupyterLab, senza la necessità di creare manualmente una connessione.

Per abilitare la connessione Athena predefinita

1. Vai alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e scegli **Studio nel menu a sinistra**. Avvia Studio utilizzando il dominio e il profilo utente.

1. Scegli l' JupyterLab applicazione. 

1. Se non hai creato uno spazio per l' JupyterLab applicazione, scegli **Crea uno JupyterLab spazio**. Inserisci un nome per lo spazio, mantieni lo spazio **Privato**, quindi scegli **Crea spazio**. Gestisci il tuo spazio utilizzando l'ultima versione dell'immagine SageMaker AI Distribution.

   Altrimenti, scegli **Esegui spazio** sul tuo spazio per avviare un' JupyterLab applicazione.

1. Abilita la connessione predefinita Athena:

   1. Nell' JupyterLab applicazione, accedi al menu **Impostazioni** nella barra di navigazione in alto e apri il menu dell'**editor delle impostazioni**.

   1. Scegli **Rilevamento dei dati**.

   1. Seleziona la casella **Abilita la connessione Athena predefinita**.

   1. Nell' JupyterLab applicazione, scegli l'icona dell'estensione SQL (![SQL Explorer icon.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-icon.png)) nel riquadro di navigazione a sinistra per aprire l'estensione SQL.

   1.  Scegli il pulsante **Aggiorna** nella parte inferiore del pannello Rilevamento dei dati. Dovresti vedere `default-athena-connection` nell’elenco delle connessioni.

## Fase 4: Interrogare i dati in Amazon S3 dai JupyterLab notebook utilizzando l'estensione SQL
<a name="studio-sqlexplorer-athena-s3-quickstart-query"></a>

Sei pronto per interrogare i tuoi dati utilizzando SQL nei tuoi notebook. JupyterLab 

1. Apri la connessione e poi. `default-athena-connection` **AWS DataCatalog**

1. Accedi al tuo database e scegli l’icona con tre puntini (![SQL extension three dots icon.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-3dots-icon.png)) sulla destra. Seleziona **Query nel notebook**.

   Questa operazione inserisce automaticamente in JupyterLab una cella del notebook il comando `%%sm_sql` magico corrispondente per connettersi alla fonte di dati. Aggiunge anche un’istruzione SQL di esempio per aiutarti a iniziare subito a eseguire query. 
**Nota**  
Assicurati di caricare l’estensione nella cella superiore prima di eseguire una query SQL.

   Puoi perfezionare ulteriormente la query SQL utilizzando le funzionalità di completamento automatico ed evidenziazione dell’estensione. Per ulteriori informazioni sull’utilizzo dell’editor SQL per l’estensione SQL, consulta [Funzionalità dell'editor SQL dell'estensione JupyterLab SQL](sagemaker-sql-extension-features-editor.md).