

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

# Utilizzo della consapevolezza del contesto con Amazon Q Data Integration in AWS Glue
<a name="q-context-awareness"></a>

 Ora puoi creare processi di elaborazione dati in modo più efficiente con la generazione di PySpark DataFrame codice e con riconoscimento del contesto basati su query in Amazon Q Data Integration. Ad esempio, puoi utilizzare questo prompt per generare PySpark codice: «crea un lavoro per caricare i dati di vendita dalla tabella Redshift 'analytics.salesorder' utilizzando la connessione 'erp\_conn', filtra order\_amount al di sotto di 50 dollari e salva su Amazon S3 in formato parquet». 

 Amazon Q genererà lo script in base alla configurazione del flusso di lavoro di integrazione dei dati di prompt e setup con i dettagli forniti dalla domanda, come configurazioni di connessione, dettagli dello schema, database/table nomi e specifiche delle colonne per le trasformazioni. Le informazioni sensibili, come le password delle opzioni di connessione, continuano a essere oscurate. 

 Se le informazioni richieste non vengono fornite nel prompt, Amazon Q inserirà dei segnaposto, di cui dovrà essere aggiornato il codice generato con i valori appropriati prima di eseguire il codice. 

 Di seguito sono riportati alcuni esempi su come utilizzare la consapevolezza del contesto. 

## Interazioni di esempio
<a name="q-context-awareness-examples"></a>

### Leggere un file Amazon S3 e scrivere in un bucket Amazon S3
<a name="q-context-awareness-examples-generated-script-1"></a>

 Prompt: `Create an AWS Glue spark job that reads a file s3://amzn-s3-demo-bucket-input-bucket-name/input-filename.csv and saves it into the parquet file under directory s3://amzn-s3-demo-bucket-output-bucket-name/output-s3-prefix/` 

```
import sys
from awsglue.transforms import *
from pyspark.context import SparkContext
from pyspark.sql import SparkSession

sc = SparkContext.getOrCreate()
spark = SparkSession.builder.getOrCreate()

# Script generated for node S3DataSource
S3DataSource_dsource1 = spark.read.format("csv").load(
    "s3://amzn-s3-demo-bucket-input-bucket-name/input-filename.csv"
)

# Script generated for node S3DataSink
S3DataSource_dsource1.write.format("parquet").mode("append").save(
    "s3://amzn-s3-demo-bucket-output-bucket-name/output-s3-prefix/"
)
```

![Un esempio di richiesta dell'integrazione dei dati di Amazon Q in AWS Glue per uno script ETL generato.](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/context-awareness-lakehouse-example.gif)


### Ottenere dati da Lakehouse e scriverli nel database
<a name="q-context-awareness-examples-generated-script-2"></a>

 Prompt: `write an ETL script to read from a Lakehouse table my-table in database my-database and write it to a RDS MySQL table my-target-table` 

 Per i campi in cui non sono state fornite informazioni (ad esempio, il connectionName obbligatorio è per il data sink MySQL e l'impostazione predefinita con un segnaposto <connection-name> nel codice generato), viene mantenuto un segnaposto per inserire le informazioni richieste prima di eseguire lo script. 

 Script generato: 

```
import sys
from awsglue.transforms import *
from pyspark.context import SparkContext
from pyspark.sql import SparkSession
from connectivity.adapter import CatalogConnectionHelper

sc = SparkContext.getOrCreate()
spark = SparkSession.builder.getOrCreate()

# Script generated for node S3DataSource
S3DataSource_dsource1 = spark.read.format("parquet").load(
    "s3://amzn-lakehouse-demo-bucket/my-database/my-table"
)

# Script generated for node ConnectionV2DataSink
ConnectionV2DataSink_dsink1_additional_options = {"dbtable": "my-target-table"}
CatalogConnectionHelper(spark).write(
    S3DataSource_dsource1,
    "mysql",
    "<connection-name>",
    ConnectionV2DataSink_dsink1_additional_options,
)
```

![Un esempio di richiesta dell'integrazione dei dati di Amazon Q in AWS Glue per uno script ETL generato.](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/context-awareness-example-interactions.gif)


### Esempio: flusso di lavoro ETL completo
<a name="q-context-awareness-complex-example"></a>

 L'esempio seguente dimostra come è possibile chiedere a AWS Glue di creare uno script AWS Glue per completare un flusso di lavoro ETL completo con il seguente prompt:. `Create a AWS Glue ETL Script read from two AWS Glue Data Catalog tables venue and event in my database glue_db_4fthqih3vvk1if, join the results on the field venueid, filter on venue state with condition as venuestate=='DC' after joining the results and write output to an Amazon S3 S3 location s3://amz-s3-demo-bucket/output/ in CSV format` 

 Il flusso di lavoro contiene la lettura da diverse fonti di dati (due tabelle AWS Glue Data Catalog) e un paio di trasformazioni dopo la lettura unendo il risultato di due letture, filtrando in base a determinate condizioni e scrivendo l'output trasformato in una destinazione Amazon S3 in formato CSV. 

 Il processo generato compilerà le informazioni dettagliate nell'origine dati, nella trasformazione e nell'operazione di sink con le informazioni corrispondenti estratte dalla domanda dell'utente, come di seguito. 

```
import sys
from awsglue.transforms import *
from pyspark.context import SparkContext
from pyspark.sql import SparkSession

sc = SparkContext.getOrCreate()
spark = SparkSession.builder.getOrCreate()

# Script generated for node CatalogDataSource
CatalogDataSource_dsource1 = spark.sql("select * from `glue_db_4fthqih3vvk1if`.`venue`")

# Script generated for node CatalogDataSource
CatalogDataSource_dsource2 = spark.sql("select * from `glue_db_4fthqih3vvk1if`.`event`")

# Script generated for node JoinTransform
JoinTransform_transform1 = CatalogDataSource_dsource1.join(
    CatalogDataSource_dsource2,
    (CatalogDataSource_dsource1["venueid"] == CatalogDataSource_dsource2["venueid"]),
    "inner",
)

# Script generated for node FilterTransform
FilterTransform_transform2 = JoinTransform_transform1.filter("venuestate=='DC'")

# Script generated for node S3DataSink
FilterTransform_transform2.write.format("csv").mode("append").save(
    "s3://amz-s3-demo-bucket/output//output/"
)
```

![Un esempio di richiesta dell'integrazione dei dati di Amazon Q in AWS Glue per uno script ETL generato.](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/context-awareness-complex-example.gif)


## Limitazioni
<a name="q-context-awareness-limitations"></a>
+  Restituzione del contesto: 
  +  La funzionalità di consapevolezza del contesto restituisce solo il contesto della precedente query dell'utente all'interno della stessa conversazione. Non conserva il contesto oltre la query immediatamente precedente. 
+  Supporto per le configurazioni dei nodi: 
  +  Attualmente, la consapevolezza del contesto supporta solo un sottoinsieme di configurazioni richieste per vari nodi. 
  +  Il supporto per i campi opzionali è previsto nelle prossime versioni. 
+  Disponibilità: 
  +  La consapevolezza del contesto e DataFrame il supporto sono disponibili nei notebook Q Chat e SageMaker Unified Studio. Tuttavia, queste funzionalità non sono ancora disponibili nei notebook AWS Glue Studio. 