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.
Tabellen mit Indizes erstellen und Dokumente einfügen
Wichtig
Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB Ledgers zu Amazon Aurora SQL Postgre
Nachdem Sie ein QLDB Amazon-Ledger erstellt haben, besteht Ihr erster Schritt darin, eine Tabelle mit einer grundlegenden CREATE TABLE Aussage zu erstellen. Tabellen bestehen ausQLDB-Dokumente, bei denen es sich um Datensätze im Amazon struct Ion-Format handelt.
Tabellen und Indizes erstellen
Tabellen haben einfache Namen, bei denen Groß- und Kleinschreibung beachtet wird, ohne Namespaces. QLDBunterstützt offenen Inhalt und erzwingt kein Schema, sodass Sie beim Erstellen von Tabellen keine Attribute oder Datentypen definieren müssen.
CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle
Eine CREATE TABLE
Anweisung gibt die vom System zugewiesene ID der neuen Tabelle zurück. Alle vom System zugewiesenen Bezeichner QLDB sind universell eindeutige Bezeichner (UUID), die jeweils IDs in einer Base62-kodierten Zeichenfolge dargestellt werden.
Anmerkung
Optional können Sie Tags für eine Tabellenressource definieren, während Sie die Tabelle erstellen. Um zu erfahren wie dies geht, vgl. Taggen von Tabellen bei der Erstellung.
Sie können auch Indizes für Tabellen erstellen, um die Abfrageleistung zu optimieren.
CREATE INDEX ON VehicleRegistration (VIN)
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
Wichtig
QLDBbenötigt einen Index, um ein Dokument effizient nachschlagen zu können. Ohne Index QLDB muss beim Lesen von Dokumenten ein vollständiger Tabellenscan durchgeführt werden. Dies kann bei großen Tabellen zu Leistungsproblemen führen, einschließlich Parallelitätskonflikten und Transaktions-Timeouts.
Um Tabellenscans zu vermeiden, müssen Sie Anweisungen mit einer WHERE
Prädikatklausel unter Verwendung eines Gleichheitsoperators (=
oderIN
) für ein indiziertes Feld oder eine Dokument-ID ausführen. Weitere Informationen finden Sie unter Optimierung der Abfrageleistung.
Beachten Sie beim Erstellen von Indizes die folgenden Einschränkungen:
-
Ein Index kann nur für ein einzelnes Feld der obersten Ebene erstellt werden. Zusammengesetzte, verschachtelte, eindeutige und funktionsbasierte Indizes werden nicht unterstützt.
-
Sie können einen Index für alle Ion-Datentypen erstellen, einschließlich und.
list
struct
Sie können die indizierte Suche jedoch nur nach Gleichheit des gesamten Ionen-Werts durchführen, unabhängig vom Ionentyp. Wenn Sie beispielsweise einenlist
Typ als Index verwenden, können Sie keine indizierte Suche nach einem Element in der Liste durchführen. -
Die Abfrageleistung wird nur verbessert, wenn Sie ein Gleichheitsprädikat verwenden,
WHERE indexedField = 123
z. B. oder.WHERE indexedField IN (456, 789)
QLDBberücksichtigt Ungleichheiten in Abfrageprädikaten nicht. Aus diesem Grund werden bereichsgefilterte Scans nicht implementiert.
-
Bei Namen indizierter Felder wird zwischen Groß- und Kleinschreibung unterschieden und sie können maximal 128 Zeichen lang sein.
-
Die Indexerstellung in QLDB ist asynchron. Die Zeit, die benötigt wird, um die Erstellung eines Indexes für eine nicht leere Tabelle abzuschließen, hängt von der Tabellengröße ab. Weitere Informationen finden Sie unter Verwalten von Indexen.
Dokumente werden eingefügt
Anschließend können Sie Dokumente in Ihre Tabellen einfügen. QLDBDokumente werden im Amazon Ion-Format gespeichert. Die folgenden PartiQL-INSERT-Anweisungen enthalten eine Teilmenge der Beispieldaten für die Fahrzeugzulassung, die in Erste Schritte mit der QLDB Amazon-Konsole verwendet werden.
INSERT INTO VehicleRegistration << { 'VIN' : '1N4AL11D75C109151', 'LicensePlateNumber' : 'LEWISR261LL', 'State' : 'WA', 'City' : 'Seattle', 'PendingPenaltyTicketAmount' : 90.25, 'ValidFromDate' : `2017-08-21T`, 'ValidToDate' : `2020-05-11T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId' : '294jJ3YUoH1IEEm8GSabOs' }, 'SecondaryOwners' : [ { 'PersonId' : '5Ufgdlnj06gF5CWcOIu64s' } ] } }, { 'VIN' : 'KM8SRDHF6EU074761', 'LicensePlateNumber' : 'CA762X', 'State' : 'WA', 'City' : 'Kent', 'PendingPenaltyTicketAmount' : 130.75, 'ValidFromDate' : `2017-09-14T`, 'ValidToDate' : `2020-06-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': 'IN7MvYtUjkp1GMZu0F6CG9' }, 'SecondaryOwners' : [] } } >>
INSERT INTO Vehicle << { 'VIN' : '1N4AL11D75C109151', 'Type' : 'Sedan', 'Year' : 2011, 'Make' : 'Audi', 'Model' : 'A5', 'Color' : 'Silver' } , { 'VIN' : 'KM8SRDHF6EU074761', 'Type' : 'Sedan', 'Year' : 2015, 'Make' : 'Tesla', 'Model' : 'Model S', 'Color' : 'Blue' } >>
PartiQL-Syntax und -Semantik
-
Feldnamen werden in einfache Anführungszeichen eingeschlossen (
'...'
). -
Zeichenfolgenwerte werden ebenfalls in einfache Anführungszeichen eingeschlossen (
'...'
). -
Zeitstempel werden in umgekehrten Anzeichen (
`...`
) eingeschlossen. Mit umgekehrten Anführungszeichen können Sie beliebige Ion-Literalwerte kennzeichnen. -
Ganzzahlen und Dezimalstellen sind Literalwerte, die nicht bezeichnet werden müssen.
Weitere Informationen zur Syntax und Semantik von PartiQL finden Sie unter. Abfragen von Ion mit PartiQL in Amazon QLDB
Eine INSERT
-Anweisung erstellt die anfängliche Revision eines Dokuments mit einer Versionsnummer von Null. Um jedes Dokument eindeutig zu identifizieren, QLDB weist es eine Dokument-ID als Teil der Metadaten zu. Insert-Anweisungen geben die ID jedes eingefügten Dokuments zurück.
Wichtig
Da QLDB das Schema nicht erzwungen wird, können Sie dasselbe Dokument mehrmals in eine Tabelle einfügen. Mit jeder Anweisung zum Einfügen wird ein separater Dokumenteintrag in das Journal übernommen und jedem Dokument QLDB wird eine eindeutige ID zugewiesen.
Informationen zum Abfragen der Dokumente, die Sie in Ihre Tabelle eingefügt haben, finden Sie unter Ihre Daten werden abgefragt.