Semistrukturierte Daten in Amazon Redshift - Amazon Redshift

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.

Semistrukturierte Daten in Amazon Redshift

Durch die Unterstützung halbstrukturierter Daten in Amazon Redshift können Sie halbstrukturierte Daten in Ihren Amazon-Redshift-Data-Warehouses erfassen und speichern. Mithilfe des SUPER Datentyps und der PartiQL-Sprache erweitert Amazon Redshift die Data Warehouse-Fähigkeit, sodass SQL sowohl Datenquellen als auch SQL No-Datenquellen integriert werden können. Auf diese Weise ermöglicht Amazon Redshift effiziente Analysen von relationalen und halbstrukturierten gespeicherten Daten wie. JSON

Amazon Redshift bietet zwei Formen der Unterstützung für semistrukturierte Daten: den SUPER Datentyp und Amazon Redshift Spectrum.

Verwenden Sie den SUPER Datentyp, wenn Sie kleine JSON Datenstapel mit geringer Latenz einfügen oder aktualisieren müssen. Verwenden Sie ihn auch, SUPER wenn Ihre Abfrage hohe Konsistenz, vorhersehbare Abfrageleistung, Unterstützung komplexer Abfragen und Benutzerfreundlichkeit bei sich entwickelnden Schemas und schemalosen Daten erfordert.

Verwenden Sie Amazon Redshift Spectrum dagegen mit einem offenen Dateiformat, wenn Ihre Datenabfrage die Integration mit anderen AWS Diensten und mit Daten erfordert, die hauptsächlich zu Archivierungszwecken in Amazon S3 gespeichert werden.

Anwendungsfälle für den Datentyp SUPER

Die Unterstützung semistrukturierter SUPER Daten mithilfe des Datentyps in Amazon Redshift bietet überragende Leistung, Flexibilität und Benutzerfreundlichkeit. Die folgenden Anwendungsfälle veranschaulichen, wie Sie die Unterstützung für semistrukturierte Daten mit verwenden können. SUPER

Schnelles und flexibles Einfügen von JSON Daten — Amazon Redshift unterstützt schnelle Transaktionen, die Daten analysieren JSON und als SUPER Wert speichern können. Die Einfügetransaktionen können bis zu fünfmal schneller ausgeführt werden als das Ausführen derselben Einfügungen in Tabellen, bei denen die Attribute in herkömmliche Spalten zerkleinert wurden. SUPER Nehmen wir zum Beispiel an, dass die eingehende JSON Nachricht die Form {„a“:.., „b“:.., „c“ „...,...} hat. Sie können die Leistung beim Einfügen um ein Vielfaches beschleunigen, indem Sie eingehende Daten JSON in einer Tabelle TJ mit einer einzigen SUPER Spalte S speichern, anstatt sie in einer herkömmlichen Tabelle TR mit den Spalten“ a', 'b', „c“ usw. zu speichern. Wenn der Hunderte von Attributen enthältJSON, wird der Leistungsvorteil des SUPER Datentyps erheblich.

Außerdem benötigt der SUPER Datentyp kein reguläres Schema. Sie müssen die eingehenden Daten nicht überprüfen und bereinigen, JSON bevor Sie sie speichern. Nehmen wir zum Beispiel an, ein eingehendes Objekt JSON hat das Zeichenkettenattribut „c“ und andere ein ganzzahliges „c“ -Attribut, ohne den SUPER Datentyp. In diesem Fall müssen Sie entweder die Spalten c_string und c_int trennen oder die Daten bereinigen. Im Gegensatz dazu werden beim SUPER Datentyp alle JSON Daten während der Aufnahme gespeichert, ohne dass Informationen verloren gehen. Später können Sie die PartiQL-Erweiterung von verwendenSQL, um die Informationen zu analysieren.

Flexible Abfragen zur Erkennung — Nachdem Sie Ihre halbstrukturierten Daten (z. B.JSON) in einem SUPER Datenwert gespeichert haben, können Sie sie abfragen, ohne ein Schema aufzuerlegen. Sie können die dynamische Typisierung von PartiQL und Lax-Semantik verwenden, um Ihre Abfragen auszuführen und die tief verschachtelten Daten zu ermitteln, die Sie benötigen, ohne dass Sie vor der Abfrage ein Schema vorschreiben müssen.

Flexible Abfragen für Extraktions-, Lade- und Transformationsoperationen (ETL) in konventionelle materialisierte Ansichten — Nachdem Sie Ihre schemalosen und halbstrukturierten Daten gespeichert haben, können Sie materialisierte PartiQL-Ansichten verwendenSUPER, um die Daten zu untersuchen und sie in materialisierte Ansichten zu zerkleinern.

