

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

# Menyesuaikan perilaku crawler
<a name="crawler-configuration"></a>

Saat Anda mengonfigurasi Perayap AWS Glue, Anda memiliki beberapa opsi untuk menentukan perilaku crawler Anda.
+ **Crawl inkremental** - Anda dapat mengonfigurasi crawler untuk menjalankan crawl inkremental untuk menambahkan hanya partisi baru ke skema tabel. 
+ **Indeks partisi** — Crawler membuat indeks partisi untuk target Amazon S3 dan Delta Lake secara default untuk menyediakan pencarian yang efisien untuk partisi tertentu.
+ **Mempercepat waktu crawl dengan menggunakan peristiwa Amazon S3** — Anda dapat mengonfigurasi crawler untuk menggunakan peristiwa Amazon S3 untuk mengidentifikasi perubahan di antara dua crawl dengan mencantumkan semua file dari subfolder yang memicu peristiwa alih-alih mencantumkan target Amazon S3 atau Katalog Data lengkap.
+ **Menangani perubahan skema** — Anda dapat mencegah crawler membuat perubahan skema apa pun pada skema yang ada. Anda dapat menggunakan Konsol Manajemen AWS atau AWS Glue API untuk mengonfigurasi cara crawler memproses jenis perubahan tertentu. 
+ **Skema tunggal untuk beberapa jalur Amazon S3** — Anda dapat mengonfigurasi crawler untuk membuat skema tunggal untuk setiap jalur S3 jika data kompatibel.
+ **Lokasi tabel dan tingkat partisi** — Opsi crawler tingkat tabel memberi Anda fleksibilitas untuk memberi tahu crawler di mana tabel berada, dan bagaimana Anda ingin partisi dibuat. 
+ **Ambang batas tabel** - Anda dapat menentukan jumlah maksimum tabel yang diizinkan untuk dibuat oleh crawler dengan menentukan ambang batas tabel.
+ **AWS Lake Formation kredensyal** — Anda dapat mengonfigurasi crawler untuk menggunakan kredensyal Lake Formation untuk mengakses penyimpanan data Amazon S3 atau tabel Katalog Data dengan lokasi Amazon S3 yang mendasarinya dalam hal yang sama atau lainnya. Akun AWS Akun AWS

 Untuk informasi tentang cara menggunakan konsol AWS Glue untuk menambahkan sebuah crawler, lihat [Mengkonfigurasi crawler](define-crawler.md). 

**Topics**
+ [Menjadwalkan crawl inkremental untuk menambahkan partisi baru](incremental-crawls.md)
+ [Menghasilkan indeks partisi](crawler-configure-partition-indexes.md)
+ [Mencegah crawler mengubah skema yang ada](crawler-schema-changes-prevent.md)
+ [Membuat skema tunggal untuk setiap jalur Amazon S3 termasuk](crawler-grouping-policy.md)
+ [Menentukan lokasi tabel dan tingkat partisi](crawler-table-level.md)
+ [Menentukan jumlah maksimum tabel yang diizinkan untuk dibuat oleh crawler](crawler-maximum-number-of-tables.md)
+ [Mengonfigurasi crawler untuk menggunakan kredenal Lake Formation](crawler-lf-integ.md)
+ [Mempercepat crawl menggunakan notifikasi acara Amazon S3](crawler-s3-event-notifications.md)

# Menjadwalkan crawl inkremental untuk menambahkan partisi baru
<a name="incremental-crawls"></a>

Anda dapat mengonfigurasi crawl tambahan Perayap AWS Glue run untuk menambahkan hanya partisi baru ke skema tabel. Saat crawler berjalan untuk pertama kalinya, crawler melakukan crawl penuh untuk memproses seluruh sumber data untuk merekam skema lengkap dan semua partisi yang ada di file. AWS Glue Data Catalog

Perayapan berikutnya setelah perayapan penuh awal akan bersifat inkremental, di mana crawler mengidentifikasi dan hanya menambahkan partisi baru yang telah diperkenalkan sejak perayapan sebelumnya. Pendekatan ini menghasilkan waktu crawl yang lebih cepat, karena crawler tidak lagi perlu memproses seluruh sumber data untuk setiap proses, tetapi hanya berfokus pada partisi baru. 

**catatan**  
Crawl inkremental tidak mendeteksi modifikasi atau penghapusan partisi yang ada. Konfigurasi ini paling cocok untuk sumber data dengan skema yang stabil. Jika perubahan skema besar satu kali terjadi, disarankan untuk sementara mengatur crawler untuk melakukan crawl penuh untuk menangkap skema baru secara akurat, dan kemudian beralih kembali ke mode crawling inkremental. 

Diagram berikut menunjukkan bahwa dengan pengaturan crawl inkremental diaktifkan, crawler hanya akan mendeteksi dan menambahkan folder yang baru ditambahkan, bulan=Maret, ke katalog.

![\[Diagram berikut menunjukkan bahwa file untuk bulan Maret telah ditambahkan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawlers-s3-folders-new.png)


Ikuti langkah-langkah berikut untuk memperbarui crawler Anda untuk melakukan crawl inkremental:

------
#### [ Konsol Manajemen AWS ]

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Crawler** di bawah **Katalog Data**.

1. Pilih crawler yang ingin Anda atur untuk dirayapi secara bertahap.

1. Pilih **Edit**.

1. Pilih **Langkah 2. Pilih sumber data dan pengklasifikasi**.

1. Pilih sumber data yang ingin dirayapi secara bertahap. 

1. Pilih **Edit**.

1. Pilih **Merayapi sub-folder baru hanya** di bawah **Perayap berikutnya berjalan**.

1. Pilih **Perbarui**.

Untuk membuat jadwal crawler, lihat[Menjadwalkan crawler](schedule-crawler.md).

------
#### [ AWS CLI ]

```
aws glue update-crawler \
 --name myCrawler \
 --recrawl-policy RecrawlBehavior=CRAWL_NEW_FOLDERS_ONLY \
 --schema-change-policy UpdateBehavior=LOG,DeleteBehavior=LOG
```

------

**Catatan dan batasan**  
Bila opsi ini diaktifkan, Anda tidak dapat mengubah penyimpanan data target Amazon S3 saat mengedit crawler. Opsi ini memengaruhi pengaturan konfigurasi crawler tertentu. Bila diaktifkan, tindakan ini akan memaksa perilaku pembaruan dan menghapus perilaku crawler ke `LOG`. Ini artinya bahwa:
+ Jika menemukan objek di mana skema tidak kompatibel, crawler tidak akan menambahkan objek dalam Katalog Data, dan menambahkan detail ini sebagai log di Log. CloudWatch 
+ Ini tidak akan memperbarui objek yang dihapus di Katalog Data.

# Menghasilkan indeks partisi
<a name="crawler-configure-partition-indexes"></a>

Katalog Data mendukung pembuatan indeks partisi untuk menyediakan pencarian yang efisien untuk partisi tertentu. Untuk informasi selengkapnya, lihat [Membuat indeks partisi](https://docs.aws.amazon.com/glue/latest/dg/partition-indexes.html). AWS Glue Crawler membuat indeks partisi untuk target Amazon S3 dan Delta Lake secara default.

------
#### [ Konsol Manajemen AWS ]

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Crawler** di bawah **Katalog Data**.

1. Saat Anda menentukan crawler, opsi untuk **Membuat indeks partisi secara otomatis diaktifkan secara** default di bawah **Opsi lanjutan** pada halaman **Set output dan penjadwalan**.

   Untuk menonaktifkan opsi ini, Anda dapat membatalkan pilihan kotak centang **Buat indeks partisi secara otomatis di konsol**. 

1. Selesaikan konfigurasi crawler dan pilih **Create crawler**.

------
#### [ AWS CLI ]

 Anda juga dapat menonaktifkan opsi ini dengan menggunakan AWS CLI, mengatur `configuration` parameter `CreatePartitionIndex ` dalam. Nilai default-nya adalah betul.

```
aws glue update-crawler \
    --name myCrawler \
    --configuration '{"Version": 1.0, "CreatePartitionIndex": false }'
```

------

## Catatan penggunaan untuk indeks partisi
<a name="crawler-configure-partition-indexes-usage-notes"></a>
+ Tabel yang dibuat oleh crawler tidak memiliki variabel secara `partition_filtering.enabled` default. Untuk informasi selengkapnya, lihat [pengindeksan dan pemfilteran AWS Glue partisi](https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html#glue-best-practices-partition-index).
+ Membuat indeks partisi untuk partisi terenkripsi tidak didukung.

# Mencegah crawler mengubah skema yang ada
<a name="crawler-schema-changes-prevent"></a>

 Anda dapat mencegah Perayap AWS Glue s membuat perubahan skema apa pun pada Katalog Data saat dijalankan. Secara default, crawler memperbarui skema di Katalog Data agar sesuai dengan sumber data yang sedang dirayapi. Namun, dalam beberapa kasus, Anda mungkin ingin mencegah Crawler memodifikasi skema yang ada, terutama jika Anda telah mengubah atau membersihkan data dan tidak ingin skema asli menimpa perubahan.

 Ikuti langkah-langkah berikut untuk mengonfigurasi crawler agar tidak menimpa skema yang ada dalam definisi tabel. 

------
#### [  Konsol Manajemen AWS  ]

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Crawler** di bawah **Katalog Data**.

1. Pilih crawler dari daftar, dan pilih **Edit**.

1. Pilih **langkah 4, Atur output dan penjadwalan**.

1. Di bawah **Opsi lanjutan**, pilih **Tambahkan kolom baru saja** atau **Abaikan perubahan dan jangan perbarui tabel di Katalog Data**. 

1.  Anda juga dapat mengatur opsi konfigurasi untuk **Memperbarui semua partisi baru dan yang sudah ada dengan metadata dari tabel**. Ini menetapkan skema partisi untuk mewarisi dari tabel. 

1. Pilih **Perbarui**.

------
#### [ AWS CLI ]

Contoh berikut menunjukkan cara mengonfigurasi crawler agar tidak mengubah skema yang ada, hanya menambahkan kolom baru:

```
aws glue update-crawler \
  --name myCrawler \
  --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": {"AddOrUpdateBehavior": "MergeNewColumns"}}}'
```

Contoh berikut menunjukkan cara mengonfigurasi crawler agar tidak mengubah skema yang ada, dan tidak menambahkan kolom baru:

```
aws glue update-crawler \
  --name myCrawler \
  --schema-change-policy UpdateBehavior=LOG \
  --configuration '{"Version": 1.0, "CrawlerOutput": {"Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }}}'
```

------
#### [ API ]

Jika Anda tidak ingin skema tabel berubah sama sekali saat sebuah crawler berjalan, tetapkan kebijakan perubahan skema ke `LOG`. 

Saat Anda mengkonfigurasi crawler tersebut menggunakan API, atur parameter berikut:
+ Atur bidang `UpdateBehavior` dalam struktur `SchemaChangePolicy` ke `LOG`.
+  Atur bidang `Configuration` dengan representasi string dari objek JSON berikut dalam API crawler; sebagai contoh: 

  ```
  {
     "Version": 1.0,
     "CrawlerOutput": {
        "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }
     }
  }
  ```

------

# Membuat skema tunggal untuk setiap jalur Amazon S3 termasuk
<a name="crawler-grouping-policy"></a>

Secara default, ketika sebuah crawler mendefinisikan tabel untuk data yang disimpan di Amazon S3, ia mempertimbangkan kompatibilitas data dan kemiripan skemanya. Faktor kompatibilitas data yang dianggap termasuk apakah data mempunyai format yang sama (misalnya, JSON), mempunyai jenis kompresi yang sama (misalnya, GZIP), struktur path Amazon S3, dan atribut data lainnya. Skema kesamaan menjadi sebuah ukuran seberapa dekat keserupaan antara skema objek Amazon S3 yang terpisah.

Untuk membantu mengilustrasikan opsi ini, anggaplah Anda menentukan sebuah crawler dengan penyertaan path `s3://amzn-s3-demo-bucket/table1/`. Ketika crawler tersebut berjalan, ia menemukan dua file JSON dengan karakteristik sebagai berikut:
+ **File 1** — `S3://amzn-s3-demo-bucket/table1/year=2017/data1.json`
+ *Isi file* — `{“A”: 1, “B”: 2}`
+ *Skema* — `A:int, B:int`
+ **File 2** — `S3://amzn-s3-demo-bucket/table1/year=2018/data2.json`
+ *Isi file* — `{“C”: 3, “D”: 4}`
+ *Skema* — `C: int, D: int`

Secara default, crawler menciptakan dua tabel, bernama `year_2017` dan `year_2018` karena skema tidak cukup mirip. Namun demikian, jika pilihan **Buat skema tunggal untuk setiap path S3** dipilih, dan jika data kompatibel, maka crawler akan membuat satu tabel. Tabel ini memiliki skema `A:int,B:int,C:int,D:int` dan `partitionKey` `year:string`.

------
#### [ Konsol Manajemen AWS ]

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Crawler** di bawah **Katalog Data**.

1. Saat Anda mengonfigurasi crawler baru, di bawah **Output dan penjadwalan**, pilih opsi **Buat skema tunggal untuk setiap jalur S3** di bawah Opsi lanjutan. 

------
#### [ AWS CLI ]

Anda dapat mengkonfigurasi sebuah crawler `CombineCompatibleSchemas` ke dalam definisi tabel umum bila memungkinkan. Dengan pilihan ini, crawler tersebut masih mempertimbangkan kompatibilitas data, namun mengabaikan kesamaan skema spesifik saat mengevaluasi objek Amazon S3 di penyertaan path yang ditentukan.

Saat Anda mengonfigurasi crawler menggunakan AWS CLI, atur opsi konfigurasi berikut:

```
aws glue update-crawler \
   --name myCrawler \
   --configuration '{"Version": 1.0, "Grouping": {"TableGroupingPolicy": "CombineCompatibleSchemas" }}'
```

------
#### [ API ]

Saat Anda mengkonfigurasi crawler tersebut menggunakan API, atur opsi konfigurasi berikut:

 Atur bidang `Configuration` dengan representasi string dari objek JSON berikut dalam API crawler; sebagai contoh: 

```
{
   "Version": 1.0,
   "Grouping": {
      "TableGroupingPolicy": "CombineCompatibleSchemas" }
}
```

------

# Menentukan lokasi tabel dan tingkat partisi
<a name="crawler-table-level"></a>

Secara default, saat crawler mendefinisikan tabel untuk data yang disimpan di Amazon S3, crawler mencoba menggabungkan skema bersama-sama, dan membuat tabel tingkat atas (). `year=2019` Dalam beberapa kasus, Anda mungkin mengharapkan sebuah crawler membuat tabel untuk folder `month=Jan` namun crawler membuat partisi karena folder saudara (`month=Mar`) digabung ke dalam tabel yang sama.

Opsi crawler tingkat tabel memberikan fleksibilitas untuk memberitahu crawler di mana tabel berada, dan bagaimana Anda ingin membuat partisi. Bila Anda menentukan sebuah **Tingkat tabel**, tabel tersebut dibuat pada tingkat absolut dari bucket Amazon S3.

![\[Pengelompokan crawler dalam grup dengan tingkat tabel yang ditentukan sebagai tingkat 2.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-table-level1.jpg)


 Saat mengkonfigurasi crawler di konsol, Anda dapat menentukan nilai untuk opsi crawler **Tingkat tabel**. Nilai-nya harus bilangan bulat positif yang menunjukkan lokasi tabel (tingkat absolut dalam set data). Tingkat untuk folder tingkat atas adalah 1. Misalnya, untuk path `mydataset/year/month/day/hour`, jika tingkat diatur ke 3, maka tabel dibuat di lokasi `mydataset/year/month`. 

------
#### [ Konsol Manajemen AWS ]

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Crawler** di bawah **Katalog Data**.

1. Saat Anda mengonfigurasi crawler, di bawah **Output dan penjadwalan**, pilih **Tingkat tabel** di bawah Opsi **lanjutan**.

![\[Menentukan sebuah tingkat tabel dalam konfigurasi crawler.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-configuration-console.png)


------
#### [ AWS CLI ]

Saat Anda mengonfigurasi crawler menggunakan AWS CLI, atur `configuration` parameter seperti yang ditunjukkan pada kode contoh: 

```
aws glue update-crawler \
  --name myCrawler \
  --configuration '{"Version": 1.0, "Grouping": { "TableLevelConfiguration": 2 }}'
```

------
#### [ API ]

Saat Anda mengonfigurasi crawler menggunakan API, atur `Configuration` bidang dengan representasi string dari objek JSON berikut; misalnya: 

```
configuration = jsonencode(
{
   "Version": 1.0,
   "Grouping": {
            TableLevelConfiguration = 2  
        }
})
```

------
#### [ CloudFormation ]

Dalam contoh ini, Anda mengatur opsi **Table level** yang tersedia di konsol dalam CloudFormation template Anda:

```
"Configuration": "{
    \"Version\":1.0,
    \"Grouping\":{\"TableLevelConfiguration\":2}
}"
```

------

# Menentukan jumlah maksimum tabel yang diizinkan untuk dibuat oleh crawler
<a name="crawler-maximum-number-of-tables"></a>

Anda dapat secara opsional menentukan jumlah maksimum tabel yang diizinkan untuk dibuat oleh crawler dengan menentukan `TableThreshold` melalui konsol atau. AWS Glue AWS CLI Jika tabel yang terdeteksi oleh crawler selama perayapan lebih besar dari nilai input ini, crawl gagal dan tidak ada data yang ditulis ke Katalog Data.

Parameter ini berguna ketika tabel yang akan dideteksi dan dibuat oleh crawler jauh lebih besar dari yang Anda harapkan. Mungkin ada beberapa alasan untuk ini, seperti:
+ Saat menggunakan AWS Glue pekerjaan untuk mengisi lokasi Amazon S3 Anda, Anda dapat berakhir dengan file kosong pada tingkat yang sama dengan folder. Dalam kasus seperti itu ketika Anda menjalankan crawler di lokasi Amazon S3 ini, crawler membuat beberapa tabel karena file dan folder hadir pada tingkat yang sama.
+ Jika Anda tidak mengonfigurasi, `"TableGroupingPolicy": "CombineCompatibleSchemas"` Anda mungkin berakhir dengan lebih banyak tabel dari yang diharapkan. 

Anda menentukan `TableThreshold` sebagai nilai integer lebih besar dari 0. Nilai ini dikonfigurasi berdasarkan per crawler. Artinya, untuk setiap crawl nilai ini dipertimbangkan. Misalnya: crawler memiliki `TableThreshold` nilai yang ditetapkan sebagai 5. Di setiap crawl AWS Glue membandingkan jumlah tabel yang terdeteksi dengan nilai ambang tabel ini (5) dan jika jumlah tabel yang terdeteksi kurang dari 5, AWS Glue tulis tabel ke Katalog Data dan jika tidak, crawl gagal tanpa menulis ke Katalog Data.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengatur `TableThreshold` menggunakan Konsol Manajemen AWS:**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Saat mengonfigurasi crawler, di **Output dan penjadwalan**, atur **ambang batas tabel Maksimum** ke jumlah tabel yang diizinkan dihasilkan oleh crawler.  
![\[Bagian Output dan penjadwalan AWS konsol yang menunjukkan parameter ambang batas tabel maksimum.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-max-tables.png)

------
#### [ AWS CLI ]

Untuk mengatur `TableThreshold` menggunakan AWS CLI:

```
aws glue update-crawler \
    --name myCrawler \
    --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": { "TableThreshold": 5 }}}'
```

------
#### [ API ]

Untuk mengatur `TableThreshold` menggunakan API:

```
"{"Version":1.0,
"CrawlerOutput":
{"Tables":{"AddOrUpdateBehavior":"MergeNewColumns",
"TableThreshold":5}}}";
```

------

Pesan galat dicatat untuk membantu Anda mengidentifikasi jalur tabel dan membersihkan data Anda. Contoh log di akun Anda jika crawler gagal karena jumlah tabel lebih besar dari nilai ambang tabel yang disediakan:

```
Table Threshold value = 28, Tables detected - 29
```

Di CloudWatch, kami mencatat semua lokasi tabel yang terdeteksi sebagai pesan INFO. Kesalahan dicatat sebagai alasan kegagalan.

```
ERROR com.amazonaws.services.glue.customerLogs.CustomerLogService - CustomerLogService received CustomerFacingException with message 
The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog.
com.amazonaws.services.glue.exceptions.CustomerFacingInternalException: The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. 
Failing crawler without writing to Data Catalog.
```

# Mengonfigurasi crawler untuk menggunakan kredenal Lake Formation
<a name="crawler-lf-integ"></a>

Anda dapat mengonfigurasi crawler untuk menggunakan AWS Lake Formation kredensional untuk mengakses penyimpanan data Amazon S3 atau tabel Katalog Data dengan lokasi Amazon S3 yang mendasarinya dalam hal yang sama atau lainnya. Akun AWS Akun AWS Anda dapat mengonfigurasi tabel Katalog Data yang ada sebagai target crawler, jika crawler dan tabel Katalog Data berada di akun yang sama. Saat ini, hanya satu target katalog dengan satu tabel katalog yang diizinkan saat menggunakan tabel Katalog Data sebagai target crawler.

**catatan**  
Saat Anda mendefinisikan tabel Katalog Data sebagai target crawler, pastikan lokasi dasar tabel Katalog Data adalah lokasi Amazon S3. Crawler yang menggunakan kredenal Lake Formation hanya mendukung target Katalog Data dengan lokasi Amazon S3 yang mendasarinya.

## Penyiapan diperlukan saat crawler dan lokasi Amazon S3 terdaftar atau tabel Katalog Data berada di akun yang sama (perayapan dalam akun)
<a name="in-account-crawling"></a>

Untuk mengizinkan crawler mengakses penyimpanan data atau tabel Katalog Data dengan menggunakan kredenal Lake Formation, Anda perlu mendaftarkan lokasi data dengan Lake Formation. Selain itu, peran IAM crawler harus memiliki izin untuk membaca data dari tujuan tempat bucket Amazon S3 terdaftar.

Anda dapat menyelesaikan langkah-langkah konfigurasi berikut menggunakan Konsol Manajemen AWS or AWS Command Line Interface (AWS CLI).

------
#### [ Konsol Manajemen AWS ]

1. Sebelum mengonfigurasi crawler untuk mengakses sumber crawler, daftarkan lokasi data penyimpanan data atau Katalog Data dengan Lake Formation. Di konsol Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), daftarkan lokasi Amazon S3 sebagai lokasi root danau data Anda di Akun AWS tempat crawler ditentukan. Untuk informasi selengkapnya, lihat [Mendaftarkan lokasi Amazon S3](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html).

1. Berikan izin **lokasi Data** ke peran IAM yang digunakan untuk menjalankan crawler sehingga crawler dapat membaca data dari tujuan di Lake Formation. Untuk informasi selengkapnya, lihat [Memberikan izin lokasi data (akun yang sama)](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html).

1. Berikan izin akses peran crawler (`Create`) ke database, yang ditetapkan sebagai database keluaran. Untuk informasi selengkapnya, lihat [Memberikan izin database menggunakan konsol Lake Formation dan metode sumber daya bernama](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html).

1. Di konsol IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)), buat peran IAM untuk crawler. Tambahkan `lakeformation:GetDataAccess` kebijakan ke peran.

1. Di AWS Glue console ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)), saat mengonfigurasi crawler, pilih opsi **Gunakan kredenal Lake Formation untuk merayapi sumber data Amazon S3**.
**catatan**  
Bidang accountID bersifat opsional untuk crawling dalam akun.

------
#### [ AWS CLI ]

```
aws glue --profile demo create-crawler --debug --cli-input-json '{
    "Name": "prod-test-crawler",
    "Role": "arn:aws:iam::111122223333:role/service-role/AWSGlueServiceRole-prod-test-run-role",
    "DatabaseName": "prod-run-db",
    "Description": "",
    "Targets": {
    "S3Targets":[
                {
                 "Path": "s3://amzn-s3-demo-bucket"
                }
                ]
                },
   "SchemaChangePolicy": {
      "UpdateBehavior": "LOG",
      "DeleteBehavior": "LOG"
  },
  "RecrawlPolicy": {
    "RecrawlBehavior": "CRAWL_EVERYTHING"
  },
  "LineageConfiguration": {
    "CrawlerLineageSettings": "DISABLE"
  },
  "LakeFormationConfiguration": {
    "UseLakeFormationCredentials": true,
    "AccountId": "111122223333"
  },
  "Configuration": {
           "Version": 1.0,
           "CrawlerOutput": {
             "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" },
             "Tables": {"AddOrUpdateBehavior": "MergeNewColumns" }
           },
           "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" }
         },
  "CrawlerSecurityConfiguration": "",
  "Tags": {
    "KeyName": ""
  }
}'
```

------

# Penyiapan diperlukan saat crawler dan lokasi Amazon S3 terdaftar berada di akun yang berbeda (crawling lintas akun)
<a name="cross-account-crawling"></a>

Untuk mengizinkan crawler mengakses penyimpanan data di akun lain menggunakan kredensil Lake Formation, Anda harus terlebih dahulu mendaftarkan lokasi data Amazon S3 dengan Lake Formation. Kemudian, Anda memberikan izin lokasi data ke akun crawler dengan mengambil langkah-langkah berikut.

Anda dapat menyelesaikan langkah-langkah berikut menggunakan Konsol Manajemen AWS atau AWS CLI.

------
#### [ Konsol Manajemen AWS ]

1. Di akun tempat lokasi Amazon S3 terdaftar (akun B):

   1. Daftarkan jalur Amazon S3 dengan Lake Formation. Untuk informasi selengkapnya, lihat [Mendaftarkan lokasi Amazon S3](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html).

   1.  Berikan izin **lokasi Data** ke akun (akun A) tempat crawler akan dijalankan. Untuk informasi selengkapnya, lihat [Memberikan izin lokasi data](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html). 

   1. Buat database kosong di Lake Formation dengan lokasi yang mendasarinya sebagai lokasi target Amazon S3. Untuk informasi selengkapnya, lihat [Membuat database](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-database.html).

   1. Berikan akun A (akun tempat crawler akan dijalankan) akses ke database yang Anda buat pada langkah sebelumnya. Untuk informasi selengkapnya, lihat [Memberikan izin database](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html). 

1. Di akun tempat crawler dibuat dan akan dijalankan (akun A):

   1.  Menggunakan AWS RAM konsol, terima database yang dibagikan dari akun eksternal (akun B). Untuk informasi selengkapnya, lihat [Menerima undangan berbagi sumber daya dari AWS Resource Access Manager](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html). 

   1.  Buat peran IAM untuk crawler. Tambahkan `lakeformation:GetDataAccess` kebijakan ke peran.

   1.  Di konsol Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), berikan izin **lokasi Data** pada lokasi Amazon S3 target ke peran IAM yang digunakan untuk menjalankan crawler sehingga crawler dapat membaca data dari tujuan di Lake Formation. Untuk informasi selengkapnya, lihat [Memberikan izin lokasi data](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html). 

   1.  Buat tautan sumber daya pada database bersama. Untuk informasi selengkapnya, lihat [Membuat tautan sumber daya](https://docs.aws.amazon.com/lake-formation/latest/dg/create-resource-link-database.html). 

   1.  Berikan izin akses peran crawler (`Create`) pada database bersama dan (`Describe`) tautan sumber daya. Tautan sumber daya ditentukan dalam output untuk crawler. 

   1.  Di AWS Glue console ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)), saat mengonfigurasi crawler, pilih opsi **Gunakan kredenal Lake Formation untuk merayapi sumber data Amazon S3**.

      Untuk perayapan lintas akun, tentukan Akun AWS ID tempat lokasi Amazon S3 target terdaftar di Lake Formation. Untuk perayapan dalam akun, bidang accountID bersifat opsional.   
![\[IAM role selection and Lake Formation configuration options for Perayap AWS Glue security settings.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/cross-account-crawler.png)

------
#### [ AWS CLI ]

```
aws glue --profile demo create-crawler --debug --cli-input-json '{
    "Name": "prod-test-crawler",
    "Role": "arn:aws:iam::111122223333:role/service-role/AWSGlueServiceRole-prod-test-run-role",
    "DatabaseName": "prod-run-db",
    "Description": "",
    "Targets": {
    "S3Targets":[
                {
                 "Path": "s3://amzn-s3-demo-bucket"
                }
                ]
                },
   "SchemaChangePolicy": {
      "UpdateBehavior": "LOG",
      "DeleteBehavior": "LOG"
  },
  "RecrawlPolicy": {
    "RecrawlBehavior": "CRAWL_EVERYTHING"
  },
  "LineageConfiguration": {
    "CrawlerLineageSettings": "DISABLE"
  },
  "LakeFormationConfiguration": {
    "UseLakeFormationCredentials": true,
    "AccountId": "111111111111"
  },
  "Configuration": {
           "Version": 1.0,
           "CrawlerOutput": {
             "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" },
             "Tables": {"AddOrUpdateBehavior": "MergeNewColumns" }
           },
           "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" }
         },
  "CrawlerSecurityConfiguration": "",
  "Tags": {
    "KeyName": ""
  }
}'
```

------

**catatan**  
Crawler yang menggunakan kredensi Lake Formation hanya didukung untuk target Amazon S3 dan Katalog Data.
Untuk target yang menggunakan penjual kredensi Lake Formation, lokasi Amazon S3 yang mendasarinya harus termasuk dalam ember yang sama. Misalnya, pelanggan dapat menggunakan beberapa target (s3://amzn-s3-demo-bucket1/folder1, s3://amzn-s3-demo-bucket1/folder2) selama semua lokasi target berada di bawah ember yang sama (amzn-s3-demo-bucket1). Menentukan bucket yang berbeda (s3://amzn-s3-demo-bucket1/folder1, s3://amzn-s3-demo-bucket2/folder2) tidak diperbolehkan.
Saat ini untuk crawler target Katalog Data, hanya satu target katalog dengan satu tabel katalog yang diizinkan.

# Mempercepat crawl menggunakan notifikasi acara Amazon S3
<a name="crawler-s3-event-notifications"></a>

Alih-alih mencantumkan objek dari target Amazon S3 atau Katalog Data, Anda dapat mengonfigurasi crawler untuk menggunakan peristiwa Amazon S3 untuk menemukan perubahan apa pun. Fitur ini meningkatkan waktu rawl ulang dengan menggunakan peristiwa Amazon S3 untuk mengidentifikasi perubahan antara dua crawl dengan mencantumkan semua file dari subfolder yang memicu peristiwa alih-alih mencantumkan target Amazon S3 atau Katalog Data lengkap.

Crawl pertama mencantumkan semua objek Amazon S3 dari target. Setelah crawl pertama berhasil, Anda dapat memilih untuk meng-rawl ulang secara manual atau pada jadwal yang ditetapkan. Crawler hanya akan mencantumkan objek dari peristiwa tersebut alih-alih mencantumkan semua objek.

Jika targetnya adalah tabel Katalog Data, crawler memperbarui tabel yang ada di Katalog Data dengan perubahan (misalnya, partisi tambahan dalam tabel).

Keuntungan pindah ke crawler berbasis acara Amazon S3 adalah:
+ Recrawl lebih cepat karena daftar semua objek dari target tidak diperlukan, alih-alih daftar folder tertentu dilakukan di mana objek ditambahkan atau dihapus.
+ Pengurangan biaya crawl keseluruhan karena daftar folder tertentu dilakukan di mana objek ditambahkan atau dihapus.

Crawl peristiwa Amazon S3 berjalan dengan menggunakan peristiwa Amazon S3 dari antrean SQS berdasarkan jadwal crawler. Tidak akan ada biaya jika tidak ada acara dalam antrian. Acara Amazon S3 dapat dikonfigurasi untuk langsung masuk ke antrian SQS atau dalam kasus di mana beberapa konsumen memerlukan acara yang sama, kombinasi SNS dan SQS. Untuk informasi selengkapnya, lihat [Menyiapkan akun Anda untuk pemberitahuan acara Amazon S3](#crawler-s3-event-notifications-setup).

Setelah membuat dan mengonfigurasi crawler dalam mode peristiwa, crawl pertama berjalan dalam mode daftar dengan melakukan daftar lengkap target Amazon S3 atau Katalog Data. Log berikut mengonfirmasi pengoperasian crawl dengan menggunakan peristiwa Amazon S3 setelah perayapan pertama yang berhasil: “Perayapan berjalan dengan menggunakan peristiwa Amazon S3.”

Setelah membuat crawl peristiwa Amazon S3 dan memperbarui properti crawler yang dapat memengaruhi perayapan, crawl beroperasi dalam mode daftar dan log berikut ditambahkan: “Perayapan tidak berjalan dalam mode peristiwa S3”.

**catatan**  
Jumlah maksimum pesan yang akan dikonsumsi adalah 100.000 pesan per crawl.

## Pertimbangan dan batasan
<a name="s3event-crawler-limitations"></a>

Pertimbangan dan batasan berikut berlaku saat Anda mengonfigurasi crawler untuk menggunakan notifikasi peristiwa Amazon S3 untuk menemukan perubahan apa pun. 
+  **Perilaku penting dengan partisi yang dihapus** 

  Saat menggunakan crawler peristiwa Amazon S3 dengan tabel Katalog Data:
  +  Jika Anda menghapus partisi menggunakan panggilan `DeletePartition` API, Anda juga harus menghapus semua objek S3 di bawah partisi itu, dan memilih **Semua peristiwa penghapusan objek** saat Anda mengonfigurasi pemberitahuan acara S3 Anda. Jika peristiwa penghapusan tidak dikonfigurasi, crawler membuat ulang partisi yang dihapus selama proses berikutnya. 
+ Hanya satu target yang didukung oleh crawler, baik untuk target Amazon S3 atau Katalog Data.
+ SQS pada VPC pribadi tidak didukung.
+ Pengambilan sampel Amazon S3 tidak didukung.
+ Target crawler harus berupa folder untuk target Amazon S3, atau satu atau AWS Glue beberapa tabel Katalog Data untuk target Katalog Data.
+ Wildcard jalur 'semuanya' tidak didukung: s3: //%
+ Untuk target Katalog Data, semua tabel katalog harus mengarah ke bucket Amazon S3 yang sama untuk mode acara Amazon S3.
+ Untuk target Katalog Data, tabel katalog tidak boleh mengarah ke lokasi Amazon S3 dalam format Delta Lake (berisi folder \$1symlink, atau memeriksa tabel katalog). `InputFormat`

**Topics**
+ [Pertimbangan dan batasan](#s3event-crawler-limitations)
+ [Menyiapkan akun Anda untuk pemberitahuan acara Amazon S3](#crawler-s3-event-notifications-setup)
+ [Menyiapkan crawler untuk notifikasi peristiwa Amazon S3 untuk target Amazon S3](crawler-s3-event-notifications-setup-console-s3-target.md)
+ [Menyiapkan crawler untuk pemberitahuan peristiwa Amazon S3 untuk tabel Katalog Data](crawler-s3-event-notifications-setup-console-catalog-target.md)

## Menyiapkan akun Anda untuk pemberitahuan acara Amazon S3
<a name="crawler-s3-event-notifications-setup"></a>

Selesaikan tugas pengaturan berikut. Perhatikan nilai dalam tanda kurung merujuk pengaturan yang dapat dikonfigurasi dari skrip.

1. Anda perlu menyiapkan notifikasi acara untuk bucket Amazon S3 Anda.

   Untuk informasi selengkapnya, lihat [pemberitahuan acara Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html).

1. Untuk menggunakan crawler berbasis peristiwa Amazon S3, Anda harus mengaktifkan pemberitahuan peristiwa di bucket Amazon S3 dengan peristiwa yang difilter dari awalan yang sama dengan target S3 dan penyimpanan di SQS. Anda dapat mengatur SQS dan pemberitahuan acara melalui konsol dengan mengikuti langkah-langkah di [Walkthrough: Mengonfigurasi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ways-to-add-notification-config-to-bucket.html) bucket untuk notifikasi.

1. Tambahkan kebijakan SQS berikut ke peran yang digunakan oleh crawler. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
           "sqs:DeleteMessage",
           "sqs:GetQueueUrl",
           "sqs:ListDeadLetterSourceQueues",
           "sqs:ReceiveMessage",
           "sqs:GetQueueAttributes",
           "sqs:ListQueueTags",
           "sqs:SetQueueAttributes",
           "sqs:PurgeQueue"
         ],
         "Resource": "arn:aws:sqs:us-east-1:111122223333:cfn-sqs-queue"
       }
     ]
   }
   ```

------

# Menyiapkan crawler untuk notifikasi peristiwa Amazon S3 untuk target Amazon S3
<a name="crawler-s3-event-notifications-setup-console-s3-target"></a>

Ikuti langkah-langkah berikut untuk menyiapkan crawler untuk notifikasi peristiwa Amazon S3 untuk target Amazon S3 menggunakan atau. Konsol Manajemen AWS AWS CLI

------
#### [ Konsol Manajemen AWS ]

1. Masuk ke Konsol Manajemen AWS dan buka GuardDuty konsol di [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/).

1.  Tetapkan properti crawler Anda. Untuk informasi selengkapnya, lihat [Menyetel Opsi Konfigurasi Crawler di AWS Glue konsol](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-configure-changes-console). 

1.  Di bagian **Konfigurasi sumber data**, Anda ditanya *Apakah data Anda sudah dipetakan ke AWS Glue tabel?* 

    Secara default **Belum** dipilih. Biarkan ini sebagai default karena Anda menggunakan sumber data Amazon S3 dan data belum dipetakan ke tabel. AWS Glue 

1.  Di bagian **Sumber data**, pilih **Tambahkan sumber data**.   
![\[Data source configuration interface with options to select or add data sources for crawling.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-s3-event-console1.png)

1.  Dalam modal **Tambah sumber data**, konfigurasikan sumber data Amazon S3: 
   +  **Sumber data**: Secara default, Amazon S3 dipilih. 
   +  **Koneksi jaringan** (Opsional): Pilih **Tambahkan koneksi baru**. 
   +  **Lokasi data Amazon S3**: Secara default, **Di akun ini dipilih**. 
   +  Jalur **Amazon S3: Tentukan jalur** Amazon S3 tempat folder dan file dirayapi. 
   +  **Perayap berikutnya berjalan**: Pilih **Crawl berdasarkan peristiwa** untuk menggunakan notifikasi peristiwa Amazon S3 untuk crawler Anda. 
   +  **Sertakan SQS ARN**: Tentukan parameter penyimpanan data termasuk SQS ARN yang valid. (Misalnya,`arn:aws:sqs:region:account:sqs`). 
   +  **Sertakan SQS ARN huruf mati** (Opsional): Tentukan SQS ARN surat mati Amazon yang valid. (Misalnya,`arn:aws:sqs:region:account:deadLetterQueue`). 
   +  Pilih **Tambahkan sumber data Amazon S3**.   
![\[Add data source dialog for S3, showing options for network connection and crawl settings.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-s3-event-console2.png)

------
#### [ AWS CLI ]

 Berikut ini adalah contoh AWS CLI panggilan Amazon S3 untuk mengonfigurasi crawler agar menggunakan notifikasi peristiwa guna meng-crawl bucket target Amazon S3. 

```
Create Crawler:
aws glue update-crawler \
    --name myCrawler \
    --recrawl-policy RecrawlBehavior=CRAWL_EVENT_MODE \
    --schema-change-policy UpdateBehavior=UPDATE_IN_DATABASE,DeleteBehavior=LOG
    --targets '{"S3Targets":[{"Path":"s3://amzn-s3-demo-bucket/", "EventQueueArn": "arn:aws:sqs:us-east-1:012345678910:MyQueue"}]}'
```

------

# Menyiapkan crawler untuk pemberitahuan peristiwa Amazon S3 untuk tabel Katalog Data
<a name="crawler-s3-event-notifications-setup-console-catalog-target"></a>

Jika Anda memiliki tabel Katalog Data, siapkan crawler untuk notifikasi peristiwa Amazon S3 menggunakan AWS Glue konsol:

1.  Tetapkan properti crawler Anda. Untuk informasi selengkapnya, lihat [Menyetel Opsi Konfigurasi Crawler di AWS Glue konsol](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-configure-changes-console). 

1.  Di bagian **Konfigurasi sumber data**, Anda ditanya *Apakah data Anda sudah dipetakan ke AWS Glue tabel?* 

    Pilih **Ya** untuk memilih tabel yang ada dari Katalog Data Anda sebagai sumber data Anda. 

1.  Di bagian **Glue tables**, pilih **Add tables**.   
![\[Data source configuration interface with options to select existing Glue tables or add new ones.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-s3-event-console1-cat.png)

1.  Dalam modal **Tambahkan tabel**, konfigurasikan database dan tabel: 
   +  **Koneksi jaringan** (Opsional): Pilih **Tambahkan koneksi baru**. 
   +  **Database**: Pilih database di Katalog Data. 
   +  **Tabel**: Pilih satu atau beberapa tabel dari database tersebut di Katalog Data. 
   +  **Perayap berikutnya berjalan**: Pilih **Crawl berdasarkan peristiwa** untuk menggunakan notifikasi peristiwa Amazon S3 untuk crawler Anda. 
   +  **Sertakan SQS ARN**: Tentukan parameter penyimpanan data termasuk SQS ARN yang valid. (Misalnya,`arn:aws:sqs:region:account:sqs`). 
   +  **Sertakan SQS ARN huruf mati** (Opsional): Tentukan SQS ARN surat mati Amazon yang valid. (Misalnya,`arn:aws:sqs:region:account:deadLetterQueue`). 
   +  Pilih **Konfirmasi**.   
![\[Add Glue tables dialog with network, database, tables, and crawler options.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/crawler-s3-event-console2-cat.png)