

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

# Eseguire query federate
<a name="running-federated-queries"></a>

Dopo aver configurato uno o più connettori dati e averli distribuiti nell'account, puoi utilizzarli nelle query Athena. 

## Eseguire query su una singola origine dati
<a name="running-federated-queries-single-data-source"></a>

Negli esempi di questa sezione si presuppone che [Connettore Amazon Athena CloudWatch](connectors-cloudwatch.md) sia stato configurato e distribuito nel tuo account. Utilizza lo stesso approccio per eseguire query quando utilizzi altri connettori.

**Per creare una query Athena che utilizza il connettore CloudWatch**

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Nell'editor di query Athena, creare una query SQL che utilizza la sintassi seguente nella clausola `FROM`.

   ```
   {{MyCloudwatchCatalog}}.{{database_name}}.{{table_name}}       
   ```

### Esempi
<a name="running-federated-queries-single-data-source-examples"></a>

[L'esempio seguente utilizza il CloudWatch connettore Athena per connettersi alla `all_log_streams` vista nel gruppo `/var/ecommerce-engine/order-processor` CloudWatch Logs Log.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) La visualizzazione `all_log_streams` è una visualizzazione di tutti i flussi di log nel gruppo di log. La query di esempio limita il numero di righe restituite a 100.

```
SELECT * 
FROM "MyCloudwatchCatalog"."/var/ecommerce-engine/order-processor".all_log_streams 
LIMIT 100;
```

Nell'esempio seguente vengono analizzate le informazioni della stessa visualizzazione dell'esempio precedente. Nell'esempio vengono estratti l'ID ordine e il livello di log e filtrati tutti i messaggi che dispongono del livello `INFO`.

```
SELECT 
    log_stream as ec2_instance, 
    Regexp_extract(message '.*orderId=(\d+) .*', 1) AS orderId, 
    message AS order_processor_log, 
    Regexp_extract(message, '(.*):.*', 1) AS log_level 
FROM MyCloudwatchCatalog."/var/ecommerce-engine/order-processor".all_log_streams 
WHERE Regexp_extract(message, '(.*):.*', 1) != 'INFO'
```

## Eseguire query su più origini dati
<a name="running-federated-queries-multiple-sources"></a>

Come esempio più complesso, immagina un'azienda di e-commerce che utilizza le seguenti fonti di dati per archiviare i dati relativi agli acquisti dei clienti:
+ [Amazon RDS per MySQL](https://aws.amazon.com/rds/mysql/) per archiviare i dati del catalogo dei prodotti
+ [Amazon DocumentDB](https://aws.amazon.com/documentdb/) per archiviare dati dell'account del cliente come e-mail e indirizzi di spedizione
+ [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) per archiviare i dati di spedizione e tracciamento degli ordini

Immagina che un analista di dati per questa applicazione di e-commerce scopra che i tempi di spedizione in alcune regioni sono stati influenzati dalle condizioni meteorologiche locali. L'analista desidera sapere quanti ordini subiscono ritardi, dove si trovano i clienti interessati e quali prodotti sono maggiormente interessati. Invece di esaminare separatamente le fonti di informazioni, l'analista utilizza Athena per unire i dati in un'unica query federata.

**Example**  

```
SELECT 
     t2.product_name AS product, 
     t2.product_category AS category, 
     t3.customer_region AS region, 
     count(t1.order_id) AS impacted_orders 
FROM my_dynamodb.default.orders t1 
JOIN my_mysql.products.catalog t2 ON t1.product_id = t2.product_id 
JOIN my_documentdb.default.customers t3 ON t1.customer_id = t3.customer_id 
WHERE 
     t1.order_status = 'PENDING'
     AND t1.order_date between '2022-01-01' AND '2022-01-05' 
GROUP BY 1, 2, 3 
ORDER BY 4 DESC
```

## Eseguire query su visualizzazioni federate
<a name="running-federated-queries-federated-views"></a>

Quando si interrogano fonti federate, è possibile utilizzare le viste per offuscare le fonti di dati sottostanti o nascondere join complessi ad altri analisti che eseguono query sui dati.

### Considerazioni e limitazioni
<a name="running-federated-queries-federated-views-considerations"></a>
+ Le viste federate richiedono la versione 3 del motore Athena. 
+ Le viste federate vengono archiviate nell'origine dati sottostante AWS Glue, non con essa.
+ Le visualizzazioni federate non sono supportate nelle origini dati [registrate come Catalogo dati Glue](register-connection-as-gdc.md).
+ Le viste create con cataloghi federati devono utilizzare una sintassi dei nomi completa, come nell'esempio seguente:

  ```
  "ddbcatalog"."default"."customers"
  ```
+ Gli utenti che eseguono query su fonti federate devono disporre dell'autorizzazione per poterle eseguire.
+ L'autorizzazione `athena:GetDataCatalog` è richiesta per le visualizzazioni federate. Per ulteriori informazioni, consulta [Consenti l’accesso alla query federata Athena](federated-query-iam-access.md).

### Esempi
<a name="running-federated-queries-federated-views-examples"></a>

L'esempio seguente crea una visualizzazione chiamata `customers` sui dati archiviati in un'origine dati federata.

**Example**  

```
CREATE VIEW customers AS
SELECT *
FROM my_federated_source.default.table
```

La seguente query di esempio mostra una query che fa riferimento alla visualizzazione `customers` anziché all'origine dati federata sottostante.

**Example**  

```
SELECT id, SUM(order_amount)
FROM customers
GROUP by 1
ORDER by 2 DESC
LIMIT 50
```

L'esempio seguente crea una visualizzazione chiamata `order_summary` che combina i dati provenienti da un'origine dati federata e da un'origine dati Amazon S3. Dall'origine federata, che è già stata creata in Athena, la visualizzazione utilizza `person` e le tabelle `profile`. Da Amazon S3, la visualizzazione utilizza le tabelle `purchase` e `payment`. Per fare riferimento ad Amazon S3, l'istruzione utilizza la parola chiave `awsdatacatalog`. Tieni presente che l'origine dati federata utilizza la sintassi dei nomi completa. {{federated\_source\_name}} {{federated\_source\_database}}. {{federated\_source\_table}}.

**Example**  

```
CREATE VIEW default.order_summary AS
SELECT *
FROM {{federated_source_name}}.{{federated_source_database}}."person" p
    JOIN {{federated_source_name}}.{{federated_source_database}}."profile" pr ON pr.id = p.id
    JOIN awsdatacatalog.default.purchase i ON p.id = i.id
    JOIN awsdatacatalog.default.payment pay ON pay.id = p.id
```

### Risorse aggiuntive
<a name="running-federated-queries-federated-views-additional-resources"></a>
+ Per un esempio di vista federata disaccoppiata dalla fonte di origine e disponibile per l'analisi su richiesta in un modello multi-utente, consulta [Enstensione di data mesh con Amazon Athena e visualizzazioni federate](https://aws.amazon.com/blogs/big-data/extend-your-data-mesh-with-amazon-athena-and-federated-views/) nel *Blog sui Big Data di AWS *. 
+ Per ulteriori informazioni sull’utilizzo delle visualizzazioni in Athena, consulta [Utilizzo delle viste](views.md).