

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

# Interrogazione dei dati di S3 Storage Lens con strumenti di analisi
<a name="storage-lens-s3-tables-querying"></a>

Prima di poter interrogare i dati di S3 Storage Lens esportati in S3 Tables utilizzando servizi di AWS analisi come Amazon Athena o Amazon EMR, devi abilitare l'integrazione dell'analisi nel bucket di tabelle AWS`aws-s3` gestito e configurare le autorizzazioni. AWS Lake Formation 

**Importante**  
Abilitare l'integrazione dell'analisi nel bucket di tabelle «aws-s3" è un passaggio obbligatorio che spesso viene omesso. Senza questa configurazione, non sarai in grado di interrogare le tabelle di S3 Storage Lens utilizzando i servizi di analisi. AWS 

## Prerequisiti
<a name="storage-lens-s3-tables-querying-prerequisites"></a>

Prima di iniziare, assicurati di avere:
+ Una configurazione S3 Storage Lens con esportazione di tabelle S3 abilitata. Per ulteriori informazioni, consulta [Esportazione delle metriche di S3 Storage Lens in S3 Tables](storage-lens-s3-tables-export.md).
+ Accesso ad Amazon Athena o a un altro servizio di analisi.
+ Dopo aver abilitato l'esportazione, sono state attese 24-48 ore prima che i primi dati fossero disponibili.

## Panoramica dell’integrazione
<a name="storage-lens-s3-tables-querying-integration-overview"></a>

Per informazioni dettagliate sull'integrazione delle tabelle S3 con i servizi di AWS analisi, inclusi i prerequisiti, la configurazione dei ruoli IAM e step-by-step le procedure, consulta Integrazione delle tabelle [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) con i servizi di analisi. AWS 

Dopo aver abilitato l'esportazione di S3 Tables e configurato l'integrazione delle analisi, puoi interrogare i dati di S3 Storage Lens utilizzando servizi di AWS analisi come Amazon Athena, Amazon Redshift e Amazon EMR. Ciò consente di eseguire analisi personalizzate, creare dashboard e ricavare informazioni dai dati di storage utilizzando SQL standard.

## Interrogazioni con Amazon Athena
<a name="storage-lens-s3-tables-querying-athena"></a>

Amazon Athena è un servizio di query interattivo senza server che semplifica l'analisi dei dati utilizzando SQL standard. Usa i seguenti passaggi per interrogare i dati di S3 Storage Lens in Athena.

