Gesponserte Inhalte

Eisberg, Google Cloud, Apache Spark

Die Landschaft von Huge Knowledge Analytics entwickelt sich ständig weiter. Unternehmen suchen flexiblere, skalierbare und kostengünstigere Möglichkeiten, um große Datenmengen zu verwalten und zu analysieren. Diese Verfolgung hat zum Anstieg des Daten-Lakehouse-Paradigmas geführt, das die kostengünstige Speicherung und Flexibilität von Datenseen mit den Datenverwaltungsfunktionen und der Transaktionskonsistenz von Datenlagern kombiniert. Im Zentrum dieser Revolution stehen offene Tabellenformate wie Apache Iceberg und leistungsstarke Verarbeitungsmotoren wie Apache Spark, die alle durch die robuste Infrastruktur von Google Cloud gestärkt werden.

Der Aufstieg von Apache Iceberg: Ein Recreation-Changer für Datenseen

Seit Jahren boten Knowledge Lakes, die in der Regel auf Cloud -Objektspeicher wie Google Cloud Storage (GCS) basieren, beispiellose Skalierbarkeit und Kosteneffizienz. Es fehlten ihnen jedoch häufig die entscheidenden Merkmale, die in herkömmlichen Datenlagern wie Transaktionskonsistenz, Schemaentwicklung und Leistungsoptimierungen für analytische Abfragen gefunden wurden. Hier glänzt Apache Iceberg.

Apache Iceberg ist ein offenes Tabellenformat, das diese Einschränkungen angeht. Es befindet sich oben in Ihren Datendateien (wie Parquet, ORC oder AVRO) im Cloud-Speicher und bietet eine Metadatenschicht, die eine Sammlung von Dateien in eine Hochleistungs-SQL-ähnliche Tabelle umwandelt. Folgendes macht Eisberg so mächtig:

  • Säurekonformität: Iceberg bringt Atomizität, Konsistenz, Isolation und Haltbarkeit (Säure) in Ihren Datensee. Dies bedeutet, dass Datenschreibvorgänge transaktional sind und die Datenintegrität auch bei gleichzeitigen Operationen sicherstellen. Keine teilweisen Schreibvorgänge oder inkonsistenten Lesevorgänge mehr.
  • Schemaentwicklung: Einer der größten Schmerzpunkte in traditionellen Datenseen ist die Verwaltung von Schemaveränderungen. Iceberg übernimmt nahtlos die Schemaentwicklung und ermöglicht es Ihnen, Spalten hinzuzufügen, zu fallen, umzubenennen oder neu zu ordnen, ohne die zugrunde liegenden Daten neu zu schreiben. Dies ist für die agile Datenentwicklung von entscheidender Bedeutung.
  • Versteckte Partitionierung: Iceberg verwaltet clever die Partitionierung und entzieht das physische Format Ihrer Daten ab. Benutzer müssen das Partitionierungsschema nicht mehr kennen, um effiziente Abfragen zu schreiben, und Sie können Ihre Partitionierungsstrategie im Laufe der Zeit ohne Datenmigrationen weiterentwickeln.
  • Zeitreisen und Rollback: Iceberg hält eine vollständige Geschichte von Tischschnappschüssen. Auf diese Weise können Sie „Zeitreisen“ -Anfragen ermöglichen, sodass Sie Daten in der Vergangenheit abfragen können. Es bietet auch Rollback -Funktionen, mit denen Sie eine Tabelle in einen früheren guten Zustand zurückversetzen können, der für das Debuggen und die Datenwiederherstellung von unschätzbarem Wert von unschätzbarem Zustand ist.
  • Leistungsoptimierungen: Mit der reichen Metadaten von Iceberg können Abfragemotoren irrelevante Datendateien und Partitionen effizient beschneiden und die Abfrageausführung erheblich beschleunigen. Es vermeidet kostspielige Dateilistenvorgänge und springt direkt zu den relevanten Daten basierend auf seinen Metadaten.

