Langkah 2: Pilih sumber data dan pengklasifikasi - AWS Glue

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

Langkah 2: Pilih sumber data dan pengklasifikasi

Selanjutnya, konfigurasikan sumber data dan pengklasifikasi untuk crawler.

Untuk informasi selengkapnya tentang sumber data yang didukung, lihatSumber data yang didukung untuk crawling.

Konfigurasi sumber data

Pilih opsi yang sesuai untuk Apakah data Anda sudah dipetakan AWS Glue tabel? pilih 'Belum lagi' atau 'Ya'. Secara default, 'Belum lagi' dipilih.

Crawler dapat mengakses penyimpanan data secara langsung sebagai sumber perayapan, atau crawler dapat menggunakan tabel yang ada di Katalog Data sebagai sumbernya. Jika crawler tersebut menggunakan tabel katalog yang ada, maka crawler melakukan perayapan pada penyimpanan data yang ditentukan oleh tabel katalog tersebut.

  • Belum: Pilih satu atau beberapa sumber data yang akan dirayapi. Crawler dapat merayapi beberapa penyimpanan data dari berbagai jenis (Amazon S3JDBC,, dan sebagainya).

    Anda dapat mengkonfigurasi hanya satu penyimpanan data dalam satu waktu. Setelah Anda telah memberikan informasi koneksi dan termasuk path dan mengecualikan pola, Anda kemudian memiliki pilihan untuk menambahkan penyimpanan data yang lain.

  • Ya: Pilih tabel yang ada dari Anda AWS Glue Katalog Data. Tabel katalog menentukan penyimpanan data yang akan di-crawl. Crawler hanya dapat melakukan perayapan tabel katalog dalam satu kali eksekusi; tidak dapat dicampur jenis sumber lainnya.

    Alasan umum untuk menentukan tabel katalog sebagai sumber adalah ketika Anda membuat tabel secara manual (karena Anda sudah tahu struktur penyimpanan data-nya) dan Anda ingin sebuah crawler selalu memperbarui tabel, termasuk menambahkan partisi baru. Untuk diskusi tentang alasan yang lain, lihat Memperbarui tabel Katalog Data yang dibuat secara manual menggunakan crawler.

    Bila Anda menentukan tabel yang ada sebagai jenis sumber crawler, maka kondisi berikut berlaku:

    • Nama basis data bersifat opsional.

    • Hanya tabel katalog yang menentukan penyimpanan data Amazon S3, Amazon DynamoDB, atau Delta Lake yang diizinkan.

    • Tidak ada tabel katalog baru yang dibuat saat crawler berjalan. Tabel yang ada diperbarui sesuai kebutuhan, termasuk melakukan penambahan partisi baru.

    • Objek dihapus yang ditemukan di penyimpanan data akan diabaikan; tidak ada tabel katalog yang dihapus. Sebaliknya, crawler tersebut menulis pesan log. (SchemaChangePolicy.DeleteBehavior=LOG)

    • Opsi konfigurasi crawler untuk membuat satu skema tunggal untuk setiap path Amazon S3 diaktifkan secara default dan tidak dapat dinonaktifkan. (TableGroupingPolicy=CombineCompatibleSchemas) Untuk informasi lebih lanjut, lihatMembuat skema tunggal untuk setiap jalur Amazon S3 termasuk.

    • Anda tidak dapat mencampur tabel katalog sebagai sebuah sumber dengan jenis sumber lainnya (misalnya Amazon S3 atau Amazon DynamoDB).

Untuk menggunakan tabel Delta, pertama buat tabel Delta menggunakan DDL Athena atau. AWS Glue API

Menggunakan Athena, atur lokasi ke folder Amazon S3 Anda dan jenis tabel ke ''. DELTA

CREATE EXTERNAL TABLE database_name.table_name LOCATION 's3://bucket/folder/' TBLPROPERTIES ('table_type' = 'DELTA')

Menggunakan AWS Glue API, tentukan jenis tabel dalam peta parameter tabel. Parameter tabel perlu menyertakan pasangan kunci/nilai berikut. Untuk informasi selengkapnya tentang cara membuat tabel, lihat dokumentasi Boto3 untuk create_table.

{ "table_type":"delta" }
Sumber data

Pilih atau tambahkan daftar sumber data yang akan dipindai oleh crawler.

(Opsional) Jika Anda memilih JDBC sebagai sumber data, Anda dapat menggunakan JDBC driver Anda sendiri saat menentukan akses koneksi tempat info driver disimpan.

