Uncategorized

Daten-Lake: Alles, was Sie wissen müssen

finden eine Fülle von Informationen in einem Daten-Lake

Was ist ein Daten-Lake?

A Daten-Lake wird verwendet, um strukturierte oder halbstrukturierte Daten in ihrem ursprünglichen Format zu speichern und zu verarbeiten. Unternehmen erstellen und empfangen große Datenmengen, die Sie in einem Daten-Lake in voller Qualität zur Analyse speichern können.

Warum einen Daten-Lake verwenden?

Unternehmen benötigen einen zentralen Ort, an dem alle potenziell wertvollen Daten gespeichert werden, die von operativen Systemen, Weblogs und Edge-Systemen erfasst werden. A Daten-Lake ergänzt Data Warehouses, die zur Unterstützung regelmäßiger Berichtsanforderungen verwendet werden. Ein Daten-Lake hat einen breiteren Anwendungsbereich, indem er ein Lager für Daten bereitstellt, die selten verwendet werden oder zur Unterstützung seltener Projekte wie Audits und der Erforschung neuer Geschäftsinitiativen.

Die Verwaltung einer umfangreichen Datenbank kann eine Herausforderung sein, daher sind große Datenmengen in einem Cloud wie Amazon S3 leicht verfügbar.

Nicht alle Datenformate lassen sich in einem relational database management system unterbringen. Daher bietet ein Daten-Lake ein Lager für alle Datenformate in einem einzigen Dateisystem oder Cloud . Die Actian Data Platform bietet ein standardmäßiges SQL-basiertes Frontend für einen Daten-Lake , das Erweiterungen verwendet, die den Zugriff auf externe Daten über dieselben APIs ermöglichen, die für intern gespeicherte Tabellen verwendet werden.

Daten-Lake Eigenschaften

Die folgenden Attribute können Datenseen charakterisieren:

  • Zur Speicherung strukturierter, halbstrukturierter und unstrukturierter Daten.
  • Kann auf einem einzigen Dateisystem oder einer Cloud zentralisiert werden.
  • Um als Daten-Lake bezeichnet zu werden, müssen sie große Datenmengen von 100 Terabyte und mehr speichern.
  • Häufig wird die Schnittstelle von HDFS, HBASE oder Spark verwendet.
  • Auf sie kann mit Spark-Erweiterungen zugegriffen werden durch Datenmanagement Plattformen wie der Actian Data Platform zugegriffen werden.
  • Sie vereinfachen das Datenmanagement.
  • Bereiten Sie sich darauf vor, künstliche Intelligenz und Maschinelles Lernen einzubeziehen.
  • Sie beschleunigen analytische Projekte.
  • Sie verbessern Sicherheit und Governance.

Daten-Lake Architektur

Data Lakes sind in der Regel sehr groß, so dass sie ein skalierbar Dateisystem benötigen. Eine Möglichkeit, dies zu gewährleisten, ist die Verwendung eines Dateisystems, das von mehreren Servern in einer Clusterkonfiguration genutzt wird, die über ein Hochgeschwindigkeitsnetzwerk verbunden sind. Das Hadoop HDFS ist hochgradig skalierbar und bietet hohe Verfügbarkeit, da redundante Kopien der Daten zum Schutz vor Geräteausfällen angelegt werden. Ein Masterknoten verteilt die Daten auf mehrere Server, um die Ressourcen gleichmäßig über den Cluster zu verteilen.

Herkömmliche Hadoop-Cluster waren früher nur vor Ort verfügbar. Da die Kosten pro Terabyte für Cloud Speicher und die geringeren Verwaltungskosten gesunken sind, ist dies nun der bevorzugte Ort für den Aufbau einer Daten-Lake . Cloud unterstützt die Aufnahme und den Verbrauch großer Datenmengen in größerem Umfang als bei selbst entwickelten Clustern. Infrastructure-as-a-Service (IaaS) ist bei allen führenden öffentlichen Clouds von Google, Microsoft Azure und Amazon Web Services verfügbar.

Die Actian Data Platform unterstützt Hadoop-Datenformate wie AVRO, ORC, PARQUET, XML und JSON.

Bewährte Praktiken der Daten-Lake

Data Lakes tragen dazu bei, die Gesamtbetriebskosten zu senken und das Datenmanagement zu vereinfachen, indem sie mehrere disparate Datensilos konsolidieren.

Die Daten müssen nicht in ihrer Rohform im Daten-Lake verbleiben, sondern können vorverarbeitet oder transformiert werden, um sie für Anwendungen der Künstlichen Intelligenz (KI) und des Maschinelles Lernen (ML) vorzubereiten.

