Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von PL/Rust zum Schreiben von SQL Postgre-Funktionen in der Rust-Sprache
PL/Rust ist eine vertrauenswürdige Rust-Spracherweiterung für Postgre. SQL Sie können es für gespeicherte Prozeduren, Funktionen und anderen prozeduralen Code verwenden, von dem aus aufgerufen werden kann. SQL Die PL/Rust-Spracherweiterung ist in den folgenden Versionen verfügbar:
-
RDSfür Postgre SQL 16.1 und höhere Versionen 16
-
RDSfür Postgre SQL 15.2-R2 und höhere 15-Versionen
-
RDSfür Postgre SQL 14.9 und höhere 14-Versionen
-
RDSfür Postgre SQL 13.12 und höhere 13-Versionen
Weitere Informationen finden Sie unter PL/Rust
Themen
Einrichten von PL/Rust
Um die plrust-Erweiterung auf Ihrer DB-Instance zu installieren, fügen Sie plrust zum Parameter shared_preload_libraries
in der DB-Parametergruppe hinzu, die mit Ihrer DB-Instance verknüpft ist. Wenn die plrust-Erweiterung installiert ist, können Sie Funktionen erstellen.
Damit der Parameter shared_preload_libraries
geändert werden kann, muss Ihre DB-Instance mit einer benutzerdefinierten Parametergruppe verknüpft sein. Informationen zum Erstellen einer benutzerdefinierten DB-Parametergruppe finden Sie unter Parametergruppen für Amazon RDS.
Sie können die Plrust-Erweiterung mit dem oder dem AWS Management Console installieren. AWS CLI
Bei den folgenden Schritten wird davon ausgegangen, dass Ihre DB-Instance einer benutzerdefinierten DB-Parametergruppe zugeordnet ist.
Installieren der plrust-Erweiterung im Parameter shared_preload_libraries
Führen Sie die folgenden Schritte mit einem Konto aus, das Mitglied der rds_superuser
-Gruppe (Rolle) ist.
Melden Sie sich bei der an AWS Management Console und öffnen Sie die RDS Amazon-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich Datenbanken aus.
-
Wählen Sie den Namen Ihrer DB-Instance aus, um ihre Details anzuzeigen.
-
Öffnen Sie die Registerkarte Konfiguration für Ihre DB-Instance und suchen Sie den Link zur DB-Instance-Parametergruppe.
-
Wählen Sie den Link aus, um die benutzerdefinierten Parameter zu öffnen, die Ihrer DB-Instance zugeordnet sind.
-
Geben Sie in das Suchfeld Parameters (Parameter)
shared_pre
ein, um denshared_preload_libraries
-Parameter zu finden. -
Wählen Sie Edit parameters (Parameter bearbeiten) aus, um auf die Eigenschaftswerte zuzugreifen.
-
Fügen Sie der Liste im Feld Werte „plrust“ hinzu. Verwenden Sie ein Komma, um Elemente in der Werteliste zu trennen.
Starten Sie die DB-Instance neu, damit die Änderung am Parameter
shared_preload_libraries
in Kraft tritt. Der erste Neustart kann zusätzliche Zeit in Anspruch nehmen.Wenn die Instance verfügbar ist, überprüfen Sie, ob „plrust“ initialisiert wurde. Stellen Sie mit
psql
eine Verbindung mit der DB-Instance her und führen Sie den folgenden Befehl aus.SHOW shared_preload_libraries;
Ihre Ausgabe sollte wie folgt aussehen:
shared_preload_libraries -------------------------- rdsutils,plrust (1 row)
Installieren der plrust-Erweiterung im Parameter shared_preload_libraries
Führen Sie die folgenden Schritte mit einem Konto aus, das Mitglied der rds_superuser
-Gruppe (Rolle) ist.
Verwenden Sie den modify-db-parameter-group AWS CLI Befehl, um dem
shared_preload_libraries
Parameter plrust hinzuzufügen.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=plrust,ApplyMethod=pending-reboot" \ --regionaws-region
-
Verwenden Sie den reboot-db-instance AWS CLI Befehl, um die DB-Instance neu zu starten und die Plrust-Bibliothek zu initialisieren. Der erste Neustart kann zusätzliche Zeit in Anspruch nehmen.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
Wenn die Instance verfügbar ist, können Sie überprüfen, ob „plrust“ initialisiert wurde. Stellen Sie mit
psql
eine Verbindung mit der DB-Instance her und führen Sie den folgenden Befehl aus.SHOW shared_preload_libraries;
Ihre Ausgabe sollte wie folgt aussehen:
shared_preload_libraries -------------------------- rdsutils,plrust (1 row)
Erstellen von Funktionen mit PL/Rust
PL/Rust kompiliert die Funktion als dynamische Bibliothek, lädt sie und führt sie aus.
Die folgende Rust-Funktion filtert Vielfache aus einem Array.
postgres=> CREATE LANGUAGE plrust; CREATE EXTENSION
CREATE OR REPLACE FUNCTION filter_multiples(a BIGINT[], multiple BIGINT) RETURNS BIGINT[] IMMUTABLE STRICT LANGUAGE PLRUST AS $$ Ok(Some(a.into_iter().filter(|x| x.unwrap() % multiple != 0).collect())) $$; WITH gen_values AS ( SELECT ARRAY(SELECT * FROM generate_series(1,100)) as arr) SELECT filter_multiples(arr, 3) from gen_values;
Verwenden von Kisten mit PL/Rust
In den RDS SQL Postgre-Versionen 16.3-R2 und höher, 15.7-R2 und höher 15 Versionen, 14.12-R2 und höher 14 Versionen und 13.15-R2 und höher 13 Versionen unterstützt PL/Rust zusätzliche Crates:
-
url
-
regex
-
serde
-
serde_json
In den RDS SQL Postgre-Versionen 15.5-R2 und höher, 14.10-R2 und höher (14) und 13.13-R2 und höher (13) unterstützt PL/Rust zwei zusätzliche Crates:
-
croaring-rs
-
num-bigint
Ab den Amazon RDS for SQL Postgre-Versionen 15.4, 14.9 und 13.12 unterstützt PL/Rust die folgenden Crates:
-
aes
-
ctr
-
rand
Für diese Kisten werden nur die Standardfunktionen unterstützt. Neue Versionen RDS für Postgre enthalten möglicherweise aktualisierte SQL Versionen von Crates, und ältere Versionen von Crates werden möglicherweise nicht mehr unterstützt.
Folgen Sie den bewährten Methoden für die Durchführung eines Hauptversions-Upgrades, um zu testen, ob Ihre PL/Rust-Funktionen mit der neuen Hauptversion kompatibel sind. Weitere Informationen finden Sie in den Blog-Beiträgen Best Practices für das Upgrade von Amazon RDS auf Haupt- und Nebenversionen von Postgre SQL
Beispiele für die Verwendung von Abhängigkeiten bei der Erstellung einer PL/Rust-Funktion finden Sie unter Use dependencies
Einschränkungen von PL/Rust
Standardmäßig können Datenbankbenutzer PL/Rust nicht verwenden. Um Zugriff auf PL/Rust zu gewähren, stellen Sie eine Verbindung als Benutzer mit der Berechtigung „rds_superuser“ her und führen Sie den folgenden Befehl aus:
postgres=> GRANT USAGE ON LANGUAGE PLRUST TO
user
;