DynamicFrameReader kelas - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

DynamicFrameReader kelas

 — metode —

__init__

__init__(glue_context)

from_rdd

from_rdd(data, name, schema=None, sampleRatio=None)

Membaca sebuah DynamicFrame dari Resilient Distributed Dataset (RDD).

  • data — Set data tempat untuk membaca.

  • name — Nama tempat untuk membaca.

  • schema — Skema yang akan dibaca (opsional).

  • sampleRatio — Rasio sampel (opsional).

from_options

from_options(connection_type, connection_options={}, format=None, format_options={}, transformation_ctx="")

Membaca sebuah DynamicFrame menggunakan koneksi dan format yang ditentukan.

  • connection_type — Jenis koneksi. Nilai yang valid meliputi s3mysql,postgresql,,redshift,sqlserver,oracle,dynamodb, dansnowflake.

  • connection_options — Pilihan koneksi, seperti path dan tabel basis data (opsional). Untuk informasi selengkapnya, lihat Jenis dan opsi koneksi untuk ETL di AWS Glue for Spark. Untuk sebuah connection_type dari s3, path Amazon S3 didefinisikan dalam sebuah array.

    connection_options = {"paths": [ "s3://mybucket/object_a", "s3://mybucket/object_b"]}

    Untuk koneksi JDBC, beberapa properti harus didefinisikan. Perhatikan bahwa nama basis data harus menjadi bagian dari URL. Secara opsional dapat disertakan dalam opsi koneksi.

    Awas

    Menyimpan kata sandi dalam skrip Anda tidak disarankan. Pertimbangkan boto3 untuk menggunakan untuk mengambilnya dari AWS Secrets Manager atau Katalog Data AWS Glue.

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    Untuk koneksi JDBC yang melakukan pembacaan paralel, Anda dapat mengatur opsi hashfield. Sebagai contoh:

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path" , "hashfield": "month"}

    Untuk informasi selengkapnya, lihat Membaca dari tabel JDBC secara paralel.

  • format — Format spesifikasi (opsional). Ini digunakan untuk Amazon Simple Storage Service (Amazon S3) atau koneksi AWS Glue yang mendukung berbagai format. Lihat Opsi format data untuk input dan output untuk Spark AWS Glue untuk format yang didukung.

  • format_options — Pilihan format untuk format yang ditentukan. Lihat Opsi format data untuk input dan output untuk Spark AWS Glue untuk format yang didukung.

  • transformation_ctx — Konteks transformasi yang akan digunakan (opsional).

  • push_down_predicate — Memfilter partisi tanpa harus mencantumkan dan membaca semua file dalam set data Anda. Untuk informasi selengkapnya, lihat Pra-Pemfilteran Menggunakan Predikat Pushdown.

from_catalog

from_catalog(database, table_name, redshift_tmp_dir="", transformation_ctx="", push_down_predicate="", additional_options={})

Membaca sebuah DynamicFrame menggunakan namespace katalog tertentu dan nama tabel.

  • database — Basis data tempat untuk membaca.

  • table_name — Nama tempat untuk dibaca.

  • redshift_tmp_dir — Sebuah direktori sementara Amazon Redshift yang akan digunakan (opsional, jika bukan pembacaan data dari Redshift).

  • transformation_ctx — Konteks transformasi yang akan digunakan (opsional).

  • push_down_predicate — Memfilter partisi tanpa harus mencantumkan dan membaca semua file dalam set data Anda. Untuk informasi selengkapnya, lihat Pra-penyaringan menggunakan predikat pushdown.

  • additional_options— Opsi tambahan yang disediakan untukAWS Glue.

    • Untuk menggunakan koneksi JDBC yang melakukan pembacaan paralel, Anda dapat mengatur pilihan hashfield, hashexpression, atau hashpartitions. Sebagai contoh:

      additional_options = {"hashfield": "month"}

      Untuk informasi selengkapnya, lihat Membaca dari tabel JDBC secara paralel.

    • Untuk meneruskan ekspresi katalog untuk memfilter berdasarkan kolom indeks, Anda dapat melihat catalogPartitionPredicate opsi.

      catalogPartitionPredicate— Anda dapat meneruskan ekspresi katalog untuk memfilter berdasarkan kolom indeks. Ini mendorong penyaringan ke sisi server. Untuk informasi selengkapnya, lihat Indeks AWS Glue Partisi. Perhatikan itu push_down_predicate dan catalogPartitionPredicate gunakan sintaks yang berbeda. Yang pertama menggunakan sintaks standar Spark SQL dan yang kemudian menggunakan parser JSQL.

      Untuk informasi selengkapnya, lihat Mengelola partisi untuk output ETL di AWS Glue.

    • Untuk membaca dari tabel yang Lake Formation diatur, Anda dapat menggunakan opsi tambahan ini:

      • transactionId— (String) ID transaksi untuk membaca isi tabel yang Diatur. Jika transaksi ini tidak dilakukan, pembacaan akan diperlakukan sebagai bagian dari transaksi itu dan akan melihat penulisannya. Jika transaksi ini dilakukan, tulisannya akan terlihat dalam bacaan ini. Jika transaksi ini dibatalkan, kesalahan akan dikembalikan. Tidak dapat ditentukan bersama denganasOfTime.

        catatan

        Entah transactionId atau asOfTime harus diatur untuk mengakses tabel yang diatur.

      • asOfTime— (TimeStamp: yyyy- [m] m- [d] d hh:mm: ss) Waktu kapan harus membaca isi tabel. Tidak dapat ditentukan bersama dengantransactionId.

      • query— (Opsional) Pernyataan kueri PartiQL yang digunakan sebagai masukan ke Lake Formation layanan perencana. Jika tidak diatur, pengaturan default adalah memilih semua data dari tabel. Untuk detail selengkapnya tentang PartiQL, lihat Dukungan PartiQL dalam Ekspresi Filter Baris di Panduan Pengembang.AWS Lake Formation

      contoh Contoh: Menggunakan pernyataan kueri PartiQL saat membaca dari tabel yang diatur di Lake Formation
      txId = glueContext.start_transaction(read_only=False) datasource0 = glueContext.create_dynamic_frame.from_catalog( database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={ "transactionId":txId, "query":"SELECT * from tblName WHERE partitionKey=value;" }) ... glueContext.commit_transaction(txId)