

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

# Nozioni di base su AWS Glue Data Catalog
<a name="start-data-catalog"></a>

 AWS Glue Data Catalog È il tuo archivio di metadati tecnici persistente. È un servizio gestito che puoi utilizzare per archiviare, annotare e condividere i metadati nel Cloud. AWS Per ulteriori informazioni, consulta [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). 


|  | 
| --- |
| La console AWS Glue e alcune interfacce utente sono state recentemente aggiornate. | 

## Panoramica di
<a name="start-data-catalog-overview"></a>

 Puoi utilizzare questo tutorial per creare il tuo primo catalogo dati AWS Glue, che utilizza un bucket Amazon S3 come origine dati. 

 In questo tutorial, verranno eseguite le operazioni seguenti tramite la console AWS Glue: 

1.  Creare un database 

1.  Creare una tabella 

1.  Utilizza un bucket Amazon S3 come origine dei dati 

 Dopo aver completato questi passaggi, avrai utilizzato correttamente un bucket Amazon S3 come origine dati per popolare il catalogo dati AWS Glue. 

## Fase 1: crea un database
<a name="start-data-catalog-database"></a>

 [Per iniziare, accedi Console di gestione AWS e apri la AWS Glue console.](https://console.aws.amazon.com/glue) 

 **Per creare un database utilizzando la console AWS Glue: ** 

1.  Nella console AWS Glue, scegli **Databases** (Database) dal menu a sinistra **Data catalog** (Catalogo dati). 

1.  Scegli **Aggiungi database**. 

1.  Nella pagina Crea database, immetti un nome per il database. Nella sezione **Posizione - *facoltativa***, imposta la posizione dell'URI che i client di Catalogo dati devono utilizzare. Se la ignori, puoi continuare con la creazione del database. 

1.  (Facoltativo). Inserisci una descrizione per il database. 

1.  Scegliere **Crea database**. 

 Congratulazioni, hai appena configurato il tuo primo database usando la console AWS Glue. Il nuovo database verrà visualizzato nell'elenco dei database disponibili. È possibile modificare il database scegliendo il nome del database dal pannello di controllo **Databases** (Database). 

 **Fasi successive** 

 **Altri modi per creare un database:** 

 Hai appena creato un database utilizzando la console AWS Glue, ma esistono altri modi per creare un database: 
+ È possibile utilizzare i crawler per creare automaticamente un database e delle tabelle. Per configurare un database utilizzando i crawler, consulta [Uso di crawler nella console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html). 
+  È possibile utilizzare CloudFormation i modelli. Vedi [Creazione di AWS Glue risorse mediante AWS Glue Data Catalog modelli](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html). 
+  Puoi creare un database anche utilizzando il plugin Operazioni API del database AWS Glue. 

   Per creare un database utilizzando il plugin dell’operazione `create`, strutturare la richiesta includendo i parametri `DatabaseInput` (obbligatori). 

   Ad esempio:   
****  
 Di seguito sono riportati esempi di come è possibile utilizzare la CLI, Boto3 o DDL per definire una tabella basata sullo stesso file flights\_data.csv dal bucket S3 utilizzato nel tutorial.   

  ```
  aws glue create-database --database-input "{\"Name\":\"clidb\"}"                                              
  ```

  ```
  glueClient = boto3.client('glue')
  
  response = glueClient.create_database(
      DatabaseInput={
          'Name': 'boto3db'
      }
  )
  ```

 Per ulteriori informazioni sui tipi di dati, sulla struttura e sulle operazioni API del database, consulta [API database](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html). 

 **Fasi successive** 

 Nella sezione successiva, creerai una tabella e la aggiungerai al database. 

Puoi anche esplorare le impostazioni e le autorizzazioni per il catalogo dati. Consulta [Uso delle impostazioni dei cataloghi dati nella console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-data-catalog-settings.html). 

## Passaggio 2. Creare una tabella
<a name="start-data-catalog-table"></a>

 In questa fase, utilizzerai la console AWS Glue per creare una tabella. 

1.  Nella console AWS Glue, scegli **Tables** (Tabelle) dal menu a sinistra. 

1.  Scegli **Aggiungi tabella**. 

1.  Imposta le proprietà della tabella inserendo un nome per la tabella in **Table details** (Dettagli della tabella). 

1.  Nella sezione **Databases** (Database), scegli il database creato nella fase 1 dal menu a discesa. 

1.  Nella sezione **Add a data store** (Aggiungi un datastore), per impostazione predefinita il tipo di origine sarà **S3**. 

1.  Per **Data is located in** (I dati si trovano in), scegli **Specified path in another account** (Percorso specificato in un altro account). 

1. Copia e incolla il percorso per il campo di input **Include path** (Percorso di inclusione):

   `s3://crawler-public-us-west-2/flight/2016/csv/`

1.  Nella sezione **Data format** (Formato dei dati), per **Classification** (Classificazione), scegli **CSV** e per **Delimiter** (Delimitatore), scegli **comma (,)** (virgola [,]). Scegli **Next (Successivo)**. 

1. Ti viene chiesto di definire uno schema. Uno schema definisce la struttura e il formato di un registro di dati. Scegli **Add column** (Aggiungi colonna). (Per ulteriori informazioni, consulta [Registri degli schemi](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html#schema-registry-schemas.html)).

1.  Specifica le proprietà della colonna: 

   1. Inserisci un nome per la colonna. 

   1. Per **Column type** (Tipo di colonna), 'string' è già selezionata per impostazione predefinita.

   1. Per **Column number** (Numero di colonna), '1' è già selezionato per impostazione predefinita.

   1. Scegliere **Aggiungi**.

1.  Ti viene richiesto di aggiungere indici di partizione. Questa operazione è facoltativa. Per saltare questo passaggio, scegli **Next** (Successivo). 

1.  Viene visualizzato un riepilogo delle proprietà della tabella. Se tutto appare come previsto, scegliere **Crea**. In caso contrario, scegli **Back** (Indietro) e modifica in base alle necessità. 

 Congratulazioni, hai creato manualmente una tabella in modo corretto e l'hai associata a un database. La tabella appena creata apparirà nel pannello di controllo Tables (Tabelle). Dal pannello di controllo, puoi modificare e gestire le tabelle. 

 Per ulteriori informazioni, consulta [Utilizzo di tabelle nella console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html). 

## Fasi successive
<a name="start-data-catalog-next-steps"></a>

 **Fasi successive** 

 Ora che il catalogo dati è popolato, è possibile iniziare a creare i processi in AWS Glue. Consultare [Creazione di processi ETL visivi con AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html). 

 Oltre a utilizzare la console, esistono altri modi per definire le tabelle nel catalogo dati, tra cui:
+  [Creare ed eseguire un crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) 
+  [Aggiungere classificatori a un crawler in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html) 
+  [Usare la Tabella API AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html) 
+  [ Usare il modello AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html) 
+  [Eseguire la migrazione di un metastore Apache Hive](https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Hive_metastore_migration) 
+  [Utilizzando Boto3 o AWS CLI il](https://docs.aws.amazon.com/cli/latest/reference/glue/create-table.html) linguaggio di definizione dei dati (DDL)   
****  
 Di seguito sono riportati esempi di come è possibile utilizzare la CLI, Boto3 o DDL per definire una tabella basata sullo stesso file flights\_data.csv dal bucket S3 utilizzato nel tutorial.   
 Consulta la documentazione su come strutturare un comando. AWS CLI L'esempio della CLI contiene la sintassi JSON per il valore "aws glue create-table --table-input".   

  ```
  {
          "Name": "flights_data_cli",
          "StorageDescriptor": {
              "Columns": [
                  {
                      "Name": "year",
                      "Type": "bigint"
                  },
                  {
                      "Name": "quarter",
                      "Type": "bigint"
                  }
              ],
              "Location": "s3://crawler-public-us-west-2/flight/2016/csv",
              "InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
              "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
              "Compressed": false,
              "NumberOfBuckets": -1,
              "SerdeInfo": {
                  "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                  "Parameters": {
                      "field.delim": ",",
                      "serialization.format": ","
                  }
              }
          },
          "PartitionKeys": [
              {
                  "Name": "mon",
                  "Type": "string"
              }
          ],
          "TableType": "EXTERNAL_TABLE",
          "Parameters": {
              "EXTERNAL": "TRUE",
              "classification": "csv",
              "columnsOrdered": "true",
              "compressionType": "none",
              "delimiter": ",",
              "skip.header.line.count": "1",
              "typeOfData": "file"
          }
      }
  ```

  ```
  import boto3
  
  glue_client = boto3.client("glue")
  
  response = glue_client.create_table(
      DatabaseName='sampledb',
      TableInput={
          'Name': 'flights_data_manual',
      'StorageDescriptor': {
        'Columns': [{
          'Name': 'year',
          'Type': 'bigint'
        }, {
          'Name': 'quarter',
          'Type': 'bigint'
        }],
        'Location': 's3://crawler-public-us-west-2/flight/2016/csv',
        'InputFormat': 'org.apache.hadoop.mapred.TextInputFormat',
        'OutputFormat': 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat',
        'Compressed': False,
        'NumberOfBuckets': -1,
        'SerdeInfo': {
          'SerializationLibrary': 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe',
          'Parameters': {
            'field.delim': ',',
            'serialization.format': ','
          }
        },
      },
      'PartitionKeys': [{
        'Name': 'mon',
        'Type': 'string'
      }],
      'TableType': 'EXTERNAL_TABLE',
      'Parameters': {
        'EXTERNAL': 'TRUE',
        'classification': 'csv',
        'columnsOrdered': 'true',
        'compressionType': 'none',
        'delimiter': ',',
        'skip.header.line.count': '1',
        'typeOfData': 'file'
      }
      }
  )
  ```

  ```
  CREATE EXTERNAL TABLE `sampledb`.`flights_data` (
    `year` bigint, 
    `quarter` bigint)
  PARTITIONED BY ( 
    `mon` string)
  ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ',' 
  STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
  OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
  LOCATION
    's3://crawler-public-us-west-2/flight/2016/csv/'
  TBLPROPERTIES (
    'classification'='csv', 
    'columnsOrdered'='true', 
    'compressionType'='none', 
    'delimiter'=',', 
    'skip.header.line.count'='1', 
    'typeOfData'='file')
  ```