Durch die Bereitstellung dieser Knowledge Warehouse-ähnlichen Funktionen auf einem Datensee ermöglicht Apache Iceberg die Erstellung eines echten „Knowledge Lakehouse“, der das Beste aus beiden Welten bietet: die Flexibilität und Kostenwirksamkeit der Cloud-Speicherung in Kombination mit der Zuverlässigkeit und Leistung strukturierter Tabellen.

Google Clouds Biglake -Tabellen für Apache Iceberg in BigQuery Bietet ein voll verwaltetes Tabellenerlebnis, das den Normal-BigQuery-Tabellen ähnelt, aber alle Daten werden in kundenbesitzenden Speicherömer gespeichert. Assist -Funktionen umfassen:

  • Tabellenmutationen über Googlesql Knowledge Manipulationssprache (DML)
  • Einheitlicher Stapel und hoher Durchsatz -Streaming mit der Speicher -Schreibapi durch Biglake -Anschlüsse wie Spark
  • ICEBERG V2 SNAPSHOT -Export und automatische Aktualisierung auf jeder Tabellenmutation
  • Schema -Evolution, um die Spaltenmetadaten zu aktualisieren
  • Automatische Speicheroptimierung
  • Zeitreisen für historische Datenzugriff
  • Sicherheits- und Datenmaskierung auf Spaltenebene

Hier ist ein Beispiel dafür, wie man mit Googlesql eine leere Biglake -Eisberg -Tabelle erstellt:


SQL

CREATE TABLE PROJECT_ID.DATASET_ID.my_iceberg_table (
  identify STRING,
  id INT64
)
WITH CONNECTION PROJECT_ID.REGION.CONNECTION_ID
OPTIONS (
file_format="PARQUET"
table_format="ICEBERG"
storage_uri = 'gs://BUCKET/PATH');

Du kannst dann Daten importieren in die Daten verwenden LOAD INTO Daten aus einer Datei importieren oder INSERT INTO aus einem anderen Tisch.


SQL

# Load from file
LOAD DATA INTO PROJECT_ID.DATASET_ID.my_iceberg_table
FROM FILES (
uris=('gs://bucket/path/to/knowledge'),
format="PARQUET");

# Load from desk
INSERT INTO PROJECT_ID.DATASET_ID.my_iceberg_table
SELECT identify, id
FROM PROJECT_ID.DATASET_ID.source_table

Zusätzlich zu einem vollständig verwalteten Angebot wird Apache Iceberg als Lesen unterstützt.extern Tisch in BigQuery. Verwenden Sie dies, um auf einen vorhandenen Pfad mit Datendateien zu verweisen.


SQL

CREATE OR REPLACE EXTERNAL TABLE PROJECT_ID.DATASET_ID.my_external_iceberg_table
WITH CONNECTION PROJECT_ID.REGION.CONNECTION_ID
OPTIONS (
  format="ICEBERG",
  uris =
    ('gs://BUCKET/PATH/TO/DATA'),
  require_partition_filter = FALSE);

Apache Spark: Die Engine für Knowledge Lakehouse Analytics

Während Apache Iceberg die Struktur und das Administration für Ihr Daten -Lakehouse bietet, ist Apache Spark die Verarbeitungsmotor, die sie zum Leben erweckt. Spark ist ein leistungsstarkes Open-Supply-verteiltes Verarbeitungssystem, das für seine Geschwindigkeit, Vielseitigkeit und Fähigkeit zur Behandlung verschiedener Huge-Knowledge-Workloads bekannt ist. Die In-Reminiscence-Verarbeitung von Spark, das robuste Ökosystem von Werkzeugen, einschließlich ML und SQL-basierter Verarbeitung, und Deep Iceberg Assist machen es zu einer hervorragenden Wahl.