Die meisten Definitionen eines Daten-Lake beschreiben ihn als einen einzelnen Datenspeicher. Daten werden in der Regel an vielen Stellen in einem Unternehmen generiert und sollten über eine kleine Anzahl von Pools konsolidiert und zusammengeführt werden, um die Verwaltungskosten niedrig zu halten. Der Grund dafür ist, dass es Zeit und Geld kostet, Daten zu verschieben, insbesondere wenn man die Kosten für den Austritt aus einer Cloud berücksichtigt.

Ein pragmatischer Ansatz wäre es, zu prüfen, wo Daten generiert werden, und eine Handvoll Stellen auszuwählen, an denen sie zusammengeführt werden können. Die Datenpools können virtuell in einer einzigen Ansicht konsolidiert werden, um einen umfassenden Überblick zu erhalten. Beispiele für praktische Pools wären einer pro Cloud und nach Geografie, so dass man Pools für die Rechenzentren in Asien, den USA und EMEA sowie Aggregationen auf Azure, AWS und Google Cloud haben könnte.

Analyse-Engines können in den einzelnen Pools eingesetzt werden, so dass Sie frische Daten mit geringer Latenz betrachten und die föderierte globale Ansicht für Funktionen wie die monatliche oder jährliche Berichterstattung nutzen können.

Die Actian Data Platform ist für jede Cloud und on-prem verfügbar, damit Sie Datenanalysen überall dort durchführen können, wo es sinnvoll ist, Ihren Daten-Lake zu platzieren. Nur eine Teilmenge der Daten muss sich innerhalb der Actian Data Platform befinden. Auf selten genutzte Datensätze kann weiterhin über den Konnektor zugegriffen werden, wobei SQL-Prädikate bis hinunter zum Datensatz übertragen werden, um die Effizienz der Anfrage zu verbessern.

Um Transparenz zu schaffen, müssen die Daten im Datensee mit Metadaten versehen werden, die das Quellsystem, die Datenqualität, das Alter und die Häufigkeit der Aktualisierungen angeben, um die Vertrauenswürdigkeit der Daten zu ermitteln. Diese Metadaten können katalogisiert werden, um die Datenherkunft zu unterstützen. Die Katalogisierung von Datensätzen verbessert die Governance und die Nachvollziehbarkeit der Daten für regulatorische Zwecke.

Die Hadoop-HDFS-Architektur eignet sich aufgrund ihrer Langlebigkeit und der Cluster-Architektur zur Verteilung der Aufgaben auf die einzelnen Knoten besonders gut für denuse case Daten-Lake .

Daten-Lake vs. Data Warehouse

Die Daten-Lake ist ein neueres Konzept als das Data Warehouse, das in den 1990er Jahren populär wurde. Der Daten-Lake ist eine Weiterentwicklung des big data . Data Lakes und Data Warehouses ergänzen sich gegenseitig. Sie können koexistieren. Data Lakes sind als Lager für vollständige Daten in allen Formen konzipiert. Im Gegensatz dazu ist ein Data Warehouse darauf ausgelegt, den Benutzern aufbereitete Daten für inaktive Abfragen, Dashboards von BI-Tools, Visualisierung, KI- und ML-Tools zur Verfügung zu stellen.

Datenmanagement wie die Actian Data Platform bieten ein hybrides Data Warehouse, das auf externe, in einem Daten-Lake gespeicherte Daten zugreifen kann.

Actian und Spark

Auf bestehende Hadoop-basierte Data Lakes kann über SQL mit Hive und Apache Impala zugegriffen werden, aber es ist möglich, durch das Laden der Daten in die Actian Data Platform eine um Größenordnungen bessere Leistung zu erzielen. Darüber hinaus bietet die Actian Data Platform die Möglichkeit, Hadoop-Daten mithilfe externer Tabellen an Ort und Stelle Anfrage . Die Funktion für externe Tabellen ermöglicht das Lesen von und Schreiben in Datenquellen, die außerhalb der Actian Data Platform gespeichert sind. Die Datenquelle muss eine sein, aus der Apache Spark lesen und in die es schreiben kann, wie z. B. Dateien, die in Formaten wie Parquet, ORC, JSON oder Tabellen in externen Datenbanksystemen gespeichert sind.

Die Syntax CREATE EXTERNAL TABLE erstellt eine Actian Data Platform-Tabelle, die auf bestehende Datendateien an Orten außerhalb der Actian Data Platform verweist. Mit dieser Funktion entfällt die Notwendigkeit, die Daten in eine neue Tabelle zu importieren, wenn sich die Datendateien bereits an einem bekannten Ort im gewünschten Dateiformat befinden.