Termasuk path

Saat mengevaluasi apa yang harus disertakan atau dikecualikan dalam perayapan, crawler akan memulai dengan mengevaluasi penyertaan path yang diperlukan. Untuk Amazon S3, MongoDB, MongoDB Atlas, Amazon DocumentDB (dengan kompatibilitas MongoDB), dan penyimpanan data relasional, Anda harus menentukan jalur sertakan.

Untuk penyimpanan data Amazon S3

Pilih apakah akan menentukan jalur di akun ini atau di akun lain, lalu telusuri untuk memilih jalur Amazon S3.

Untuk penyimpanan data Amazon S3, sertakan sintaksis path bucket-name/folder-name/file-name.ext. Untuk melakukan perayapan pada semua objek dalam sebuah bucket, Anda harus menentukan hanya nama bucket dalam penyertaan path. Pola pengecualian relatif terhadap penyertaan path

Untuk penyimpanan data Delta Lake

Tentukan satu atau beberapa jalur Amazon S3 ke tabel Delta sebagai s3://bucket/prefix/object.

Untuk penyimpanan data Iceberg atau Hudi

Tentukan satu atau beberapa jalur Amazon S3 yang berisi folder dengan metadata tabel Iceberg atau Hudi sebagai s3://bucket/prefix.

Untuk penyimpanan data Iceberg dan Hudi, folder Iceberg/Hudi mungkin terletak di folder anak dari folder root. Crawler akan memindai semua folder di bawah jalur untuk folder Hudi.

Untuk penyimpanan JDBC data

Masuk <database>/<schema>/<table> atau <database>/<table>, tergantung pada produk database. Oracle Database dan My SQL tidak mendukung skema di jalur. Anda dapat mengganti karakter persen (%) dengan <schema> atau <table>. Misalnya, untuk database Oracle dengan pengenal sistem (SID) dariorcl, masukkan orcl/% untuk mengimpor semua tabel yang pengguna bernama dalam koneksi memiliki akses.

penting

Bidang ini peka terhadap huruf besar dan kecil.

catatan

Jika Anda memilih untuk membawa versi JDBC driver Anda sendiri, AWS Glue crawler akan mengkonsumsi sumber daya di AWS Glue jobs dan bucket Amazon S3 untuk memastikan driver yang Anda berikan dijalankan di lingkungan Anda. Penggunaan sumber daya tambahan akan tercermin di akun Anda. Driver terbatas pada properti yang dijelaskan dalam Menambahkan AWS Glue koneksi.

Untuk penyimpanan data MongoDB, MongoDB Atlas, atau Amazon DocumentDB

Untuk MongoDB, MongoDB Atlas, dan Amazon DocumentDB (dengan kompatibilitas MongoDB), sintaksnya adalah. database/collection

Untuk penyimpanan JDBC data, sintaksnya adalah salah satu database-name/schema-name/table-name ataudatabase-name/table-name. Sintaksis tergantung pada apakah mesin basis data mendukung skema dalam sebuah basis data. Misalnya, untuk mesin database seperti My SQL atau Oracle, jangan tentukan a schema-name di jalur include Anda. Anda dapat mengganti tanda persen (%) untuk skema atau tabel dalam penyertaan path untuk mewakili semua skema atau semua tabel dalam sebuah basis data. Anda tidak dapat mengganti tanda persen (%) untuk basis data dalam penyertaan path.

Kedalaman transversal maksimum (hanya untuk penyimpanan data Iceberg atau Hudi)

Menentukan kedalaman maksimum jalur Amazon S3 yang dapat dilalui crawler untuk menemukan folder metadata Iceberg atau Hudi di jalur Amazon S3 Anda. Tujuan dari parameter ini adalah untuk membatasi waktu berjalan crawler. Nilai default adalah 10 dan maksimum adalah 20.

Mengecualikan pola

Hal ini memungkinkan Anda untuk mengecualikan file atau tabel tertentu dari perayapan. Pengecualian path relatif terhadap penyertaan path. Misalnya, untuk mengecualikan tabel di penyimpanan JDBC data Anda, ketikkan nama tabel di jalur pengecualian.