Apache Spark ist tief in das Google Cloud -Ökosystem integriert. Zu den Vorteilen der Verwendung von Apache Spark auf Google Cloud gehören:

  • Zugriff auf ein echtes serverloses Spark -Erlebnis ohne Clusterverwaltung mithilfe von Verwendung Google Cloud serverlos für Apache Spark.
  • Voll verwaltete Spark -Erfahrung mit flexibler Clusterkonfiguration und -verwaltung über DataProc.
  • Funkenjobs mit dem neuen beschleunigen Lightning Engine für Apache Spark Vorschau -Funktion.
  • Konfigurieren Sie Ihre Laufzeit mit GPUs und Treibern, die vorinstalliert sind.
  • Führen Sie AI/ML -Jobs mit einem robusten Satz von Bibliotheken aus, die standardmäßig in Spark -Laufzeiten verfügbar sind, einschließlich Xgboost, Pytorch und Transformers.
  • Schreiben Sie PySpark -Code direkt in BigQuery Studio über Colab Enterprise Notebooks zusammen mit der Gemini-angetriebenen PYSPark-Codegenerierung.
  • Stellen Sie einfach eine Verbindung zu Ihren Daten in BigQuery native Tabellen, Biglake -Eisberg -Tabellen, externen Tabellen und GCs her
  • Integration mit Vertex AI für Finish-to-Finish-Mlops

Eisberg + Spark: Besser zusammen

Zusammen bilden Eisberg und Funken eine starke Kombination für den Bau von leistungsfähigen und zuverlässigen Daten -Lakehouses. Spark kann die Metadaten von Iceberg nutzen, um Abfragepläne zu optimieren, ein effizientes Datenbeschneiden durchzuführen und die transaktionale Konsistenz in Ihrem Datensee zu gewährleisten.

Ihre Eisberg -Tische und BigQuery -nativen Tische sind über die durch Biglake Metastore. Dadurch werden Ihre Tabellen Open -Supply -Motoren mit BigQuery -Kompatibilität einschließlich Spark ausgesetzt.


Python

from pyspark.sql import SparkSession

# Create a spark session
spark = SparkSession.builder 
.appName("BigLake Metastore Iceberg") 
.config("spark.sql.catalog.CATALOG_NAME", "org.apache.iceberg.spark.SparkCatalog") 
.config("spark.sql.catalog.CATALOG_NAME.catalog-impl", "org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog") 
.config("spark.sql.catalog.CATALOG_NAME.gcp_project", "PROJECT_ID") 
.config("spark.sql.catalog.CATALOG_NAME.gcp_location", "LOCATION") 
.config("spark.sql.catalog.CATALOG_NAME.warehouse", "WAREHOUSE_DIRECTORY") 
.getOrCreate()
spark.conf.set("viewsEnabled","true")

# Use the blms_catalog
spark.sql("USE `CATALOG_NAME`;")
spark.sql("USE NAMESPACE DATASET_NAME;")

# Configure spark for temp outcomes
spark.sql("CREATE namespace if not exists MATERIALIZATION_NAMESPACE");
spark.conf.set("materializationDataset","MATERIALIZATION_NAMESPACE")

# Record the tables within the dataset
df = spark.sql("SHOW TABLES;")
df.present();

# Question the tables
sql = """SELECT * FROM DATASET_NAME.TABLE_NAME"""
df = spark.learn.format("bigquery").load(sql)
df.present()
sql = """SELECT * FROM DATASET_NAME.ICEBERG_TABLE_NAME"""
df = spark.learn.format("bigquery").load(sql)
df.present()

sql = """SELECT * FROM DATASET_NAME.READONLY_ICEBERG_TABLE_NAME"""
df = spark.learn.format("bigquery").load(sql)
df.present()

Die Verlängerung der Funktionalität von Biglake Metastore ist die Eisberg REST -Katalog (in der Vorschau) mit jeder Datenverarbeitungsmaschine auf Eisberg -Daten zugreifen. Hier erfahren Sie, wie Sie mit Spark verbinden können:


