Planen einer Abfrage in der Amazon-Redshift-Konsole - Amazon Redshift

Planen einer Abfrage in der Amazon-Redshift-Konsole

Um einen Zeitplan für die Ausführung einer SQL-Anweisung zu erstellen, können Sie den Abfrage-Editor in der Amazon-Redshift-Konsole verwenden. Sie können einen Zeitplan erstellen, um Ihre SQL-Anweisung in Zeitintervallen auszuführen, die Ihren Geschäftsanforderungen entsprechen. Wenn die geplante Abfrage ausgeführt werden muss, initiiert Amazon EventBridge die Abfrage.

So erstellen Sie einen Zeitplan für die Ausführung einer SQL-Anweisung in der Konsole

  1. Öffnen Sie die Konsole und den Abfrage-Editor wie unter Arbeiten mit dem Abfrage-Editor beschrieben.

  2. Wählen Sie Schedule (Zeitplan), um einen Zeitplan für die Ausführung einer SQL-Anweisung zu erstellen.

    Wenn Sie den Zeitplan definieren, geben Sie die folgenden Informationen an:

Sie können geplante Abfragen auch über die Amazon-Redshift-Konsole verwalten und aktualisieren. Abhängig von Ihrer Konsolenversion werden geplante Abfragen möglicherweise an folgenden Stellen aufgelistet:

  • Auf der Registerkarte Schedules (Zeitpläne) auf der Detailseite Ihres Clusters.

  • In der Liste der geplanten Abfragen, die Sie über den Navigationsbereich erreichen. Um die Liste anzuzeigen, wählen Sie im Navigationsbereich QUERIES (ABFRAGEN) und Schedule query list (Zeitplan-Abfrageliste) aus.

  • Auf der Registerkarte Scheduled queries (Geplante Abfragen) im Abfrage-Editor.

Wenn Sie an einer dieser Stellen Schedule name (Zeitplanname) auswählen, können Sie die Definition Ihrer geplanten Abfrage anzeigen und bearbeiten.

Einrichten von Berechtigungen zum Planen einer Abfrage in der Amazon-Redshift-Konsole

Um Abfragen zu planen, müssen der AWS Identity and Access Management (IAM)-Benutzer, der den Zeitplan definiert, und die IAM-Rolle, die dem Zeitplan zugeordnet ist, wie folgt konfiguriert werden.

Führen Sie für den IAM-Benutzer, der in der Amazon-Redshift-Konsole angemeldet ist, die folgenden Schritte aus:

  • Weisen Sie die von AWS verwaltete Richtlinie AmazonEventBridgeFullAccess zu.

  • Weisen Sie eine Richtlinie mit der sts:AssumeRole-Berechtigung der IAM-Rolle zu, die Sie angeben, wenn Sie die geplante SQL-Anweisung definieren.

    Das folgende Beispiel zeigt eine Richtlinie, die eine angegebene IAM-Rolle übernimmt.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeIAMRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account-id:role/sql-statement-iam-role" } ] }

Führen Sie für die IAM-Rolle, die Sie angeben, damit der Scheduler eine Abfrage ausführen kann, die folgenden Schritte aus:

  • Stellen Sie sicher, dass diese IAM-Rolle den EventBridge-Service-Prinzipal (events.amazonaws.com) angibt. Unten sehen Sie ein Beispiel für eine Vertrauensstellung.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Weitere Informationen zum Erstellen einer IAM-Rolle für EventBridge-Ereignisse finden Sie unter Erforderliche Berechtigungen zur Verwendung des Amazon-EventBridge-Schedulers.

  • Weisen Sie der IAM-Rolle die von AWS verwaltete Richtlinie AmazonRedshiftDataFullAccess zu.

  • Damit IAM-Benutzer den Zeitplanverlauf anzeigen können, bearbeiten Sie die IAM-Rolle, um die sts:AssumeRole-Berechtigung hinzuzufügen.

Unten sehen Sie ein Beispiel für die Definition einer IAM-Rolle.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" }, { "Sid": "AssumeRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/user-name" }, "Action": "sts:AssumeRole" } ] }

Mit dem folgenden Beispielausschnitt können bestimmte IAM-Benutzer den Zeitplanverlauf anzeigen.

{ "Sid": "AssumeRole", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/testRedshiftUser", "arn:aws:iam::account-id:user/myusername" ] }, "Action": "sts:AssumeRole" }

Authentifizieren einer geplanten Abfrage

Wenn Sie eine Abfrage planen, verwenden Sie eine der folgenden Authentifizierungsmethoden, wenn die Abfrage-SQL-Anweisung ausgeführt wird. Jede Methode erfordert eine andere Kombination von Eingaben von der Amazon-Redshift-Konsole.

AWS Secrets Manager

Geben Sie bei dieser Methode einen Secret-Wert für secret-arn an, der in AWS Secrets Manager gespeichert ist. Dieses Secret enthält Anmeldeinformationen zum Verbinden mit Ihrer Datenbank. Das Secret muss mit dem Schlüssel RedshiftDataFullAccess markiert sein.

Weitere Informationen zu den Mindestberechtigungen finden Sie unter Erstellen und Verwalten von Secrets mit AWS Secrets Manager im AWS Secrets Manager-Benutzerhandbuch.

Temporäre Anmeldeinformationen

Geben Sie mit dieser Methode Ihre database- und db-user-Werte an.

Die AmazonRedshiftDataFullAccess-Richtlinie gewährt dem Datenbankbenutzer namens redshift_data_api_user die Berechtigung für redshift:GetClusterCredentials. Wenn Sie zum Ausführen der SQL-Anweisung einen anderen Datenbankbenutzer verwenden möchten, fügen Sie der IAM-Rolle eine Richtlinie hinzu, um redshift:GetClusterCredentials zu erlauben. Mit der folgenden Beispielrichtlinie werden die Datenbankbenutzer awsuser und myuser zugelassen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllDbUsers", "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:*:*:dbuser:*/awsuser", "arn:aws:redshift:*:*:dbuser:*/myuser" ] } ] }