View a markdown version of this page

Verwenden PL/Rust um PostgreSQL-Funktionen in der Rust-Sprache zu schreiben - Amazon Relational Database Service

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 PL/Rust um PostgreSQL-Funktionen in der Rust-Sprache zu schreiben

PL/Rust ist eine vertrauenswürdige Rust-Spracherweiterung für PostgreSQL. Sie können sie für gespeicherte Prozeduren, Funktionen und anderen prozeduralen Code verwenden, der von SQL aus aufrufbar ist. Die PL/Rust Die Spracherweiterung ist in den folgenden Versionen verfügbar:

  • RDS für PostgreSQL 17.1 und höhere 17-Versionen

  • RDS für PostgreSQL 16.1 und höhere 16-Versionen

  • RDS für PostgreSQL 15.2-R2 und höhere 15-Versionen

  • RDS für PostgreSQL 14.9 und höhere 14-Versionen

  • RDS für PostgreSQL 13.12 und höhere 13-Versionen

Weitere Informationen finden Sie unter PL/Rust auf GitHub.

Wichtig

Ab PostgreSQL 18 unterstützt Amazon RDS for PostgreSQL nicht mehr plrust Erweiterung. Wir empfehlen Ihnen, die Verwendung einzustellen PL/Rust in Ihren Anwendungen, damit Sie auf zukünftige Engine-Versionen aktualisieren können.

Einrichten 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 Pplus-Erweiterung mit dem installieren AWS-Managementkonsole oder der AWS CLI.

Bei den folgenden Schritten wird davon ausgegangen, dass Ihre DB-Instance einer benutzerdefinierten DB-Parametergruppe zugeordnet ist.

Installieren Sie die Plrust-Erweiterung in der shared_preload_libraries Einstellung

Führen Sie die folgenden Schritte mit einem Konto aus, das Mitglied der rds_superuser-Gruppe (Rolle) ist.

  1. Melden Sie sich bei AWS-Managementkonsole und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Datenbanken aus.

  3. Wählen Sie den Namen Ihrer DB-Instance aus, um ihre Details anzuzeigen.

  4. Öffnen Sie die Registerkarte Konfiguration für Ihre DB-Instance und suchen Sie den Link zur DB-Instance-Parametergruppe.

  5. Wählen Sie den Link aus, um die benutzerdefinierten Parameter zu öffnen, die Ihrer DB-Instance zugeordnet sind.

  6. Geben Sie in das Suchfeld Parameters (Parameter) shared_pre ein, um den shared_preload_libraries-Parameter zu finden.

  7. Wählen Sie Edit parameters (Parameter bearbeiten) aus, um auf die Eigenschaftswerte zuzugreifen.

  8. Fügen Sie der Liste im Feld Werte „plrust“ hinzu. Verwenden Sie ein Komma, um Elemente in der Werteliste zu trennen.

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

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

  1. Benutze das modify-db-parameter-group AWS CLI Befehl zum Hinzufügen von plrust zum shared_preload_libraries Parameter.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=plrust,ApplyMethod=pending-reboot" \ --region aws-region
  2. Benutze den reboot-db-instance AWS CLI Befehl zum Neustarten der DB-Instance und initialisieren Sie die Plrust-Bibliothek. Der erste Neustart kann zusätzliche Zeit in Anspruch nehmen.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. 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)

Funktionen erstellen 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 Sie Kisten mit PL/Rust

In RDS für PostgreSQL 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 PL/Rust unterstützt zusätzliche Crates:

  • url

  • regex

  • serde

  • serde_json

In RDS für PostgreSQL-Versionen 15.5-R2 und höher, 14.10-R2 und höher 14 Versionen und 13.13-R2 und höher 13 Versionen PL/Rust unterstützt zwei zusätzliche Crates:

  • croaring-rs

  • num-bigint

Beginnend mit den Versionen 15.4, 14.9 und 13.12 von Amazon RDS für PostgreSQL PL/Rust unterstützt die folgenden Crates:

  • aes

  • ctr

  • rand

Für diese Kisten werden nur die Standardfunktionen unterstützt. Neue Versionen von RDS für PostgreSQL enthalten möglicherweise aktualisierte Versionen von Kisten und ältere Versionen von Kisten 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 Die Funktionen sind mit der neuen Hauptversion kompatibel. Weitere Informationen finden Sie im Blog Bewährte Methoden für das Upgrade von Amazon RDS auf Haupt- und Nebenversionen von PostgreSQL und Upgrade einer PostgreSQL-DB-Engine für Amazon RDS im Amazon-RDS-Benutzerhandbuch.

Beispiele für die Verwendung von Abhängigkeiten beim Erstellen einer PL/Rust Funktionen sind verfügbar unter Verwenden Sie Abhängigkeiten.

PL/Rust Einschränkungen

Standardmäßig können Datenbankbenutzer nicht verwenden PL/Rust. Um den Zugang zu ermöglichen PL/Rust, stellen Sie eine Verbindung als Benutzer mit rds_superuser-Rechten her und führen Sie den folgenden Befehl aus:

postgres=> GRANT USAGE ON LANGUAGE PLRUST TO user;