Die materialisierten Ansichten mit den aufgeteilten Daten sind ein gutes Beispiel für Leistungs- und Nutzbarkeitsvorteile für klassische Analysefälle. Wenn Sie Analysen für die aufgeteilten Daten durchführen, bietet die spaltenförmige Organisation der materialisierten Ansichten von Amazon Redshift eine bessere Leistung. Darüber hinaus können Benutzer und Business Intelligence (BI)-Tools, die ein konventionelles Schema für aufgenommene Daten erfordern, Ansichten (entweder materialisiert oder virtuell) als konventionelle Schemadarstellung der Daten verwenden.

Nachdem Ihre materialisierten PartiQL-Ansichten die in JSON oder SUPER in konventionellen materialisierten Spaltenansichten gefundenen Daten extrahiert haben, können Sie die materialisierten Ansichten abfragen. Weitere Informationen zur Funktionsweise des SUPER Datentyps mit materialisierten Ansichten finden Sie unter. SUPERDatentyp und materialisierte Ansichten

Sie können dynamische Datenmaskierungsrichtlinien auf scalar Werte in den Pfaden von SUPER Typspalten anwenden. Weitere Informationen zur dynamischen Datenmaskierung finden Sie unter Dynamische Datenmaskierung. Hinweise zur Verwendung der dynamischen Datenmaskierung mit dem SUPER Datentyp finden Sie unter. Verwendung dynamischer Datenmaskierung mit SUPER Datentyppfaden (Vorschau)

Hinweise zum SUPER Datentyp finden Sie unterSUPERTyp.

Beispiele für die Verwendung des SUPER Datentyps finden Sie in den Unterabschnitten zu diesem Thema, beginnend mitSUPERBeispieldatensatz.

Konzepte für die Verwendung SUPER von Datentypen

Im Folgenden finden Sie einige Konzepte für Amazon Redshift SUPER Redshift-Datentypen.

Verstehen Sie, was der SUPER Datentyp in Amazon Redshift ist — Der SUPERDatentyp ist ein Amazon Redshift Redshift-Datentyp, der die Speicherung von schemalosen Arrays und Strukturen ermöglicht, die Amazon Redshift Redshift-Skalare und möglicherweise verschachtelte Arrays und Strukturen enthalten. Der SUPER Datentyp kann verschiedene Formate semistrukturierter Daten nativ speichern, z. B. Daten, die aus dokumentenorientierten Quellen stammen. JSON Sie können eine neue SUPER Spalte hinzufügen, um semistrukturierte Daten zu speichern, und Abfragen schreiben, die auf die SUPER Spalte zugreifen, zusammen mit den üblichen skalaren Spalten. Weitere Hinweise zum SUPER Datentyp finden Sie unter. SUPERTyp

Schemaless aufnehmen JSON in SUPER — Mit dem flexiblen semistrukturierten SUPER Datentyp kann Amazon Redshift schemaless empfangen und in einen Wert aufnehmen. JSON SUPER Amazon Redshift kann beispielsweise den JSON Wert [10.5, „first"] in einen SUPER Wert [10.5, 'first'] aufnehmen, das ist ein Array, das die Amazon Redshift Redshift-Dezimalzahl 10.5 und das Varchar 'first' enthält. Amazon Redshift kann das mithilfe des COPY Befehls oder der JSON Parse-Funktion wie json_parse ('[10.5, „first"]') JSON in einen SUPER Wert aufnehmen. Beides und Ingest verwenden standardmäßig eine COPY strikte json_parse Parsing-SemantikJSON. Sie können auch SUPER Werte, einschließlich Arrays und Strukturen, mithilfe der Datenbankdaten selbst erstellen.

Für die SUPER Spalte sind keine Schemaänderungen erforderlich, während die unregelmäßigen Strukturen von schemaless aufgenommen werden. JSON Wenn Sie beispielsweise einen Click-Stream analysieren, speichern Sie zunächst in der SUPER Spalte „Klick“ -Strukturen mit den Attributen „IP“ und „Zeit“. Sie können ein Attribut „Kunden-ID“ hinzufügen, ohne Ihr Schema zu ändern, um solche Änderungen aufzunehmen.

Das für den SUPER Datentyp verwendete native Format ist ein Binärformat, das weniger Platz benötigt als der JSON Wert in seiner Textform. Dies ermöglicht eine schnellere Aufnahme und Laufzeitverarbeitung von SUPER Werten bei der Abfrage.