Python

import google.auth
from google.auth.transport.requests import Request
from google.oauth2 import service_account
import pyspark
from pyspark.context import SparkContext
from pyspark.sql import SparkSession

catalog = ""
spark = SparkSession.builder.appName("") 
    .config("spark.sql.defaultCatalog", catalog) 
    .config(f"spark.sql.catalog.{catalog}", "org.apache.iceberg.spark.SparkCatalog") 
    .config(f"spark.sql.catalog.{catalog}.sort", "relaxation") 
    .config(f"spark.sql.catalog.{catalog}.uri",
"https://biglake.googleapis.com/iceberg/v1beta/restcatalog") 
    .config(f"spark.sql.catalog.{catalog}.warehouse", "gs://") 
    .config(f"spark.sql.catalog.{catalog}.token", "") 
    .config(f"spark.sql.catalog.{catalog}.oauth2-server-uri", "https://oauth2.googleapis.com/token")                    .config(f"spark.sql.catalog.{catalog}.header.x-goog-user-project", "")      .config("spark.sql.extensions","org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") 
.config(f"spark.sql.catalog.{catalog}.io-impl","org.apache.iceberg.hadoop.HadoopFileIO")     .config(f"spark.sql.catalog.{catalog}.rest-metrics-reporting-enabled", "false") 
.getOrCreate()

Fertigstellung des Lakehaus

Google Cloud bietet eine umfassende Suite von Diensten, die Apache Iceberg und Apache Spark ergänzen und es Ihnen ermöglichen, Ihr Daten-Lakehouse problemlos zu erstellen, zu verwalten und zu skalieren und gleichzeitig viele der Open-Supply-Technologien zu nutzen, die Sie bereits verwenden:

  • Dataplex Universalkatalog: Dataplex Common Catalog bietet eine einheitliche Datengewebe für die Verwaltung, Überwachung und Registrierung Ihrer Daten über Knowledge Lakes, Knowledge Warehouses und Knowledge Marts. Es wird in Biglake Metastore integriert, um sicherzustellen, dass Governance -Richtlinien in Ihren Eisberg -Tabellen konsequent erzwungen werden und Funktionen wie semantische Suche, Datenlinien und Datenqualitätsprüfungen ermöglichen.
  • Google Cloud Managed Service für Apache Kafka: Führen Sie in Google Cloud voll verwaltete Kafka-Cluster aus, einschließlich Kafka Join. Datenströme können direkt an BigQuery gelesen werden, einschließlich der verwalteten Eisberg -Tabellen mit Latenz mit geringer Latenz.
  • Wolkenkomponist: Ein vollständig verwalteter Workflow -Orchestrierungsdienst, der auf baut auf Apache -Luftstrom.
  • Scheitelpunkt AI: Verwenden Sie die Vertex AI, um das vollständige Finish-to-Finish-ML-OPS-Erlebnis zu verwalten. Sie können auch verwenden Scheitelpunkt AI Workbench Für eine verwaltete JupyterLab -Erfahrung, um eine Verbindung zu Ihren serverlosen Funken- und DataProc -Instanzen herzustellen.

Abschluss

Die Kombination von Apache Iceberg und Apache Spark auf Google Cloud bietet eine überzeugende Lösung für den Aufbau moderner Hochleistungsdaten-Lakehouses. Iceberg liefert die transaktionale Konsistenz, die Schemaentwicklung und die Leistungsoptimierungen, die historisch in Datenseen fehlten, während Spark eine vielseitige und skalierbare Engine für die Verarbeitung dieser großen Datensätze bietet.

Um mehr zu erfahren, sehen Sie sich unsere an Kostenloses Webinar Am 8. Juli um 11 Uhr PST, wo wir tiefer in die Verwendung von Apache Spark und unterstützenden Instruments auf Google Cloud eintauchen.

Autor: Brad Miro, Senior Developer Advocate – Google

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert