Usa interrogazioni parametrizzate - Amazon Athena

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

Usa interrogazioni parametrizzate

È possibile utilizzare le query con parametri Athena per rieseguire la stessa query con valori di parametro diversi in fase di esecuzione e aiutare a prevenire gli attacchi di iniezione. SQL In Athena, le interrogazioni con parametri possono assumere la forma di parametri di esecuzione in qualsiasi DML interrogazione o istruzione preparata. SQL

  • Le query con parametri di esecuzione possono essere eseguite in un unico passaggio e non sono specifiche del gruppo di lavoro. È possibile inserire punti interrogativi in qualsiasi DML query per i valori che si desidera parametrizzare. Quando si esegue la query, si dichiarano i valori dei parametri di esecuzione in sequenza. La dichiarazione dei parametri e l'assegnazione dei valori per i parametri possono essere eseguite nella stessa query, ma in modo disaccoppiato. A differenza delle istruzioni preparate, è possibile selezionare il gruppo di lavoro quando si invia una query con parametri di esecuzione.

  • Le istruzioni preparate richiedono due SQL istruzioni separate: PREPARE e. EXECUTE In primo luogo, è necessario definire i parametri nel campo dell’istruzione PREPARE. Quindi, viene eseguita un’istruzione EXECUTE che fornisce i valori dei parametri definiti. Le istruzioni preparate sono specifiche del gruppo di lavoro; non è possibile eseguirle al di fuori del contesto del gruppo di lavoro a cui appartengono.

Considerazioni e limitazioni

  • Le query parametrizzate sono supportate nella versione 2 del motore Athena e versioni successive. Per ulteriori informazioni sulle versioni del motore Athena, consulta Controllo delle versioni del motore di Athena.

  • Attualmente, le query con parametri sono supportate solo per le istruzioni SELECT, INSERT INTO, CTAS e UNLOAD.

  • Nelle query con parametri, i parametri sono posizionali e sono indicati da ?. Ai parametri vengono assegnati valori in base al loro ordine nella query. I parametri nominati non sono supportati.

  • Attualmente, i parametri ? possono essere inseriti solo nella clausola WHERE. Sintassi come SELECT ? FROM table non è supportata.

  • I parametri del punto interrogativo non possono essere inseriti tra virgolette doppie o singole (ovvero,'?' e "?" non sono una sintassi valida).

  • SQLAffinché i parametri di esecuzione vengano trattati come stringhe, devono essere racchiusi tra virgolette singole anziché tra virgolette doppie.

  • Se necessario, puoi utilizzare la funzione CAST quando immetti un valore per un termine parametrizzato. Ad esempio, se hai una colonna del tipo date che è stata parametrizzata in una query e vuoi eseguire una query per la data 2014-07-05, l'immissione CAST('2014-07-05' AS DATE) del valore del parametro restituirà il risultato.

  • Le istruzioni preparate sono specifiche del gruppo di lavoro e i nomi delle istruzioni preparate devono essere univoci all'interno del gruppo di lavoro.

  • IAMsono richieste le autorizzazioni per le istruzioni preparate. Per ulteriori informazioni, consulta Configurare l'accesso alle dichiarazioni preparate.

  • Le query con parametri di esecuzione nella console Athena sono limitate a un massimo di 25 punti interrogativi.