Komponen Delta Lake opsional Dataproc

Anda dapat menginstal komponen tambahan seperti Delta Lake saat membuat cluster Dataproc menggunakan fitur Komponen opsional. Halaman ini menjelaskan cara menginstal komponen Delta Lake secara opsional di cluster Dataproc.

Saat diinstal di cluster Dataproc, komponen Delta Lake akan menginstal library Delta Lake dan mengonfigurasi Spark dan Hive di cluster agar berfungsi dengan Delta Lake.

Versi image Dataproc yang kompatibel

Anda dapat menginstal komponen Delta Lake di cluster Dataproc yang dibuat dengan versi gambar Dataproc 2.2.46 dan versi gambar yang lebih baru.

Lihat Versi Dataproc yang didukung untuk mengetahui versi komponen Delta Lake yang disertakan dalam rilis image Dataproc.

Saat Anda membuat cluster Dataproc dengan komponen Delta Lake diaktifkan, properti Spark berikut dikonfigurasi agar berfungsi dengan Delta Lake.

File konfigurasi Properti Nilai default
/etc/spark/conf/spark-defaults.conf spark.sql.extensions io.delta.sql.DeltaSparkSessionExtension
/etc/spark/conf/spark-defaults.conf spark.sql.catalog.spark_catalog org.apache.spark.sql.delta.catalog.DeltaCatalog

Menginstal komponen

Instal komponen saat Anda membuat cluster Dataproc menggunakan konsol Google Cloud , Google Cloud CLI, atau Dataproc API.

Konsol

  1. Di Google Cloud console, buka halaman Create a cluster Dataproc.

    Buka Membuat cluster

    Panel Siapkan cluster dipilih.

  2. Di bagian Components, pada bagian Optional components, pilih Delta Lake dan komponen opsional lainnya untuk diinstal di cluster Anda.

gcloud CLI

Untuk membuat cluster Dataproc yang menyertakan komponen Delta Lake, gunakan perintah gcloud dataproc clusters create dengan flag --optional-components.

gcloud dataproc clusters create CLUSTER_NAME \
    --optional-components=DELTA \
    --region=REGION \
    ... other flags

Catatan:

  • CLUSTER_NAME: Tentukan nama cluster.
  • REGION: Tentukan region Compute Engine tempat cluster akan berada.

REST API

Komponen Delta Lake dapat ditentukan melalui Dataproc API menggunakan SoftwareConfig.Component sebagai bagian dari permintaan clusters.create.

Contoh penggunaan

Bagian ini memberikan contoh operasi baca dan tulis data menggunakan tabel Delta Lake.

Tabel Delta Lake

Menulis ke tabel Delta Lake

Anda dapat menggunakan Spark DataFrame untuk menulis data ke tabel Delta Lake. Contoh berikut membuat DataFrame dengan data contoh, membuat tabel Delta Lake my_delta_table di Cloud Storage, lalu menulis data ke tabel Delta Lake.

PySpark

# Create a DataFrame with sample data.
data = spark.createDataFrame([(1, "Alice"), (2, "Bob")], ["id", "name"])

# Create a Delta Lake table in Cloud Storage.
spark.sql("""CREATE TABLE IF NOT EXISTS my_delta_table (
    id integer,
    name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table'""")

# Write the DataFrame to the Delta Lake table in Cloud Storage.
data.writeTo("my_delta_table").append()

Scala

// Create a DataFrame with sample data.
val data = Seq((1, "Alice"), (2, "Bob")).toDF("id", "name")

// Create a Delta Lake table in Cloud Storage.
spark.sql("""CREATE TABLE IF NOT EXISTS my_delta_table (
    id integer,
    name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table'""")

// Write the DataFrame to the Delta Lake table in Cloud Storage.
data.write.format("delta").mode("append").saveAsTable("my_delta_table")

Spark SQL

CREATE TABLE IF NOT EXISTS my_delta_table (
    id integer,
    name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';

INSERT INTO my_delta_table VALUES ("1", "Alice"), ("2", "Bob");

Membaca dari tabel Delta Lake

Contoh berikut membaca my_delta_table dan menampilkan kontennya.

PySpark

# Read the Delta Lake table into a DataFrame.
df = spark.table("my_delta_table")

# Display the data.
df.show()

Scala

// Read the Delta Lake table into a DataFrame.
val df = spark.table("my_delta_table")

// Display the data.
df.show()

Spark SQL

SELECT * FROM my_delta_table;

Hive dengan Delta Lake

Menulis ke Tabel Delta di Hive.

Komponen opsional Dataproc Delta Lake telah dikonfigurasi sebelumnya agar dapat berfungsi dengan tabel eksternal Hive.

Untuk informasi selengkapnya, lihat Konektor Hive.

Jalankan contoh di klien beeline.

beeline -u jdbc:hive2://

Buat tabel Spark Delta Lake.

Tabel Delta Lake harus dibuat menggunakan Spark sebelum tabel eksternal Hive dapat mereferensikannya.

CREATE TABLE IF NOT EXISTS my_delta_table (
    id integer,
    name string)
USING delta
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';

INSERT INTO my_delta_table VALUES ("1", "Alice"), ("2", "Bob");

Buat tabel eksternal Hive.

SET hive.input.format=io.delta.hive.HiveInputFormat;
SET hive.tez.input.format=io.delta.hive.HiveInputFormat;

CREATE EXTERNAL TABLE deltaTable(id INT, name STRING)
STORED BY 'io.delta.hive.DeltaStorageHandler'
LOCATION 'gs://delta-gcs-demo/example-prefix/default/my_delta_table';

Catatan:

  • Class io.delta.hive.DeltaStorageHandler mengimplementasikan API sumber data Hive. Fungsi ini dapat memuat tabel Delta dan mengekstrak metadata-nya. Jika skema tabel dalam pernyataan CREATE TABLE tidak konsisten dengan metadata Delta Lake yang mendasarinya, error akan ditampilkan.

Membaca dari tabel Delta Lake di Hive.

Untuk membaca data dari tabel Delta, gunakan pernyataan SELECT:

SELECT * FROM deltaTable;

Menghapus tabel Delta Lake.

Untuk menghapus tabel Delta, gunakan pernyataan DROP TABLE:

DROP TABLE deltaTable;