Crawler terhubung ke penyimpanan JDBC data menggunakan AWS Glue koneksi yang berisi string JDBC URI koneksi. Crawler hanya memiliki akses ke objek di mesin database menggunakan nama JDBC pengguna dan kata sandi di AWS Glue koneksi. Crawler hanya dapat membuat tabel yang dapat diakses melalui JDBC koneksi. Setelah crawler mengakses mesin database dengan JDBCURI, path include digunakan untuk menentukan tabel di mesin database yang dibuat dalam Katalog Data. Misalnya, dengan MySQL, jika Anda menentukan jalur include dariMyDatabase/%, maka semua tabel di dalamnya MyDatabase dibuat dalam Katalog Data. Saat mengakses Amazon Redshift, jika Anda menentukan penyertaan path MyDatabase/%, maka semua tabel dalam semua skema untuk basis data MyDatabase akan dibuat dalam Katalog Data. Jika Anda menentukan penyertaan path MyDatabase/MySchema/%, maka semua tabel dalam basis data MyDatabase dan skema MySchema dibuat.

Setelah Anda menentukan penyertaan path, maka Anda kemudian dapat mengecualikan objek dari perayapan di mana penyertaan path Anda akan dinyatakan termasuk dengan menentukan satu atau beberapa gaya pola pengecualian glob dengan gaya Unix. Pola ini diterapkan ke penyertaan path Anda untuk menentukan objek yang dikecualikan. Pola-pola ini juga disimpan sebagai properti tabel yang dibuat oleh crawler. AWS Glue PySpark ekstensi, seperticreate_dynamic_frame.from_catalog, membaca properti tabel dan mengecualikan objek yang ditentukan oleh pola pengecualian.

AWS Glue mendukung glob pola berikut dalam pola pengecualian.

Pola pengecualian Deskripsi
*.csv Cocok dengan path Amazon S3 yang mewakili nama objek dalam folder saat ini yang diakhiri dengan .csv
*.* Cocok dengan semua nama objek yang berisi sebuah titik
*.{csv,avro} Cocok nama objek yang diakhiri dengan .csv atau .avro
foo.? Cocok nama objek yang dimulai dengan foo. yang diikuti oleh ekstensi karakter tunggal
myfolder/* Cocok dengan objek dalam satu tingkat subfolder dari myfolder, seperti /myfolder/mysource
myfolder/*/* Cocok dengan objek dalam dua tingkat subfolder dari myfolder, seperti /myfolder/mysource/data
myfolder/** Cocok dengan objek dalam semua subfolder dari myfolder, seperti /myfolder/mysource/mydata dan /myfolder/mysource/data
myfolder** Cocok dengan subfolder myfolder serta file di bawah myfolder, seperti /myfolder dan /myfolder/mydata.txt
Market* Mencocokkan tabel dalam JDBC database dengan nama yang dimulai denganMarket, seperti Market_us dan Market_fr

AWS Glue menafsirkan glob mengecualikan pola sebagai berikut:

  • Karakter garis miring (/) adalah pembatas untuk memisahkan kunci Amazon S3 ke dalam sebuah hierarki folder.

  • Karakter tanda bintang (*) cocok dengan karakter nol atau karakter lain dari komponen nama tanpa melintasi batas folder.

  • Tanda bintang ganda (**) cocok dengan karakter nol karakter lainnya yang melintasi folder atau skema batas.

  • Karakter tanda tanya (?) cocok persis dengan satu karakter dari komponen nama.

  • Karakter garis miring terbalik (\) digunakan untuk meng-escape karakter yang jika tidak dapat diartikan sebagai karakter khusus. Ekspresi \\ cocok dengan backslash tunggal, dan \{ cocok dengan kurung kiri.

  • Kurung [ ] membuat ekspresi kurung yang cocok dengan karakter tunggal dari komponen nama dari satu set karakter. Misalnya, [abc] cocok dengan a, b, atau c. Tanda hubung (-) dapat digunakan untuk menentukan rentang, sehingga [a-z] menentukan rentang yang cocok dari a hingga z (inklusif). Bentuk-bentuk ini dapat dicampur, jadi [abce-g] cocok dengan a, b, c, e, f, atau g. Jika karakter setelah kurung ([) adalah tanda seru (!), maka ekspresi kurung dinegasikan. Misalnya, [!a-c] cocok dengan karakter apapun kecuali a, b, atau c.

    Dalam sebuah ekspresi kurung, karakter *, ?, dan \ cocok dengannya sendiri. Karakter tanda hubung (-) cocok dengan dirinya sendiri jika ia merupakan karakter pertama dalam kurung, atau jika ia adalah karakter pertama setelah ! ketika Anda melakukan negasi.

  • Kurung ({ }) melampirkan sebuah grup subpola, di grup tersebut cocok jika setiap subpola dalam grup cocok. Karakter koma (,) digunakan untuk memisahkan subpola. Grup tidak dapat disarangkan.

  • Karakter titik atau titik didepan dalam nama file diperlakukan sebagai karakter normal dalam operasi pencocokan. Misalnya, pola pengecualian * cocok dengan nama file .hidden.

contoh Amazon S3 mengecualikan pola

Setiap pola pengecualian dievaluasi terhadap pola penyertaan. Sebagai contoh, asumsikan bahwa Anda memiliki struktur direktori Amazon S3 berikut:

/mybucket/myfolder/ departments/ finance.json market-us.json market-emea.json market-ap.json employees/ hr.json john.csv jane.csv juan.txt

Mengingat penyertaan path s3://mybucket/myfolder/, berikut ini adalah beberapa hasil sampel untuk pola pengecualian:

Pola pengecualian Hasil
departments/** Mengecualikan semua file dan folder di bawah departments dan mencakup folder employees dan file-nya
departments/market* Mengecualikan market-us.json, market-emea.json, dan market-ap.json
**.csv Mengecualikan semua objek di bawah myfolder yang memiliki nama yang diakhiri dengan .csv
employees/*.csv Mengecualikan semua file .csv dalam folder employees
contoh Tidak termasuk subset partisi Amazon S3

Misalkan data Anda dipartisi berdasarkan hari, sehingga setiap hari dalam setahun berada dalam partisi Amazon S3 yang terpisah. Untuk Januari 2015, ada 31 partisi. Sekarang, untuk melakukan perayapan pada data hanya untuk minggu pertama bulan Januari, Anda harus mengecualikan semua partisi kecuali hari 1 sampai 7:

2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**

Lihatlah bagian-bagian dari pola glob ini. Bagian pertama, 2015/01/{[!0],0[8-9]}**, mengecualikan semua hari yang tidak dimulai dengan "0" selain hari 08 dan hari 09 dari bulan 01 di tahun 2015. Perhatikan bahwa "**" digunakan sebagai akhiran untuk pola angka hari dan melintasi batas folder ke folder tingkat bawah. Jika "*" digunakan, maka tingkat folder yang lebih rendah tidak dikecualikan.

Bagian kedua, 2015/0[2-9]/**, mengecualikan hari dalam bulan 02 hingga 09, pada tahun 2015.

Bagian ketiga, 2015/1[0-2]/**, mengecualikan hari dalam bulan 10, 11, dan 12, pada tahun 2015.

contoh JDBCmengecualikan pola

Misalkan Anda merayapi JDBC database dengan struktur skema berikut:

MyDatabase/MySchema/ HR_us HR_fr Employees_Table Finance Market_US_Table Market_EMEA_Table Market_AP_Table

Mengingat penyertaan path MyDatabase/MySchema/%, berikut ini adalah beberapa hasil sampel untuk pola pengecualian:

Pola pengecualian Hasil
HR* Mengecualikan tabel dengan nama yang dimulai dengan HR
Market_* Mengecualikan tabel dengan nama yang dimulai dengan Market_
**_Table Mengecualikan semua tabel dengan nama yang diakhiri dengan _Table
Parameter sumber crawler tambahan

Setiap jenis sumber memerlukan seperangkat parameter tambahan yang berbeda.

Koneksi

Pilih atau tambahkan AWS Glue koneksi. Untuk informasi tentang koneksi, lihat Menghubungkan ke data.

Metadata tambahan - opsional (untuk penyimpanan JDBC data)

Pilih properti metadata tambahan untuk crawler untuk dirayapi.

  • Komentar: Merayapi komentar tingkat tabel dan tingkat kolom terkait.

  • Jenis mentah: Pertahankan tipe data mentah dari kolom tabel dalam metadata tambahan. Sebagai perilaku default, crawler menerjemahkan tipe data mentah ke tipe yang kompatibel dengan HIVE.

JDBCNama Kelas Driver - opsional (untuk penyimpanan JDBC data)

Ketik nama kelas JDBC driver kustom untuk crawler untuk terhubung ke sumber data:

  • Postgres: org.PostgreSQL.driver

  • SayaSQL: com.mysql.jdbc.driver, com.mysql.cj.jdbc.driver

  • Redshift: com.amazon.redshift.jdbc.driver, com.amazon.redshift.jdbc42.driver

  • Oracle: oracle.jdbc.driver. OracleDriver

  • SQLServer: com.microsoft.sqlserver.jdbc. SQLServerDriver

JDBCDriver S3 Path - opsional (untuk penyimpanan JDBC data)

Pilih jalur Amazon S3 yang ada ke file. .jar Di sinilah .jar file akan disimpan saat menggunakan JDBC driver khusus agar perayap terhubung ke sumber data.

Aktifkan pengambilan sampel data (hanya untuk penyimpanan data Amazon DynamoDB, MongoDB, MongoDB Atlas, dan Amazon DocumentDB)

Pilih apakah akan melakukan perayapan pada sampel data saja. Jika tidak dipilih, maka seluruh tabel akan di-crawl. Memindai semua catatan dapat memakan waktu lama ketika tabel tersebut bukan merupakan tabel throughput tinggi.

Buat tabel untuk kueri (hanya untuk penyimpanan data Delta Lake)

Pilih bagaimana Anda ingin membuat tabel Delta Lake:

  • Buat tabel Native: Izinkan integrasi dengan mesin kueri yang mendukung kueri log transaksi Delta secara langsung.

  • Buat tabel Symlink: Buat folder manifes symlink dengan file manifes yang dipartisi oleh kunci partisi, berdasarkan parameter konfigurasi yang ditentukan.

Tingkat pemindaian - opsional (hanya untuk penyimpanan data DynamoDB)

Tentukan persentase tabel DynamoDB Membaca Unit Kapasitas yang akan digunakan oleh crawler. Unit kapasitas baca adalah istilah yang didefinisikan oleh DynamoDB, dan merupakan nilai numerik yang bertindak sebagai tingkat pembatar untuk jumlah baca yang dapat dilakukan pada tabel tersebut per detik. Masukkan nilai antara 0,1 dan 1,5. Jika tidak ditentukan, default ke 0,5 untuk tabel yang disediakan dan 1/4 dari kapasitas maksimum yang dikonfigurasi untuk tabel sesuai permintaan. Perhatikan bahwa hanya mode kapasitas yang disediakan yang harus digunakan dengan AWS Glue crawler.

catatan

Untuk penyimpanan data DynamoDB, atur mode kapasitas yang disediakan untuk memproses pembacaan dan penulisan di tabel Anda. AWS Glue Crawler tidak boleh digunakan dengan mode kapasitas sesuai permintaan.

Koneksi jaringan - opsional (untuk penyimpanan data target Amazon S3, Delta, Iceberg, Hudi dan Katalog)

Secara opsional sertakan koneksi Jaringan untuk digunakan dengan target Amazon S3 ini. Perhatikan bahwa setiap crawler terbatas pada satu koneksi Jaringan sehingga target Amazon S3 lainnya juga akan menggunakan koneksi yang sama (atau tidak ada, jika dibiarkan kosong).

Untuk informasi tentang koneksi, lihat Menghubungkan ke data.

Sampel hanya sebagian file dan ukuran Sampel (hanya untuk penyimpanan data Amazon S3)

Tentukan jumlah file di setiap folder daun yang akan di-crawl saat melakukan perayapan pada file sampel dalam set data. Ketika fitur ini diaktifkan, alih-alih melakukan perayapan pada semua file dalam set data ini, crawler akan secara acak memilih beberapa file di setiap folder daun untuk di-crawl.

Crawler sampling paling cocok untuk pelanggan yang memiliki pengetahuan sebelumnya tentang format data mereka dan tahu bahwa skema pada folder mereka tidak berubah. Dengan mengaktifkan fitur ini akan secara signifikan mengurangi waktu aktif crawler.

Nilai yang valid adalah bilangan bulat antara 1 dan 249. Jika tidak ditentukan, maka semua file di-crawl.

Perayap selanjutnya berjalan

Bidang ini adalah bidang global yang memengaruhi semua sumber data Amazon S3.

Pengklasifikasi khusus - opsional

Tentukan pengklasifikasi khusus sebelum mendefinisikan crawler. Pengklasifikasi memeriksa apakah file tertentu dalam format yang dapat ditangani oleh crawler. Jika ya, maka pengklasifikasi menciptakan sebuah skema dalam bentuk objek StructType yang cocok dengan format data tersebut.

Untuk informasi selengkapnya, lihat Mendefinisikan dan mengelola pengklasifikasi.