SUPERDaten mit PartiQL abfragen — PartiQL ist eine abwärtskompatible Erweiterung von SQL -92, die derzeit von vielen Diensten verwendet wird. AWS Durch die Verwendung von PartiQL können vertraute SQL Konstrukte den Zugriff sowohl auf die klassischen SQL Tabellendaten als auch auf die semistrukturierten Daten von nahtlos kombinieren. SUPER Sie können Objekt- und Array-Navigation und unnest-Arrays durchführen. PartiQL erweitert die SQL Standardsprache, um verschachtelte und mehrwertige Daten deklarativ auszudrücken und zu verarbeiten.

PartiQL ist eine Erweiterung dessen, SQL wo die verschachtelten und schemalosen Daten von SUPER Spalten erstklassige Bürger sind. PartiQL erfordert nicht, dass alle Abfrageausdrücke bei der Abfragekompilierung typgeprüft werden. Mit diesem Ansatz können Abfrageausdrücke, die den SUPER Datentyp enthalten, während der Abfrageausführung dynamisch typisiert werden, wenn auf die tatsächlichen Datentypen in den Spalten zugegriffen wird. SUPER Außerdem arbeitet PartiQL in einem Lax-Modus, in dem Typ-Inkonsistenzen keine Fehler verursachen, sondern Nullwerte zurückgeben. Die Kombination aus schemaloser und laxer Abfrageverarbeitung macht PartiQL ideal für Extract-, Load-, Transfer (ELT) -Anwendungen, bei denen Ihre SQL Abfrage die in den Spalten aufgenommenen JSON Daten auswertet. SUPER

Integration mit Redshift Spectrum — Amazon Redshift unterstützt mehrere Aspekte von PartiQL, wenn Redshift Spectrum-Abfragen überJSON, Parquet und andere Formate mit verschachtelten Daten ausgeführt werden. Redshift Spectrum unterstützt nur verschachtelte Daten mit Schemata. Mit Redshift Spectrum können Sie beispielsweise deklarieren, dass Ihre JSON Daten ein Attribut nested_schemaful_example in einem Schema ARRAY< STRUCT <a:, b: (5,2) >> haben. INTEGER DECIMAL Das Schema dieses Attributs bestimmt, dass die Daten immer ein Array enthalten, das eine Struktur mit Integer a und Dezimalwert b enthält. Wenn sich die Daten so ändern, dass sie weitere Attribute enthalten, ändert sich auch der Typ. Im Gegensatz dazu benötigt der Datentyp kein Schema. SUPER Sie können Arrays mit Strukturelementen speichern, die unterschiedliche Attribute oder Typen haben. Außerdem können einige Werte außerhalb von Arrays gespeichert werden.

Informationen zu Funktionen, die den SUPER Datentyp unterstützen, finden Sie im Folgenden:

Überlegungen zu SUPER Daten

Beachten Sie bei der Arbeit mit SUPER Daten Folgendes:

  • Verwenden Sie die JDBC Treiberversion 1.2.50, die ODBC Treiberversion 1.4.17 oder höher und die Amazon Redshift Python-Treiberversion 2.0.872 oder höher.

    Informationen zu Treibern finden Sie unter Verbindung konfigurierenJDBC. JDBC

    Informationen zu ODBC Treibern finden Sie unter ODBC Verbindung konfigurieren.

  • Die in den folgenden Themen verwendeten Schemabeispiele finden Sie unter SUPERBeispieldatensatz.

  • Alle in den folgenden Themen verwendeten SQL Codebeispiele sind mit demselben S3-Präfix zum Herunterladen enthalten. Dazu gehören die Datendefinitionssprache (DDL) und COPY Anweisungen sowie bestimmte mit TPC -H modifizierte Abfragen, die mit SUPER funktionieren.

    Gehen Sie wie folgt vor, um die SQL Dateien anzusehen oder herunterzuladen:

    • Laden Sie die SUPERSQLTutorial-Datei und die TPC-H-Datei herunter.

    • Führen Sie mit Amazon S3 CLI den folgenden Befehl aus. Sie können Ihren eigenen Zielpfad verwenden.

      aws s3 cp s3://redshift-downloads/semistructured/tutorialscripts/semistructured-tutorial.sql /target/path aws s3 cp s3://redshift-downloads/semistructured/tutorialscripts/super_tpch_queries.sql /target/path

Weitere Informationen zu SUPER Konfigurationen finden Sie unterSUPERKonfigurationen.