Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.
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à.
Impostazione delle code di interrogazione
Amazon Redshift Serverless supporta la gestione delle risorse di query basata sulle code. Puoi creare code di query dedicate con regole di monitoraggio personalizzate per diversi carichi di lavoro. Questa funzionalità fornisce un controllo granulare sull'utilizzo delle risorse.
Le regole di monitoraggio delle query (QMR) si applicano solo a livello di gruppo di lavoro Redshift Serverless e influiscono su tutte le query eseguite in questo gruppo di lavoro in modo uniforme. L'approccio basato sulla coda consente di creare code con regole di monitoraggio distinte. È possibile assegnare queste code a ruoli utente e gruppi di query specifici. Ogni coda funziona in modo indipendente, con regole che riguardano solo le interrogazioni all'interno di quella coda.
Le code consentono di impostare predicati basati su metriche e risposte automatiche. Ad esempio, puoi configurare regole per interrompere automaticamente le query che superano i limiti di tempo o consumano troppe risorse.
Considerazioni
Quando utilizzi le code serverless, considera quanto segue:
-
Le seguenti chiavi di configurazione Workload Management (WLM) utilizzate nei cluster con provisioning di Amazon Redshift non sono supportate nelle code Redshift Serverlessmax_execution_time:short_query_queue,,,,,,,,,,,. auto_wlm concurrency_scaling priority queue_type query_concurrency memory_percent_to_use user_group user_group_wild_card
Inoltre, le azioni hop, change_query_priority non sono supportate in Serverless.
-
L'hop Action (spostamento di query tra le code) non è supportata in Amazon Redshift Serverless.
-
Le priorità delle code sono supportate solo per i cluster con provisioning di Amazon Redshift.
-
Amazon Redshift Serverless gestisce automaticamente la scalabilità e l'allocazione delle risorse per prestazioni ottimali, quindi non è necessario configurare manualmente le priorità delle code.
Configurazione delle code di interrogazione
È possibile creare code nella scheda Limiti per un gruppo di lavoro serverless utilizzando Console di gestione AWS, AWS CLI o l'API Redshift Serverless.
- Console
-
Segui questi passaggi per creare una coda per il tuo gruppo di lavoro serverless.
-
Accedi al tuo gruppo di lavoro Redshift Serverless.
-
Seleziona la scheda Limiti.
-
In Code di interrogazione, scegli Abilita code.
L'abilitazione delle code di interrogazione è una modifica permanente. Una volta abilitato, non è possibile tornare al monitoraggio senza coda.
-
Configura le code utilizzando i seguenti parametri:
Parametri a livello di coda
name- Identificatore di coda (obbligatorio, univoco, non vuoto)
user_role- Serie di ruoli utente (opzionale)
query_group- Matrice di gruppi di query (opzionale)
query_group_wild_card- 0 o 1 per abilitare la corrispondenza con i caratteri jolly (opzionale)
user_group_wild_card- 0 o 1 per abilitare l'abbinamento dei caratteri jolly (opzionale)
rules- Serie di regole di monitoraggio (opzionale)
Parametri a livello di regola
rule_name- Identificatore univoco, massimo 32 caratteri (obbligatorio)
predicate- Serie di condizioni, 1-3 predicati (obbligatorio)
action- «abort» o «log» (obbligatorio)
Parametri a livello di predicato
metric_name- Metrica da monitorare (obbligatorio)
operator- «=», «<», or «>» (obbligatorio)
value- Soglia numerica (obbligatoria)
Limiti
Massimo 8 code
Massimo 25 regole per tutte le code
Massimo 3 predicati per regola
I nomi delle regole devono essere univoci a livello globale
Configurazione di esempio
Esempio di tre code: una per le query di dashboard con un timeout breve, una per le query ETL con un timeout lungo e una coda di amministrazione:
[
{
"name": "dashboard",
"user_role": ["analyst", "viewer"],
"query_group": ["reporting"],
"query_group_wild_card": 1,
"rules": [
{
"rule_name": "short_timeout",
"predicate": [
{
"metric_name": "query_execution_time",
"operator": ">",
"value": 60
}
],
"action": "abort"
}
]
},
{
"name": "ETL",
"user_role": ["data_scientist"],
"query_group": ["analytics", "ml"],
"rules": [
{
"rule_name": "long_timeout",
"predicate": [
{
"metric_name": "query_execution_time",
"operator": ">",
"value": 3600
}
],
"action": "log"
},
{
"rule_name": "memory_limit",
"predicate": [
{
"metric_name": "query_temp_blocks_to_disk",
"operator": ">",
"value": 100000
}
],
"action": "abort"
}
]
},
{
"name": "admin_queue",
"user_role": ["admin"],
"query_group": ["admin"]
}
]
In questo esempio:
-
Le query del dashboard vengono interrotte se vengono eseguite per più di 60 secondi
-
Le query ETL vengono registrate se vengono eseguite per più di un'ora
-
La coda di amministrazione non ha limiti di risorse
- CLI
-
È possibile gestire le code utilizzando CreateWorkgroup o UpdateWorkgroup APIs con il parametro wlm_json_configuration config per specificare le code in formato JSON.
aws redshift-serverless create-workgroup \
--workgroup-name test-workgroup \
--namespace-name test-namespace \
--config-parameters '[{"parameterKey": "wlm_json_configuration", "parameterValue": "[{\"name\":\"dashboard\",\"user_role\":[\"analyst\",\"viewer\"],\"query_group\":[\"reporting\"],\"query_group_wild_card\":1,\"rules\":[{\"rule_name\":\"short_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"abort\"}]},{\"name\":\"ETL\",\"user_role\":[\"data_scientist\"],\"query_group\":[\"analytics\",\"ml\"],\"rules\":[{\"rule_name\":\"long_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":3600}],\"action\":\"log\"},{\"rule_name\":\"memory_limit\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"abort\"}]},{\"name\":\"admin_queue\",\"user_role\":[\"admin\"],\"query_group\":[\"admin\"]}]"}]'
Best practice
Tieni a mente le seguenti best practice quando utilizzi le code serverless.
-
Utilizza code separate per carichi di lavoro con requisiti limite distinti (ad esempio, ETL, reportistica o analisi ad hoc).
-
Inizia con soglie semplici e aggiusta in base al comportamento delle query e ai modelli di utilizzo. È possibile monitorare i modelli di utilizzo delle query utilizzando le tabelle e le viste documentate in Tabelle e viste di sistema per le regole di monitoraggio delle query.