HyperLogLog-Skizzen - Amazon Redshift

Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blog-Posting.

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.

HyperLogLog-Skizzen

In diesem Thema wird die Verwendung von HyperLogLog in Amazon Redshift beschrieben. HyperLogLog ist ein Algorithmus für das Count-Distinct Problem, der die Anzahl der unterschiedlichen Elemente in einem Datensatz approximativ bestimmt. HyperLogLog-Skizzen sind Arrays von Eindeutigkeitsdaten zu einem Datensatz.

HyperLogLog ist ein Algorithmus, der zur Schätzung der Kardinalität einer Multimenge verwendet wird. Kardinalität bezieht sich auf die Anzahl der einzelnen Werte in einer Multimenge. Zum Beispiel: In der Menge {4,3,6,2,2,6,4,3,6,2,2,3} ist die Kardinalität 4, da die einzelnen Werte 4, 3, 6 und 2 sind.

Die Genauigkeit des HyperLogLog-Algorithmus (auch bekannt als m-Wert) kann die Genauigkeit der geschätzten Kardinalität beeinflussen. Während der Kardinalitätsschätzung verwendet Amazon Redshift einen Standardgenauigkeitswert von 15. Bei kleineren Datensätzen ist ein Wert von bis zu 26 möglich. Die durchschnittliche relative Fehlerquote liegt also zwischen 0,01 und 0,6 %.

Bei der Berechnung der Kardinalität einer Multimenge generiert der HyperLogLog-Algorithmus ein Konstrukt, das als HLL-Skizze bezeichnet wird. HLL-Skizzen kapseln Informationen zu den unterschiedlichen Werte in einem Multiset. Der Amazon-Redshift-Datentyp HLLSKETCH repräsentiert diese Skizzenwerte. Der Datentyp kann verwendet werden, um Skizzen in einer Amazon-Redshift-Tabelle zu speichern. Darüber hinaus unterstützt Amazon Redshift Vorgänge, die als Aggregation- und Skalarfunktionen auf HLLSKETCH-Werte angewendet werden können. Mit diesen Funktionen können Sie die Kardinalität einer HLLSKETCH extrahieren und mehrere HLLSKETCH-Werte kombinieren.

Der Datentyp HLLSKETCH bietet erhebliche Abfrageleistungsvorteile beim Extrahieren der Kardinalität aus großen Datensätzen. Sie können eine Voraggregation dieser Datensätze vornehmen, indem Sie HLLSKETCH-Werte verwenden und diese in Tabellen speichern. Amazon Redshift kann die Kardinalität direkt aus den gespeicherten HLLSKETCH-Werten extrahieren, ohne auf die zugrundeliegenden Datensätze zuzugreifen.

Bei der Verarbeitung von HLL-Skizzen führt Amazon Redshift Optimierungen durch, die den Speicherbedarf der Skizze minimieren und die Genauigkeit der extrahierten Kardinalität maximieren. Amazon Redshift verwendet zwei Darstellungen für HLL-Skizzen, rudimentär und ausführlich. Zu Beginn hat eine HLLSKETCH ein rudimentäres Format. Wenn neue Werte in eingefügt werden, nimmt die Größe zu. Wenn die Größe die Größe der ausführlichen Darstellung erreicht hat, konvertiert Amazon Redshift die Skizze automatisch von rudimentär zu ausführlich.

Amazon Redshift importiert, exportiert und gibt eine HLLSKETCH als JSON aus, wenn die Skizze ein rudimentäres Format hat. Amazon Redshift importiert, exportiert und gibt eine HLLSKETCH als Base64-Zeichenfolge aus, wenn die Skizze ein ausführliches Format hat. Weitere Informationen zu UNLOAD finden Sie unter Entladen des Datentyps HLLSKETCH. Verwenden Sie den COPY-Befehl, um Text- oder CSV-Daten (Comma-Separated Value) in Amazon Redshift zu importieren. Weitere Informationen finden Sie unter Laden des Datentyps HLLSKETCH.

Informationen zu Funktionen, die mit HyperLogLog verwendet werden, finden Sie unter HyperLogLog Funktionen.