**Nota**  
In tutti gli esempi di query, sostituiscili `lens_my-config_exp` con lo spazio dei nomi di configurazione di Storage Lens effettivo. Per ulteriori informazioni sulla denominazione dei namespace, vedere. [Denominazione delle tabelle per l'esportazione di S3 Storage Lens su S3 Tables](storage-lens-s3-tables-naming.md)

### Esempio: interroga i principali consumatori di storage
<a name="storage-lens-s3-tables-querying-athena-top-consumers"></a>

La seguente query identifica i primi 10 bucket in base al consumo di storage:

```
SELECT 
    bucket_name,
    storage_class,
    SUM(storage_bytes) / POWER(1024, 3) AS storage_gb,
    SUM(object_count) AS objects
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
WHERE report_time = (
    SELECT MAX(report_time) 
    FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
)
    AND record_type = 'BUCKET'
    AND bucket_name != ''
GROUP BY bucket_name, storage_class
ORDER BY storage_gb DESC
LIMIT 10
```

### Esempio: analizza la crescita dello storage nel tempo
<a name="storage-lens-s3-tables-querying-athena-growth"></a>

La seguente query analizza la crescita dello storage negli ultimi 30 giorni:

```
SELECT 
    CAST(report_time AS date) AS report_date,
    SUM(storage_bytes) / POWER(1024, 3) AS total_storage_gb
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
WHERE report_time >= current_date - interval '30' day
    AND record_type = 'ACCOUNT'
GROUP BY CAST(report_time AS date)
ORDER BY report_date DESC;
```

### Esempio: identifica i caricamenti multiparte incompleti
<a name="storage-lens-s3-tables-querying-athena-mpu"></a>

La seguente query trova i bucket con caricamenti multiparte incompleti risalenti a più di 7 giorni fa:

```
SELECT 
    bucket_name,
    SUM(incomplete_mpu_storage_older_than_7_days_bytes) / POWER(1024, 3) AS wasted_storage_gb,
    SUM(incomplete_mpu_object_older_than_7_days_count) AS wasted_objects
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
WHERE report_time = (
    SELECT MAX(report_time) 
    FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
)
    AND record_type = 'BUCKET'
    AND incomplete_mpu_storage_older_than_7_days_bytes > 0
GROUP BY bucket_name
ORDER BY wasted_storage_gb DESC;
```

### Esempio: trova candidati per i cold data
<a name="storage-lens-s3-tables-querying-athena-cold-data"></a>

La seguente query identifica i prefissi senza attività negli ultimi 100 giorni che vengono archiviati in livelli di archiviazione a caldo:

```
WITH recent_activity AS (
    SELECT DISTINCT 
        bucket_name,
        record_value AS prefix_path
    FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."expanded_prefixes_activity_metrics"
    WHERE report_time >= current_date - interval '100' day
        AND record_type = 'PREFIX'
        AND all_request_count > 0
)
SELECT 
    s.bucket_name,
    s.record_value AS prefix_path,
    s.storage_class,
    SUM(s.storage_bytes) / POWER(1024, 3) AS storage_gb
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."expanded_prefixes_storage_metrics" s
LEFT JOIN recent_activity r 
    ON s.bucket_name = r.bucket_name 
    AND s.record_value = r.prefix_path
WHERE s.report_time = (
    SELECT MAX(report_time) 
    FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."expanded_prefixes_storage_metrics"
)
    AND s.record_type = 'PREFIX'
    AND s.storage_class IN ('STANDARD', 'REDUCED_REDUNDANCY')
    AND s.storage_bytes > 1073741824  -- > 1GB
    AND r.prefix_path IS NULL  -- No recent activity
GROUP BY s.bucket_name, s.record_value, s.storage_class
ORDER BY storage_gb DESC
LIMIT 20;
```

### Esempio: analisi dei modelli di richiesta
<a name="storage-lens-s3-tables-querying-athena-requests"></a>

La seguente query analizza i modelli di richiesta per comprendere la frequenza di accesso:

```
SELECT 
    bucket_name,
    SUM(all_request_count) AS total_requests,
    SUM(get_request_count) AS get_requests,
    SUM(put_request_count) AS put_requests,
    ROUND(100.0 * SUM(get_request_count) / NULLIF(SUM(all_request_count), 0), 2) AS get_percentage,
    SUM(downloaded_bytes) / POWER(1024, 3) AS downloaded_gb
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_activity_metrics"
WHERE report_time >= current_date - interval '7' day
    AND record_type = 'BUCKET'
    AND bucket_name != ''
GROUP BY bucket_name
HAVING SUM(all_request_count) > 0
ORDER BY total_requests DESC
LIMIT 10;
```

## Interrogazione con Apache Spark su Amazon EMR
<a name="storage-lens-s3-tables-querying-emr"></a>

Amazon EMR fornisce un framework Hadoop gestito che semplifica l'elaborazione di grandi quantità di dati utilizzando Apache Spark. Puoi usare il connettore Iceberg per leggere direttamente le tabelle di S3 Storage Lens.

### Leggi le tabelle S3 con Spark
<a name="storage-lens-s3-tables-querying-emr-spark"></a>

Usa il seguente codice Python per leggere i dati di S3 Storage Lens con Spark:

```
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("S3StorageLensAnalysis") \
    .config("spark.sql.catalog.s3tablescatalog", "org.apache.iceberg.spark.SparkCatalog") \
    .config("spark.sql.catalog.s3tablescatalog.catalog-impl", "org.apache.iceberg.aws.glue.GlueCatalog") \
    .getOrCreate()

# Read S3 Storage Lens data
df = spark.read \
    .format("iceberg") \
    .load("s3tablescatalog/aws-s3.lens_my-config_exp.default_storage_metrics")

# Analyze data
df.filter("record_type = 'BUCKET'") \
    .groupBy("bucket_name", "storage_class") \
    .sum("storage_bytes") \
    .orderBy("sum(storage_bytes)", ascending=False) \
    .show(10)
```

## Best practice per l'ottimizzazione delle query
<a name="storage-lens-s3-tables-querying-optimization"></a>

Segui queste best practice per ottimizzare le prestazioni delle query e ridurre i costi:
+  **Filtra per report\$1time**: includi sempre filtri di data per ridurre la quantità di dati scansionati. Ciò è particolarmente importante per le tabelle con lunghi periodi di conservazione.

  ```
  WHERE report_time >= current_date - interval '7' day
  ```
+  **Usa i filtri record\$1type**: specifica il livello di aggregazione appropriato (ACCOUNT, BUCKET, PREFIX) per interrogare solo i dati necessari.

  ```
  WHERE record_type = 'BUCKET'
  ```
+  **Includi clausole LIMIT: utilizza** LIMIT per le query esplorative per controllare la dimensione dei risultati e ridurre i costi delle query.

  ```
  LIMIT 100
  ```
+  **Filtra i record vuoti**: utilizza le condizioni per escludere i record vuoti o con valore zero.

  ```
  WHERE storage_bytes > 0
  ```
+  **Usa i dati più recenti**: quando analizzi lo stato corrente, filtra in base al report\$1time più recente per evitare la scansione dei dati storici.

  ```
  WHERE report_time = (SELECT MAX(report_time) FROM table_name)
  ```

### Esempio di modello di interrogazione ottimizzato
<a name="storage-lens-s3-tables-querying-optimization-example"></a>

La seguente query illustra le migliori pratiche per l'ottimizzazione:

```
SELECT 
    bucket_name,
    SUM(storage_bytes) / POWER(1024, 3) AS storage_gb
FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics"
WHERE report_time >= current_date - interval '7' day  -- Date filter
    AND record_type = 'BUCKET'                         -- Record type filter
    AND storage_bytes > 0                              -- Non-empty filter
    AND bucket_name != ''                              -- Non-empty filter
GROUP BY bucket_name
ORDER BY storage_gb DESC
LIMIT 100;                                             -- Result limit
```

## Risoluzione dei problemi
<a name="storage-lens-s3-tables-querying-troubleshooting"></a>

### La query non restituisce risultati
<a name="storage-lens-s3-tables-querying-troubleshooting-no-results"></a>

 **Problema:** la query viene completata correttamente ma non restituisce risultati.

 **Soluzione:**: 
+ Verifica che i dati siano disponibili controllando l'ultimo report\$1time:

  ```
  SELECT MAX(report_time) AS latest_data
  FROM "s3tablescatalog/aws-s3"."lens_my-config_exp"."default_storage_metrics";
  ```
+ Assicurati di utilizzare il nome del namespace corretto. Usa `SHOW TABLES IN `lens_my-config_exp`;` per elencare le tabelle disponibili.
+ Attendi 24-48 ore dopo aver abilitato l'esportazione delle tabelle S3 affinché i primi dati siano disponibili.

### Errori di accesso negato
<a name="storage-lens-s3-tables-querying-troubleshooting-access"></a>

 **Problema:** ricevi errori di accesso negato durante l'esecuzione delle query.

 **Soluzione:** verifica che AWS Lake Formation le autorizzazioni siano configurate correttamente. Per ulteriori informazioni, consulta [Integrazione delle tabelle Amazon S3 AWS con](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) i servizi di analisi. 

## Fasi successive
<a name="storage-lens-s3-tables-querying-next-steps"></a>
+ Ulteriori informazioni su [Utilizzo degli assistenti AI con le tabelle S3 Storage Lens](storage-lens-s3-tables-ai-tools.md)
+ Consulta le definizioni delle [Glossario dei parametri di Amazon S3 Storage Lens](storage_lens_metrics_glossary.md) metriche
+ Esplora [Casi d'uso relativi ai parametri di Amazon S3 Storage Lens](storage-lens-use-cases.md) per ulteriori idee di analisi
+ Scopri [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) per l'interrogazione senza server