Nachdem die Struktur der Datendatei mit Hilfe der CREATE EXTERNAL TABLE-Anweisung auf das Actian Data Platform-Format abgebildet wurde, können Sie:

  • Auswahl, Verknüpfung oder Sortierung externer Tabellendaten.
  • Erstellen Sie Views für externe Tabellen.
  • Einfügen von Daten in externe Tabellen.
  • Importieren und Speichern der Daten in der Actian Data Platform Datenbank.

Die Daten werden an ihren ursprünglichen Speicherorten abgefragt, und die Actian Data Platform lässt die Datendateien an ihrem Platz, wenn Sie die Tabelle löschen.

Die Actian Data Platform nutzt die umfangreiche Konnektivität von Apache Sparkfür die Funktionalität externer Tabellen.

Die Actian Data Platform fragt externe Tabellen vom Nutzer oder der Client-App ab und schreibt sie in JSON-Anfragen für externe Daten um. Diese Anfragen werden dann in Spark-Jobs übersetzt, die gestartet werden. Diese Jobs geben typischerweise Abfragen (an SparkSQL) wie "INSERT INTO avalanche_table SELECT * FROM external_resource" zum Lesen externer Daten oder "INSERT INTO external_resource SELECT * FROM avalanche_table" zum Schreiben in externe Systeme aus. Schließlich schieben und ziehen diese Jobs Daten in und aus der Actian Data Platform.

Sie können sogar neue Datensätze in eine externe Tabelle einfügen.

Die Syntax für die Definition einer externen Tabelle lautet:

CREATE EXTERNAL TABLE table_name (spalten_name daten_typ {,spalten_name daten_typ})
USING SPARK
WITH REFERENCE='referenz'
[,FORMAT='format']
[,OPTIONS=('key'=value {,'key'='value'})]

Weitere Informationen finden Sie unter CREATE EXTERNAL TABLE im SQL-Sprachführer.

Lesen und Schreiben in eine externe Tabelle

Nachdem externe Tabellen mit der Syntax CREATE EXTERNAL TABLE definiert wurden, verhalten sie sich wie reguläre Actian Data Platform Tabellen. Sie können Abfragen wie die folgende durchführen:

SELECT * FROM test_table_csv

INSERT INTO meine_tabelle_orc SELECT some_column FROM andere_tabelle

Prädikat-Pushdown von der Actian Data Platform zu Spark

Wenn eine Anfrage an eine EXTERNAL TABLE mit Spark gestellt wird, können Prädikate aus der WHERE-Klausel bereits von Spark ausgewertet werden, wodurch die Anzahl der gesendeten Tupel reduziert wird. Es werden nur Prädikate unterstützt, die in einen Spaltenwertebereich übersetzt werden können. Für logische Verknüpfungen von einfachen Prädikaten werden IN und AND auf einer einzelnen Spalte und spaltenübergreifend OR nur auf einer einzelnen Spalte unterstützt.

Wenn das gesamte komplexe Prädikat ein einziges ODER enthält, das sich über verschiedene Spalten erstreckt, wird nichts an Spark weitergegeben. In diesem Fall überträgt Spark alle Tupel an die Actian Data Platform, und die Filterung erfolgt ausschließlich auf der Seite der Actian Data Platform.

CREATE EXTERNAL TABLE Beispiele

  1. Definieren Sie eine externe Tabelle für eine CSV-Datenquelle, die sich in Amazon S3 befindet:
CREATE EXTERNAL TABLE ext_csv (col1 INT4 NOT NULL, col2 VARCHAR(20) NOT NULL)
USING SPARK
WITH REFERENCE='s3a://<bucket>/file.csv'
OPTIONS=('DELIMITER' = '|', 'HEADER' = 'TRUE','SCHEMA'='col1 INT4 NOT NULL, col2 VARCHAR(20) NOT NULL');
  1. Definieren Sie eine externe Tabelle für eine CSV-Datenquelle, die sich in Amazon S3 befindet. Die CSV-Daten haben keine Kopfzeile:
CREATE EXTERNAL TABLE nation_s3 (
   n_nationkey INTEGER NOT NULL,
   n_name CHAR(25) NOT NULL,
   n_regionkey INTEGER NOT NULL
) USING SPARK WITH REFERENCE='s3a://<bucket>/nation.csv',FORMAT='csv',
OPTIONS=('HEADER'='FALSE','DELIMITER'='|','SCHEMA'='n_nationkey INT NOT NULL, n_name STRING NOT NULL, n_regionkey INT NOT NULL');
  1. Definieren Sie eine externe Tabelle für eine ORC-Datenquelle von Azure:
CREATE EXTERNAL TABLE my_table_orc(a INT8 NOT NULL)
UNTER VERWENDUNG VON SPARK MIT REFERENCE='abfs://loadtest@avalanchetest.dfs.core.windows.net/my_table.orc';

  1. Definieren Sie eine externe Tabelle für eine AVRO-Datenquelle von Azure:
CREATE EXTERNAL TABLE tweets
(username VARCHAR(20),
tweet VARCHAR(100),
timestamp VARCHAR(50))
USING SPARK
WITH REFERENCE='abfs://loadtest@avalanchetest.dfs.core.windows.net/twitter.avro',
FORMAT='com.databricks.spark.avro'

  1. Definieren Sie eine externe Tabelle für eine JSON-Datenquelle anhand der folgenden JSON-Datei:
[{

     "symbol": "MSFT",
     "company": "Microsoft Corporation",
     "stock_tstamp": "2020-01-31T21:00:00+00:00",
     "price": 170.777,
     "volume": 36142690,
     "sector": "TECH"
},
{     "symbol": "AAPL",
     "company": "Apple Inc.",
     "stock_tstamp": "2020-01-31T21:00:00+00:00",
     "price": 309.51,
     "volume": 49897096,
     "sector": "TECH"
},

{     "symbol": "GOOG",
     "company": "Alphabet Inc.",
     "stock_tstamp": "2020-01-31T21:00:00+00:00",
     "price": 1434.23,
     "volume": 2417214,
     "sector": "TECH"

},
{
     "symbol": "AMZN",
     "company": "Amazon.com, Inc.",
     "stock_tstamp": "2020-01-31T21:00:00+00:00",
     "price": 2008.72,
     "volume": 15567283,
     "sector": "TECH"}]

Beispiel-SQL, um eine externe Tabelle zu erstellen, die auf diese JSON-Datei verweist, die in einer Azure ADL gespeichert ist:

CREATE EXTERNAL TABLE techstocks (
     symbol VARCHAR(4),
     company VARCHAR(20),
     stock_tstamp TIMESTAMP,
     preis FLOAT,
     Volumen INTEGER,
     Sektor CHAR(5)
) UNTER VERWENDUNG VON SPARK MIT REFERENCE='abfs://stockquotes@eastusstockdata.dfs.core.windows.net/tech1.json',
     FORMAT='json',
     OPTIONEN=(
     'multiline'='true',
     'SCHEMA'= 'symbol string, company string, stock_tstamp string, price double, volume integer, sector

  1. Definieren Sie eine externe Tabelle für eine CSV-Datenquelle, die sich in Google Cloud Storage befindet. Die CSV-Daten haben keine Kopfzeile:
CREATE EXTERNAL TABLE stations (
    n_stationkey INTEGER NOT NULL,
    n_stationname CHAR(25) NOT NULL,
    n_locationkey INTEGER NOT NULL
) USING SPARK WITH REFERENCE='gs://<path>/stations.csv',FORMAT='csv',
OPTIONS=('HEADER'='FALSE','DELIMITER'='|','SCHEMA'='n_stationkey INT NOT NULL, n_stationname STRING NOT NULL, n_locationkey INT NOT NULL');
  1. Entfernen Sie alle Zeilen, in denen die Textspalte das Zeichen NULL enthält. Die Filterung erfolgt vollständig auf der Spark-Seite mit möglichem Prädikat-Pushdown auf die Datenquelle:
CREATE EXTERNAL TABLE filter_test(id INT, text VARCHAR(20))
USING SPARK WITH REFERENCE='test.csv',
FORMAT='csv',
OPTIONS=(
'header'='false',
'schema'='id Ganzzahl, text String',
'filter'='text NOT LIKE "%\u0000%"');
  1. Erstellen Sie eine externe Tabelle test_ext, die auf eine Tabelle test in einer anderen Actian Data Platform-Instanz verweist:
CREATE EXTERNAL TABLE test_ext(id Int, text VARCHAR(20))
USING SPARK WITH REFERENCE='dummy',
FORMAT='vector',
OPTIONEN=(
'host'='localhost',
'port'='VW7',
'datenbank'='testdb',
'Tabelle'='test',
Nutzer'='actian',
'Passwort'='actian',
'staging'='select id, replace(text, "e", "i") as text from THIS_TABLE',
);

Staging SparkSQL erstellt eine Zwischentabelle, in der die Zeichenfolgen ersetzt werden. THIS_TABLE ist ein bestimmtes Schlüsselwort.

  1. Abbildungsschema durch einfaches Entschachteln einer verschachtelten parquet :
CREATE EXTERNAL TABLE unnested(id INT, name VARCHAR(20), surname VARCHAR(20))
USING SPARK WITH REFERENCE='nestedparquet',
FORMAT=parquet',
OPTIONS=(
'SCHEMA'='id integer, fullname struct(name string, surname string)',
'STAGING'='select id, fullname.name as name, fullname.surname as surname from THIS_TABLE'
);

Erstellen Sie Ihre Daten-Lake und evaluieren Sie die Funktionen der Actian Data Platform für sich.