

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

# Menambahkan AWS Glue koneksi
<a name="console-connections"></a>

 Anda dapat terhubung ke sumber data di AWS Glue untuk Spark secara terprogram. Untuk informasi selengkapnya, lihat [Jenis dan opsi koneksi untuk ETL di AWS Glue untuk Spark](aws-glue-programming-etl-connect.md) 

Anda juga dapat menggunakan AWS Glue konsol untuk menambah, mengedit, menghapus, dan menguji koneksi. Untuk informasi tentang AWS Glue koneksi, lihat[Menghubungkan ke data](glue-connections.md).

**Topics**
+ [Menghubungkan ke Adobe Analytics](connecting-to-adobe-analytics.md)
+ [Menghubungkan ke Adobe Marketo Engage](connecting-to-data-adobe-marketo-engage.md)
+ [Menghubungkan ke Amazon Redshift di AWS Glue Studio](connecting-to-data-redshift.md)
+ [Menghubungkan ke Asana](connecting-to-asana.md)
+ [Menghubungkan ke Azure Cosmos DB di AWS Glue Studio](connecting-to-data-azurecosmos.md)
+ [Menghubungkan ke Azure SQL di AWS Glue Studio](connecting-to-data-azuresql.md)
+ [Menghubungkan ke Blackbaud Raiser's Edge NXT](connecting-to-data-blackbaud.md)
+ [Menghubungkan ke CircleCI](connecting-to-data-circleci.md)
+ [Menghubungkan ke Datadog](connecting-to-datadog.md)
+ [Menghubungkan ke Docusign Monitor](connecting-to-data-docusign-monitor.md)
+ [Menghubungkan ke Domo](connecting-to-data-domo.md)
+ [Menghubungkan ke Dynatrace](connecting-to-data-dynatrace.md)
+ [Menghubungkan ke Iklan Facebook](connecting-to-data-facebook-ads.md)
+ [Menghubungkan ke Wawasan Halaman Facebook](connecting-to-data-facebook-page-insights.md)
+ [Menghubungkan ke Freshdesk](connecting-to-data-freshdesk.md)
+ [Menghubungkan ke Freshsales](connecting-to-data-freshsales.md)
+ [Menyambung ke Google Ads](connecting-to-googleads.md)
+ [Menghubungkan ke Google Analytics 4](connecting-to-googleanalytics.md)
+ [Menghubungkan ke Google BigQuery di AWS Glue Studio](connecting-to-data-bigquery.md)
+ [Menghubungkan ke Google Search Console](connecting-to-data-google-search-console.md)
+ [Menghubungkan ke Google Sheets](connecting-to-googlesheets.md)
+ [Menghubungkan ke HubSpot](connecting-to-data-hubspot.md)
+ [Menghubungkan ke Iklan Instagram](connecting-to-data-instagram-ads.md)
+ [Menghubungkan ke Interkom di AWS Glue Studio](connecting-to-data-intercom.md)
+ [Menghubungkan ke Jira Cloud](connecting-to-data-jira-cloud.md)
+ [Menghubungkan ke Kustomer](connecting-to-data-kustomer.md)
+ [Menghubungkan ke LinkedIn](connecting-to-linkedin.md)
+ [Menghubungkan ke Mailchimp](connecting-to-mailchimp.md)
+ [Menghubungkan ke Microsoft Dynamics 365 CRM](connecting-to-microsoft-dynamics-365.md)
+ [Menghubungkan ke Microsoft Teams](connecting-to-microsoft-teams.md)
+ [Menghubungkan ke Mixpanel](connecting-to-mixpanel.md)
+ [Menghubungkan ke Senin](connecting-to-monday.md)
+ [Menghubungkan ke MongoDB di AWS Glue Studio](connecting-to-data-mongodb.md)
+ [Menghubungkan ke Oracle NetSuite](connecting-to-data-oracle-netsuite.md)
+ [Menghubungkan ke OpenSearch Layanan di AWS Glue Studio](connecting-to-data-opensearch.md)
+ [Menghubungkan ke Okta](connecting-to-okta.md)
+ [Menghubungkan ke PayPal](connecting-to-data-paypal.md)
+ [Menghubungkan ke Pendo](connecting-to-pendo.md)
+ [Menghubungkan ke Pipedrive](connecting-to-pipedrive.md)
+ [Menghubungkan ke Productboard](connecting-to-productboard.md)
+ [Menghubungkan ke QuickBooks](connecting-to-data-quickbooks.md)
+ [Menghubungkan ke REST API](connecting-to-data-rest-api.md)
+ [Menghubungkan ke Salesforce](connecting-to-data-salesforce.md)
+ [Menghubungkan ke Salesforce Marketing Cloud](connecting-to-data-salesforce-marketing-cloud.md)
+ [Menghubungkan ke Salesforce Commerce Cloud](connecting-to-salesforce-commerce-cloud.md)
+ [Menghubungkan ke Keterlibatan Akun Cloud Pemasaran Salesforce](connecting-to-data-salesforce-marketing-cloud-account-engagement.md)
+ [Menyambung ke SAP HANA di AWS Glue Studio](connecting-to-data-saphana.md)
+ [Menghubungkan ke SAP OData](connecting-to-data-sap-odata.md)
+ [Menghubungkan ke SendGrid](connecting-to-data-sendgrid.md)
+ [Menghubungkan ke ServiceNow](connecting-to-data-servicenow.md)
+ [Menghubungkan ke Slack di AWS Glue Studio](connecting-to-data-slack.md)
+ [Menghubungkan ke Smartsheet](connecting-to-smartsheet.md)
+ [Menghubungkan ke Iklan Snapchat di AWS Glue Studio](connecting-to-data-snapchat-ads.md)
+ [Menghubungkan ke Snowflake di AWS Glue Studio](connecting-to-data-snowflake.md)
+ [Menghubungkan ke Stripe di AWS Glue Studio](connecting-to-data-stripe.md)
+ [Menghubungkan ke Teradata Vantage di AWS Glue Studio](connecting-to-data-teradata.md)
+ [Menghubungkan ke Twilio](connecting-to-data-twilio.md)
+ [Menghubungkan ke Vertica di AWS Glue Studio](connecting-to-data-vertica.md)
+ [Menghubungkan ke WooCommerce](connecting-to-data-woocommerce.md)
+ [Menyambung ke Zendesk](connecting-to-data-zendesk.md)
+ [Menyambung ke Zoho CRM](connecting-to-data-zoho-crm.md)
+ [Menghubungkan ke Rapat Zoom](connecting-to-data-zoom-meetings.md)
+ [Menambahkan koneksi JDBC menggunakan driver JDBC Anda sendiri](console-connections-jdbc-drivers.md)

# Menghubungkan ke Adobe Analytics
<a name="connecting-to-adobe-analytics"></a>

Adobe Analytics adalah platform analisis data yang kuat yang mengumpulkan data dari pengalaman digital multi-saluran yang mendukung perjalanan pelanggan dan menyediakan alat untuk menganalisis data. Ini adalah platform yang biasa digunakan oleh pemasar dan analis bisnis untuk tujuan analisis bisnis. Jika Anda pengguna Adobe Analytics, Anda dapat terhubung AWS Glue ke akun Adobe Analytics Anda. Kemudian, Anda dapat menggunakan Adobe Analytics sebagai sumber data dalam Pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Adobe Analytics dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Adobe Analytics](adobe-analytics-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](adobeanalytics-configuring-iam-permissions.md)
+ [Mengkonfigurasi Adobe Analytics](adobeanalytics-configuring.md)
+ [Mengkonfigurasi koneksi Adobe Analytics](adobeanalytics-configuring-connections.md)
+ [Membaca dari entitas Adobe Analytics](adobeanalytics-reading-from-entities.md)
+ [Opsi koneksi Adobe Analytics](adobeanalytics-connection-options.md)
+ [Membuat akun Adobe Analytics](adobeanalytics-create-account.md)
+ [Batasan](adobeanalytics-connector-limitations.md)

# AWS Glue dukungan untuk Adobe Analytics
<a name="adobe-analytics-support"></a>

AWS Glue mendukung Adobe Analytics sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Adobe Analytics.

**Didukung sebagai target?**  
Tidak.

**Versi Adobe Analytics API yang didukung**  
 v2.0 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="adobeanalytics-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Adobe Analytics
<a name="adobeanalytics-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Adobe Analytics, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="adobeanalytics-configuring-min-requirements"></a>
+ Anda memiliki akun Adobe Analytics dengan email dan kata sandi. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Adobe Analytics](adobeanalytics-create-account.md). 
+  Akun Adobe Analytics Anda diaktifkan untuk akses API. Akses API diaktifkan secara default untuk edisi Select, Prime, dan Ultimate. 

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Adobe Analytics Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Adobe Analytics.

# Mengkonfigurasi koneksi Adobe Analytics
<a name="adobeanalytics-configuring-connections"></a>

 Adobe Analytics mendukung jenis `AUTHORIZATION_CODE` hibah untuk`OAuth2`.

Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Pengguna dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Adobe Analytics dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Adobe Analytics untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

 [Untuk dokumentasi Adobe Analytics publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur AUTHORIZATION\$1CODE, lihat Adobe Analytics. APIs](https://adobedocs.github.io/analytics-2.0-apis/) 

Untuk mengonfigurasi koneksi Adobe Analytics:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 

   Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Adobe Analytics.

   1. Berikan Adobe Analytics yang ingin Anda sambungkan. `x_api_key, instanceUrl`

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Adobe Analytics
<a name="adobeanalytics-reading-from-entities"></a>

 **Prasyarat** 

Objek Adobe Analytics yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Anotasi | Ya | Ya | Ya | Ya | Tidak | 
| Metrik yang Dihitung | Ya | Ya | Ya | Ya | Tidak | 
| Fungsi Metrik Terhitung | Ya | Tidak | Tidak | Ya | Tidak | 
| Saham Metadata Komponen | Ya | Ya | Tidak | Ya | Tidak | 
| Rentang Tanggal | Ya | Ya | Tidak | Ya | Tidak | 
| Dimensi | Ya | Tidak | Tidak | Ya | Tidak | 
| Metrik-metrik | Ya | Tidak | Tidak | Ya | Tidak | 
| Proyek | Ya | Tidak | Tidak | Ya | Tidak | 
| Laporan Item Teratas | Ya | Ya | Tidak | Ya | Tidak | 
| Segmen | Ya | Ya | Ya | Ya | Tidak | 
| Log Penggunaan | Ya | Ya | Tidak | Ya | Tidak | 

 **Contoh** 

```
adobeAnalytics_read = glueContext.create_dynamic_frame.from_options( 
     connection_type="adobeanalytics", 
     connection_options={ 
        "connectionName": "connectionName", 
        "ENTITY_NAME": "annotation/ex*****", 
        "API_VERSION": "v2.0" 
 })
```

 **Entitas dan detail bidang Adobe Analytics** 
+ [Anotasi](https://adobedocs.github.io/analytics-2.0-apis/#/Annotations)
+ [Metrik yang Dihitung](https://adobedocs.github.io/analytics-2.0-apis/#/Calculated%20Metrics)
+ [Komponen Meta Data](https://adobedocs.github.io/analytics-2.0-apis/#/Component%20Meta%20Data)
+ [Rentang Tanggal](https://adobedocs.github.io/analytics-2.0-apis/#/Date%20Ranges)
+ [Dimensi](https://adobedocs.github.io/analytics-2.0-apis/#/Dimensions)
+ [Metrik-metrik](https://adobedocs.github.io/analytics-2.0-apis/#/Metrics)
+ [Proyek](https://adobedocs.github.io/analytics-2.0-apis/#/Projects)
+ [Laporan](https://adobedocs.github.io/analytics-2.0-apis/#/Reports)
+ [Segmen](https://adobedocs.github.io/analytics-2.0-apis/#/Segments)
+ [Pengguna](https://adobedocs.github.io/analytics-2.0-apis/#/Users)
+ [Log Penggunaan](https://adobedocs.github.io/analytics-2.0-apis/#/Usage%20Logs)

# Opsi koneksi Adobe Analytics
<a name="adobeanalytics-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Adobe Analytics:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Adobe Analytics. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Adobe Analytics Rest API yang ingin Anda gunakan. Misalnya: v2.0. 
+  `X_API_KEY`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Diperlukan untuk mengautentikasi pengembang atau aplikasi yang membuat permintaan ke API. 
+  `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat akun Adobe Analytics
<a name="adobeanalytics-create-account"></a>

1. Mendaftar untuk program mitra pertukaran, dengan mengakses program [Adobe Partner](https://partners.adobe.com/exchangeprogram/creativecloud.html). 

1. Pilih **Bergabung dengan Program Pertukaran**. 

1. Daftarkan atau buat akun menggunakan alamat email perusahaan Anda. 

1. Dari kotak saran, pilih perusahaan yang sesuai yang memiliki langganan produk Adobe Analytics. 

1. Pastikan akun terdaftar dengan organisasi yang valid (dari daftar yang tersedia) yang memiliki langganan Adobe Analytics aktif. 

1. Setelah persetujuan administrasi perusahaan, aktifkan akun Anda dengan mengklik tautan di email persetujuan. 

**Memverifikasi apakah akun yang Anda buat memiliki akses ke layanan Adobe Analytics**

1. Masuk ke [Adobe Admin Console](https://adminconsole.adobe.com/).

1. Periksa nama organisasi di sudut kanan atas halaman untuk memastikan bahwa Anda telah masuk ke perusahaan yang benar.

1. Pilih **Produk** dan verifikasi apakah Adobe Analytics tersedia.
**catatan**  
Jika tidak ada organisasi yang tersedia, atau produk Adobe Analytics berwarna abu-abu atau tidak tersedia, kemungkinan akun Anda tidak terkait dengan organisasi yang tidak and/or memiliki langganan Adobe Analytics aktif. Hubungi admin sistem Anda untuk meminta akses layanan ini untuk akun Anda.

**Membuat proyek dan `OAuth2.0` kredensil**

1. Masuk ke akun Adobe Analytics tempat Anda ingin [aplikasi OAuth 2.0](https://developer.adobe.com/developer-console/docs/guides/services/services-add-api-oauth/) dibuat.

1. Pilih **Project** dan kemudian **Buat proyek baru**. 

1. Untuk menambahkan proyek, pilih **Tambahkan ke proyek**, lalu pilih **API**.

1. Pilih **Adobe Analytics API**.

1. Pilih **OAUTH sebagai otentikasi** pengguna.

1. Pilih **Web** sebagai `OAUTH` dan berikan URI pengalihan. 

   Untuk mengarahkan URI dan polanya, lihat berikut ini:
   + `OAuth 2.0`URI pengalihan default — URI pengalihan default adalah URL halaman yang akan diakses Adobe selama proses otentikasi. Sebagai contoh, `https://ap-southeast-2.console.aws.amazon.com/appflow/oauth`. 
   + OAuth 2.0 Pola URI Pengalihan — Pola URI Pengalihan adalah jalur URI (atau daftar jalur yang dipisahkan koma) yang dapat dialihkan Adobe (jika diminta) saat alur login selesai. Sebagai contoh, `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`.

1. Tambahkan cakupan berikut: 
   + `openid`
   + `read_organizations`
   + `additional_info.projectedProductContext`
   + `additional_info.job_function`

1. Pilih **Simpan kredensi**.

1. Setelah aplikasi dibuat, salin `Client Secret` nilai `Client ID` dan ke file teks.

# Batasan
<a name="adobeanalytics-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Adobe Analytics:
+ Adobe Analytics tidak mendukung partisi berbasis bidang dan berbasis rekaman. Partisi berbasis bidang tidak didukung karena Anda tidak dapat menanyakan bidang yang Anda partisi. Partisi berbasis rekaman tidak dapat didukung karena tidak ada ketentuan untuk mendapatkan 'offset' untuk pagination.
+ Dalam `Report Top Item` entitas, parameter `startDate` dan `endDate` kueri tidak berfungsi seperti yang diharapkan. Respons tidak difilter berdasarkan parameter ini, yang menyebabkan masalah dengan filter dan aliran tambahan untuk entitas ini. 
+ Untuk`Annotation`,,`Calculated Metrics`,`Calculated Metrics Function`,`Date Ranges`,`Dimension`, `Metric``Project`, dan `Segment` entitas`Report Top Items`, parameter `locale` kueri menentukan bahasa mana yang akan digunakan untuk bagian respons yang dilokalkan dan tidak memfilter catatan. Misalnya, `locale="ja_JP"` akan menampilkan data dalam bahasa Jepang. 
+ `Report Top Item`entity — filter aktif `dateRange` dan `lookupNoneValues` bidang saat ini tidak berfungsi. 
+ `Segment`entity: dengan nilai filter`includeType=“templates”`, filter pada bidang lain tidak berfungsi. 
+ `Date Range`entity — filter di `curatedRsid` lapangan tidak berfungsi. 
+ `Metric entity`entity — filter pada bidang tersegmentable dengan nilai “false” memberikan hasil untuk nilai true dan false.

# Menghubungkan ke Adobe Marketo Engage
<a name="connecting-to-data-adobe-marketo-engage"></a>

Adobe Marketo Engage adalah platform otomatisasi pemasaran yang memungkinkan pemasar mengelola program dan kampanye multi-saluran yang dipersonalisasi kepada prospek dan pelanggan.

**Topics**
+ [AWS Glue dukungan untuk Adobe Marketo Engage](adobe-marketo-engage-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](adobe-marketo-engage-configuring-iam-permissions.md)
+ [Mengkonfigurasi Adobe Marketo Engage](adobe-marketo-engage-configuring.md)
+ [Mengkonfigurasi koneksi Adobe Marketo Engage](adobe-marketo-engage-configuring-connections.md)
+ [Membaca dari entitas Adobe Marketo Engage](adobe-marketo-engage-reading-from-entities.md)
+ [Menulis ke entitas Adobe Marketo Engage](adobe-marketo-engage-writing-to-entities.md)
+ [Opsi koneksi Adobe Marketo Engage](adobe-marketo-engage-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Adobe Marketo Engage](adobe-marketo-engage-connector-limitations.md)

# AWS Glue dukungan untuk Adobe Marketo Engage
<a name="adobe-marketo-engage-support"></a>

AWS Glue mendukung Adobe Marketo Engage sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Adobe Marketo Engage.

**Didukung sebagai target?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menulis data ke Adobe Marketo.

**Versi Adobe Marketo Engage API yang didukung**  
Versi Adobe Marketo Engage API berikut didukung:
+ v1

Untuk dukungan entitas per versi tertentu, lihat Entitas yang didukung untuk Sumber.

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="adobe-marketo-engage-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Adobe Marketo Engage
<a name="adobe-marketo-engage-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Adobe Marketo Engage, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="adobe-marketo-engage-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Adobe Marketo Engage dengan kredensi klien.
+ Akun Adobe Marketo Engage Anda memiliki akses API dengan lisensi yang valid.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Adobe Marketo Engage Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Adobe Marketo Engage.

## Mendapatkan kredensi OAuth 2.0
<a name="adobe-marketo-engage-configuring-creating-adobe-marketo-engage-oauth2-credentials"></a>

Untuk mendapatkan kredensional API untuk melakukan panggilan terautentikasi ke instans Anda, lihat [Adobe](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api) Marketo Rest API

# Mengkonfigurasi koneksi Adobe Marketo Engage
<a name="adobe-marketo-engage-configuring-connections"></a>

Adobe Marketo Engage mendukung jenis hibah KREDENSIAL KLIEN untuk. OAuth2
+ Jenis hibah ini dianggap OAuth 2.0 berkaki 2 karena digunakan oleh klien untuk mendapatkan token akses di luar konteks pengguna. AWS Glue dapat menggunakan ID klien dan rahasia klien untuk mengautentikasi Adobe Marketo Engage APIs yang disediakan oleh layanan khusus yang Anda tentukan.
+ Setiap layanan kustom dimiliki oleh pengguna khusus API yang memiliki serangkaian peran dan izin yang mengizinkan layanan untuk melakukan tindakan tertentu. Token akses dikaitkan dengan satu layanan kustom.
+ Jenis hibah ini menghasilkan token akses yang berumur pendek, dan dapat diperbarui dengan memanggil titik akhir identitas.
+ Untuk dokumentasi Adobe Marketo Engage publik untuk OAuth 2.0 dengan kredensi klien, lihat [Otentikasi](https://developers.adobe-marketo-engage.com/rest-api/authentication/) di Panduan Pengembang Adobe Marketo Engage.

Untuk mengonfigurasi koneksi Adobe Marketo Engage:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Adobe Marketo Engage.

   1. Berikan contoh Adobe Marketo Engage yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Adobe Marketo Engage
<a name="adobe-marketo-engage-reading-from-entities"></a>

**Prasyarat**

Objek Adobe Marketo Engage yang ingin Anda baca. Anda akan memerlukan nama objek seperti lead atau aktivitas atau customobjects. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber (sinkron)**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| memimpin | Ya | Ya | Tidak | Ya | Tidak | 
| aktivitas | Ya | Ya | Tidak | Ya | Tidak | 
| customobjects | Ya | Ya | Tidak | Ya | Tidak | 

**Entitas yang didukung untuk sumber (asinkron**):


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| memimpin | Ya | Tidak | Tidak | Ya | Ya | 
| aktivitas | Ya | Tidak | Tidak | Ya | Tidak | 
| customobjects | Ya | Tidak | Tidak | Ya | Ya | 

**Contoh:**

```
adobe-marketo-engage_read = glueContext.create_dynamic_frame.from_options(
    connection_type="adobe-marketo-engage",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v2",
        "INSTANCE_URL": "https://539-t**-6**.mktorest.com"
    }
```

Entitas dan detail **bidang Adobe Marketo Engage**:

**Entitas dengan metadata statis**: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/adobe-marketo-engage-reading-from-entities.html)

**Entitas dengan metadata dinamis**:

Untuk entitas berikut, Adobe Marketo Engage menyediakan titik akhir untuk mengambil metadata secara dinamis, sehingga dukungan operator ditangkap pada tingkat tipe data untuk setiap entitas.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/adobe-marketo-engage-reading-from-entities.html)

## Mempartisi kueri
<a name="adobe-marketo-engage-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai yang valid:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Tabel berikut menjelaskan rincian dukungan bidang partisi entitas:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/adobe-marketo-engage-reading-from-entities.html)

Contoh:

```
adobe-marketo-engage_read = glueContext.create_dynamic_frame.from_options(
    connection_type="adobe-marketo-engage",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "createdAt"
        "LOWER_BOUND": "2024-07-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-07-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Menulis ke entitas Adobe Marketo Engage
<a name="adobe-marketo-engage-writing-to-entities"></a>

**Prasyarat**
+ Objek Adobe Marketo yang ingin Anda tulis. Anda akan membutuhkan nama objek seperti `leads` atau`customobjects`.
+ Konektor Adobe Marketo mendukung tiga operasi penulisan:
  + INSERT
  + MENEGAKKAN
  + UPDATE
+ Untuk `UPSERT` dan `UPDATE` menulis operasi, Anda harus memberikan `ID_FIELD_NAMES` opsi untuk menentukan bidang ID untuk catatan. Saat bekerja dengan `leads` entitas, gunakan `email` `ID_FIELD_NAMES` untuk `UPSERT` operasi dan `id` untuk `UPDATE` operasi. Untuk `customobjects` entitas, gunakan `marketoGUID` `ID_FIELD_NAMES` untuk keduanya `UPDATE` dan `UPSERT` operasi.

**Entitas yang didukung untuk Destination (Synchronous)**


| Nama entitas | Akan didukung sebagai Konektor Tujuan | Dapat Dimasukkan | Dapat Diperbarui | Dapat Ditegaskan | 
| --- | --- | --- | --- | --- | 
| memimpin | Ya | Ya (Massal) | Ya (Massal) | Ya (Massal) | 
| customobjects | Ya | Ya (Massal) | Ya (Massal) | Ya (Massal) | 

**Contoh:**

**Operasi INSERT:**

```
marketo_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="marketo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "WRITE_OPERATION": "INSERT"
    }
```

**Operasi UPDATE:**

```
marketo_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="marketo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "leads",
        "API_VERSION": "v1",
        "WRITE_OPERATION": "UPDATE",
        "ID_FIELD_NAMES": "id"
    }
```

**catatan**  
Untuk `customobjects` entitas `leads` dan, Adobe Marketo menyediakan titik akhir untuk mengambil metadata secara dinamis sehingga bidang yang dapat ditulis diidentifikasi dari respons API Marketo.

# Opsi koneksi Adobe Marketo Engage
<a name="adobe-marketo-engage-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Adobe Marketo Engage:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Adobe Marketo Engage.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Adobe Marketo Engage Rest API versi yang ingin Anda gunakan. Misalnya: v1.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `TRANSFER_MODE`(String) - Default: SINKRONISASI. Digunakan untuk membaca asinkron.
+ `WRITE_OPERATION`(String) - Default: SISIPKAN. Digunakan untuk menulis. Nilai harus INSERT, UPDATE, UPSERT.
+ `ID_FIELD_NAMES`(String) - Default: null. Diperlukan untuk UPDATE dan UPSERT.

# Keterbatasan dan catatan untuk konektor Adobe Marketo Engage
<a name="adobe-marketo-engage-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Adobe Marketo Engage:
+ 'SincedateTime' dan 'activityTypeId' adalah parameter filter wajib untuk entitas Aktivitas Sinkronisasi.
+ Langganan dialokasikan 50.000 panggilan API per hari (yang disetel ulang setiap hari pada pukul 12:00 CST). Kapasitas harian tambahan dapat dibeli sebagai bagian dari langganan Adobe Marketo Engage. Untuk referensi, lihat [Adobe Marketo Rest API](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api).
+ Rentang waktu maksimum untuk filter rentang tanggal (`createdAt`atau`updatedAt`) adalah 31 hari. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Langganan dialokasikan maksimal 10 pekerjaan ekstrak massal dalam antrian pada waktu tertentu. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Secara default, pekerjaan ekstrak dibatasi hingga 500 MB per hari (yang disetel ulang setiap hari pada pukul 12:00 CST). Kapasitas harian tambahan dapat dibeli sebagai bagian dari langganan Adobe Marketo Engage. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Jumlah maksimum pekerjaan ekspor bersamaan adalah 2. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Jumlah maksimum pekerjaan ekspor antrian (termasuk pekerjaan yang saat ini mengekspor) adalah 10. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ Ukuran file maksimum yang diizinkan adalah 1 GB untuk diekstrak dari pekerjaan Massal.
+ Setelah pekerjaan asinkron dibuat, periode penyimpanan file akan menjadi 7 hari sebelum kedaluwarsa. Untuk referensi, lihat [Ekstrak Massal - Pengembang Marketo](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-extract).
+ `createdAt`atau `updatedAt` merupakan parameter filter wajib untuk entitas Async Leads.
+ `createdAt`adalah parameter filter wajib untuk entitas Aktivitas Async.
+ `updatedAt`adalah parameter filter wajib untuk entitas Objek Kustom Async.
+ Saat menggunakan konektor AWS Glue SaaS, pengguna tidak dapat mengidentifikasi catatan spesifik mana yang gagal selama operasi penulisan ke platform SaaS tujuan jika terjadi kegagalan sebagian.
+ Saat menggunakan operasi tulis Sinkronisasi, bidang apa pun dengan nilai nol dalam file input akan secara otomatis dijatuhkan dan tidak dikirim ke platform SaaS.
+ Anda dapat membuat atau memperbarui hingga 300 catatan dalam satu batch untuk Sync write.

Untuk informasi selengkapnya, lihat [Adobe Marketo Engage Integration Best Practices](https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/marketo-integration-best-practices) dan [Bulk](https://https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/bulk-extract/bulk-activity-extract) Extract.

# Menghubungkan ke Amazon Redshift di AWS Glue Studio
<a name="connecting-to-data-redshift"></a>

**catatan**  
 Anda dapat menggunakan Spark AWS Glue untuk membaca dan menulis ke tabel di Amazon Redshift database di luar. AWS Glue Studio Untuk mengonfigurasi Amazon Redshift AWS Glue pekerjaan secara terprogram, lihat[Koneksi Redshift](aws-glue-programming-etl-connect-redshift-home.md). 

 AWS Gluemenyediakan dukungan bawaan untuk Amazon Redshift. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung, membuat pekerjaan integrasi data Amazon Redshift, dan menjalankannya pada runtime Spark AWS Glue Studio tanpa server. 

**Topics**
+ [Membuat Amazon Redshift koneksi](creating-redshift-connection.md)
+ [Membuat simpul Amazon Redshift sumber](creating-redshift-source-node.md)
+ [Membuat node Amazon Redshift target](creating-redshift-target-node.md)
+ [Opsi lanjutan](creating-redshift-connection-advanced-options.md)

# Membuat Amazon Redshift koneksi
<a name="creating-redshift-connection"></a>

## Izin diperlukan
<a name="creating-redshift-connection-permissions"></a>

 Izin tambahan diperlukan untuk menggunakan Amazon Redshift cluster dan lingkungan tanpa Amazon Redshift server. Untuk informasi selengkapnya tentang cara menambahkan izin ke pekerjaan ETL, lihat [Meninjau izin IAM yang diperlukan](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) untuk pekerjaan ETL. 
+  pergeseran merah: DescribeClusters 
+  redshift-tanpa server: ListWorkgroups 
+  redshift-tanpa server: ListNamespaces 

## Ikhtisar
<a name="w2aac25c27c13c11b5"></a>

 Saat menambahkan Amazon Redshift koneksi, Anda dapat memilih Amazon Redshift koneksi yang ada atau membuat koneksi baru saat menambahkan **sumber Data - Node Redshift masuk**. AWS Glue Studio 

 AWS Gluemendukung Amazon Redshift cluster dan lingkungan tanpa Amazon Redshift server. Saat Anda membuat koneksi, lingkungan Amazon Redshift tanpa server menampilkan label **tanpa server** di sebelah opsi koneksi. 

 Untuk informasi selengkapnya tentang cara membuat Amazon Redshift sambungan, lihat [Memindahkan data ke dan dari Amazon Redshift](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html#aws-glue-programming-etl-redshift-using). 

# Membuat simpul Amazon Redshift sumber
<a name="creating-redshift-source-node"></a>

## Izin diperlukan
<a name="creating-redshift-source-node-permissions"></a>

 AWS Glue Studio pekerjaan yang menggunakan sumber Amazon Redshift data memerlukan izin tambahan. Untuk informasi selengkapnya tentang cara menambahkan izin ke pekerjaan ETL, lihat [Meninjau izin IAM yang diperlukan](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) untuk pekerjaan ETL. 

 Izin berikut diperlukan untuk menggunakan Amazon Redshift koneksi. 
+  data pergeseran merah: ListSchemas 
+  data pergeseran merah: ListTables 
+  data pergeseran merah: DescribeTable 
+  data pergeseran merah: ExecuteStatement 
+  data pergeseran merah: DescribeStatement 
+  data pergeseran merah: GetStatementResult 

## Menambahkan sumber Amazon Redshift data
<a name="creating-redshift-source-node-add"></a>

**Untuk menambahkan **Sumber Data — Amazon Redshift** node:**

1.  Pilih jenis Amazon Redshift akses: 
   +  Koneksi data langsung (disarankan) - pilih opsi ini jika Anda ingin mengakses Amazon Redshift data Anda secara langsung. Ini adalah opsi yang disarankan dan juga default. 
   +  Data Catalog tables— pilih opsi ini jika Anda memiliki tabel Katalog Data yang ingin Anda gunakan. 

1.  Jika Anda memilih Koneksi data langsung, pilih koneksi untuk sumber Amazon Redshift data Anda. Ini mengasumsikan bahwa koneksi sudah ada dan Anda dapat memilih dari koneksi yang ada. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Redshift**. Untuk informasi selengkapnya, lihat [Ikhtisar penggunaan konektor dan koneksi](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. Informasi tentang koneksi terlihat, termasuk URL, grup keamanan, subnet, zona ketersediaan, deskripsi, dan stempel waktu yang dibuat (UTC) dan terakhir diperbarui (UTC). 

1.  Pilih opsi Amazon Redshift sumber: 
   +  **Pilih satu tabel** — ini adalah tabel yang berisi data yang ingin Anda akses dari satu Amazon Redshift tabel. 
   +  **Masukkan kueri kustom** — memungkinkan Anda mengakses kumpulan data dari beberapa Amazon Redshift tabel berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, pilih Amazon Redshift skema. Daftar skema yang tersedia untuk dipilih ditentukan oleh tabel yang dipilih. 

    Atau, pilih **Masukkan kueri khusus**. Pilih opsi ini untuk mengakses dataset kustom dari beberapa Amazon Redshift tabel. Saat Anda memilih opsi ini, masukkan Amazon Redshift kueri. 

    Saat menghubungkan ke lingkungan Amazon Redshift tanpa server, tambahkan izin berikut ke kueri kustom: 

   ```
               GRANT SELECT ON ALL TABLES IN <schema> TO PUBLIC
   ```

    Anda dapat memilih **skema Infer** untuk membaca skema berdasarkan kueri yang Anda masukkan. Anda juga dapat memilih **editor kueri Open Redshift untuk memasukkan kueri**. Amazon Redshift Untuk informasi selengkapnya, lihat [Menanyakan database menggunakan editor kueri](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor.html). 

1.  Di **Performa dan keamanan**, pilih direktori pementasan Amazon S3 dan peran IAM. 
   +  **Direktori pementasan Amazon S3** — pilih lokasi Amazon S3 untuk data pementasan sementara. 
   +  Peran **IAM — pilih peran** IAM yang dapat menulis ke lokasi Amazon S3 yang Anda pilih. 

1.  Dalam **parameter Custom Redshift - opsional**, masukkan parameter dan nilai. 

# Membuat node Amazon Redshift target
<a name="creating-redshift-target-node"></a>

## Izin diperlukan
<a name="creating-redshift-target-node-permissions"></a>

 AWS Glue Studio pekerjaan menggunakan target Amazon Redshift data memerlukan izin tambahan. Untuk informasi selengkapnya tentang cara menambahkan izin ke pekerjaan ETL, lihat [Meninjau izin IAM yang diperlukan](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) untuk pekerjaan ETL. 

 Izin berikut diperlukan untuk menggunakan Amazon Redshift koneksi. 
+  data pergeseran merah: ListSchemas 
+  data pergeseran merah: ListTables 

## Menambahkan node Amazon Redshift target
<a name="w2aac25c27c13c15b5"></a>

**Untuk membuat node Amazon Redshift target:**

1.  Pilih Amazon Redshift tabel yang ada sebagai target, atau masukkan nama tabel baru. 

1.  Saat Anda menggunakan **target Data - Node target Redshift**, Anda dapat memilih dari opsi berikut: 
   +  **APPEND** - Jika tabel sudah ada, dump semua data baru ke dalam tabel sebagai insert. Jika tabel tidak ada, buat dan kemudian masukkan semua data baru. 

      Selain itu, centang kotak jika Anda ingin memperbarui (UPSERT) catatan yang ada di tabel target. Tabel harus ada terlebih dahulu, jika tidak operasi akan gagal. 
   +  **MERGE** - AWS Glue akan memperbarui atau menambahkan data ke tabel target Anda berdasarkan kondisi yang Anda tentukan. 
**catatan**  
 Untuk menggunakan tindakan penggabunganAWS Glue, Anda harus mengaktifkan fungsionalitas Amazon Redshift gabungan. Untuk petunjuk tentang cara mengaktifkan penggabungan untuk Amazon Redshift instans Anda, lihat [MENGGABUNGKAN (pratinjau)](https://docs.aws.amazon.com/redshift/latest/dg/r_MERGE.html). 

      Pilih opsi: 
     + **Pilih kunci dan tindakan sederhana** — pilih kolom yang akan digunakan sebagai kunci yang cocok antara data sumber dan kumpulan data target Anda. 

       Tentukan opsi berikut jika dicocokkan:
       + Perbarui catatan dalam kumpulan data target Anda dengan data dari sumber.
       + Hapus catatan dalam kumpulan data target Anda.

       Tentukan opsi berikut jika tidak cocok:
       + Masukkan data sumber sebagai baris baru ke dalam kumpulan data target Anda.
       + Jangan lakukan apa-apa.
     + **Masukkan pernyataan MERGE kustom** — Anda kemudian dapat memilih pernyataan **Validasi Gabungan untuk memverifikasi bahwa pernyataan** tersebut valid atau tidak valid.
   +  **TRUNCATE** — Jika tabel sudah ada, potong data tabel dengan terlebih dahulu membersihkan isi tabel target. Jika truncate berhasil, maka masukkan semua data. Jika tabel tidak ada, buat tabel dan masukkan semua data. Jika truncate tidak berhasil, operasi akan gagal. 
   +  **DROP** — Jika tabel sudah ada, hapus metadata tabel dan data. Jika penghapusan berhasil, maka masukkan semua data. Jika tabel tidak ada, buat tabel dan masukkan semua data. Jika drop tidak berhasil, operasi akan gagal. 
   +  **CREATE** - Buat tabel baru dengan nama default. Jika nama tabel sudah ada, buat tabel baru dengan nama postfix dari nama `job_datetime` untuk keunikan. Ini akan memasukkan semua data ke dalam tabel baru. Jika tabel ada, nama tabel akhir akan memiliki postfix yang ditambahkan. Jika tabel tidak ada, tabel akan dibuat. Dalam kedua kasus, tabel baru akan dibuat. 

# Opsi lanjutan
<a name="creating-redshift-connection-advanced-options"></a>

 Lihat [Menggunakan konektor Amazon Redshift Spark pada AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html#aws-glue-programming-etl-redshift-using). 

# Menghubungkan ke Asana
<a name="connecting-to-asana"></a>

Asana adalah solusi kolaborasi tim berbasis cloud yang membantu tim mengatur, merencanakan, dan menyelesaikan tugas dan proyek. Jika Anda pengguna Asana, akun Anda berisi data tentang ruang kerja, proyek, tugas, tim, dan lainnya. Anda dapat mentransfer data dari Asana ke AWS layanan tertentu atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Asana](asana-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](asana-configuring-iam-permissions.md)
+ [Mengkonfigurasi Asana](asana-configuring.md)
+ [Mengkonfigurasi koneksi Asana](asana-configuring-connections.md)
+ [Membaca dari entitas Asana](asana-reading-from-entities.md)
+ [Opsi koneksi Asana](asana-connection-options.md)
+ [Membuat akun Asana](asana-create-account.md)
+ [Batasan](asana-connector-limitations.md)

# AWS Glue dukungan untuk Asana
<a name="asana-support"></a>

AWS Glue mendukung Asana sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Asana.

**Didukung sebagai target?**  
Tidak.

**Versi API Asana yang didukung**  
 1.0 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="asana-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Asana
<a name="asana-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Asana, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="asana-configuring-min-requirements"></a>
+ Anda memiliki akun Asana dengan email dan kata sandi. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Asana](asana-create-account.md). 
+ Anda harus memiliki AWS Akun yang dibuat dengan akses layanan ke AWS Glue. 
+ Pastikan Anda telah membuat salah satu sumber daya berikut di akun Asana Anda: 
  + Aplikasi Pengembang yang mendukung `OAuth 2.0` otentikasi. Untuk instruksi instuksi lainnya, lihat [OAuth](https://developers.asana.com/docs/oauth)di dokumentasi Asana Developers. Alternatif lainnya, lihat [Membuat akun Asana](asana-create-account.md). 
  + Token akses pribadi. Untuk informasi selengkapnya, lihat Token akses pribadi [https://developers.asana.com/docs/personal-access-token](https://developers.asana.com/docs/personal-access-token) di dokumentasi Asana Developers. 

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Adobe Analytics Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Adobe Analytics.

# Mengkonfigurasi koneksi Asana
<a name="asana-configuring-connections"></a>

Asana mendukung jenis `AUTHORIZATION_CODE` hibah untuk`OAuth2`. 

Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Pengguna dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Asana dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Asana untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

Untuk dokumentasi Asana publik tentang membuat aplikasi yang terhubung untuk `AUTHORIZATION_CODE OAuth` aliran, lihat [Asana APIs](https://developers.asana.com/docs/oauth). 

Untuk mengkonfigurasi koneksi Asana:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   + Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 
   + 
**catatan**  
Anda harus membuat rahasia untuk koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Asana.

   1. Menyediakan lingkungan Asana.

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Asana
<a name="asana-reading-from-entities"></a>

 **Prasyarat** 

Objek Asana yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung untuk sumber** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
|  Ruang kerja  | Tidak | Ya | Tidak | Ya | Tidak | 
| Tag | Tidak | Ya | Tidak | Ya | Tidak | 
| Pengguna | Tidak | Ya | Tidak | Ya | Tidak | 
|  Portofolio  | Tidak | Ya | Tidak | Ya | Tidak | 
| Tim | Tidak | Ya | Tidak | Ya | Tidak | 
| Proyek | Ya | Ya | Tidak | Ya | Tidak | 
| Bagian | Tidak | Ya | Tidak | Ya | Tidak | 
| Tugas  | Ya | Tidak | Tidak | Ya | Ya | 
| Tujuan | Ya | Ya | Tidak | Ya | Tidak | 
|  AuditLogEvent  | Ya | Ya | Tidak | Ya | Tidak | 
|  Pembaruan Status  | Ya | Ya | Tidak | Ya | Tidak | 
|  Bidang Kustom  | Tidak | Ya | Tidak | Ya | Tidak | 
|  Ringkasan Proyek  | Ya | Tidak | Tidak | Ya | Ya | 

 **Contoh** 

```
read_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Asana",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "task/workspace:xxxx",
        "API_VERSION": "1.0",
        "PARTITION_FIELD": "created_at",
        "LOWER_BOUND": "2024-02-05T14:09:30.115Z",
        "UPPER_BOUND": "2024-06-07T13:30:00.134Z",
        "NUM_PARTITIONS": "3"
    }
```

 **Entitas Asana dan detail lapangan** 
+ [Ruang kerja](https://developers.asana.com/docs/workspaces)
+ [Tag](https://developers.asana.com/docs/tags)
+ [Pengguna](https://developers.asana.com/docs/users)
+ [Portofolio](https://developers.asana.com/docs/portfolios)
+ [Tim](https://developers.asana.com/docs/teams)
+ [Proyek](https://developers.asana.com/docs/get-all-projects-in-a-workspace)
+ [Bagian](https://developers.asana.com/docs/get-sections-in-a-project)
+ [Tugas](https://developers.asana.com/docs/search-tasks-in-a-workspace) 
+ [Tujuan](https://developers.asana.com/docs/get-goals)
+ [AuditLogEvent](https://developers.asana.com/docs/audit-log-api)
+ [Pembaruan Status](https://developers.asana.com/reference/status-updates)
+ [Bidang Kustom](https://developers.asana.com/reference/custom-fields)
+ [Ringkasan Proyek](https://developers.asana.com/reference/project-briefs)

 **Mempartisi kueri** 

Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+ `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

  Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`2024-06-07T13:30:00.134Z`. 
+ `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel berikut. 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| Tugas |  dibuat\$1at  | DateTime | 
| Tugas |  dimodifikasi\$1at  | DateTime | 

 **Contoh** 

```
read_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Asana",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "task/workspace:xxxx",
        "API_VERSION": "1.0",
        "PARTITION_FIELD": "created_at",
        "LOWER_BOUND": "2024-02-05T14:09:30.115Z",
        "UPPER_BOUND": "2024-06-07T13:30:00.134Z",
        "NUM_PARTITIONS": "3"
    }
```

# Opsi koneksi Asana
<a name="asana-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Asana:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Asana. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi API Asana Rest yang ingin Anda gunakan. Misalnya: 1.0. 
+  `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Membuat akun Asana
<a name="asana-create-account"></a>

1. Mendaftar untuk [Akun Asana](https://asana.com/create-account) dan pilih **Daftar**.

1. Setelah masuk, Anda akan diarahkan ke halaman [Pengaturan Akun](https://app.asana.com/0/account_setup). Selesaikan langkah-langkah berikut:
   + Tinjau formulir pengaturan akun.
   + Isi semua detail yang relevan untuk membuat akun Asana Anda.
   + Periksa ulang informasi untuk akurasi.

1. Pilih **Buat Akun** atau **Kirim** (teks tombol yang tepat mungkin berbeda) untuk menyelesaikan pengaturan akun Anda.

**Membuat Aplikasi di Asana untuk `OAuth2.0`**

1. Masuk ke akun Asana menggunakan [Kredenal Pelanggan Asana](https://app.asana.com/-/login) Anda. 

1. Pilih ikon profil pengguna Anda di sudut kanan atas dan pilih **Pengaturan Saya** dari menu tarik-turun.

1. Pilih tab **Aplikasi** dan kemudian pilih **Kelola Aplikasi Pengembang**.

1. Pilih **Buat aplikasi baru** dan masukkan detail yang relevan. 

1. Pilih **Buat Aplikasi**.

1. Di halaman **Aplikasi Saya**: 

   1. Pilih **OAuth**dan di bagian **Kredensial Aplikasi**, catat ID Klien dan Rahasia Klien Anda.

   1. Di URLs bagian **Redirect**, tambahkan URL pengalihan yang diperlukan.
**catatan**  
Masukkan URI Redirect menggunakan format ini:`https://{aws-region-code}.console.aws.amazon.com/gluestudio/oauth`. Contoh: Untuk AS Timur (Virginia N.), gunakan: `https://us-east-1.console.aws.amazon.com/gluestudio/oauth`

**Membuat Aplikasi di Asana untuk `PAT` Token**

1. Masuk ke akun Asana menggunakan [Kredenal Pelanggan Asana](https://app.asana.com/-/login) Anda. 

1. Pilih ikon profil pengguna Anda di sudut kanan atas dan pilih **Pengaturan Profil Saya** dari menu tarik-turun.

1. Pilih tab **Aplikasi** dan kemudian pilih **Akun layanan**.

1. Pilih **Buat aplikasi baru** dan masukkan detail yang relevan. 

1. Pilih **Tambahkan akun layanan**.

1. Halaman berikutnya menampilkan token Anda, menyalin token Anda dan menyimpannya dengan aman. 
**penting**  
Token ini hanya akan ditampilkan sekali. Pastikan Anda menyalinnya dan menyimpannya dengan aman. 

# Batasan
<a name="asana-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Asana:
+ Akun Layanan di Domain Perusahaan hanya dapat mengakses titik akhir API log audit. Otentikasi dengan token akses pribadi Akun Layanan diperlukan untuk mengakses titik akhir ini.
+ Entitas Sasaran hanya dapat diakses untuk akun pengguna dengan paket Premium atau lebih tinggi.
+ `Audit Log Event Entity`— Di konektor, `start_at` dan `end_at` bidang digabungkan menjadi satu bidang “start\$1end\$1at” untuk mendukung penyaringan dan transfer tambahan.
+ Partisi tidak dapat didukung untuk `Date` bidang, meskipun mendukung operator greater-than-or-equal -to dan less-than-or-equal -to. Skenario: Membuat pekerjaan dengan `partitionField` as `due_on` (datatype: date), `lowerBound` as, as`2019-09-14`, dan `upperBound` as`2019-09-16`. `numPartition` `2` Bagian filter dari URL endpoint dibuat sebagai berikut:
  + partisi1: due\$1on.before=2019-09-14&due\$1on.after=2019-09-14
  + partisi2: due\$1on.before=2019-09-15 & due\$1on.after=2019-09-15 Keluaran:
  + Di partisi1, kami mendapatkan data dengan due\$1date sebagai 2019-09-14 dan 2019-09-15
  + Di partisi2, kami mendapatkan data yang sama dengan due\$1date seperti 2019-09-15 (yang ada di partisi1) bersama dengan data lain, menyebabkan duplikasi data.
+ Pemfilteran dan partisi tidak dapat didukung pada bidang yang sama karena kesalahan permintaan buruk dilemparkan dari ujung SaaS.
+ Entitas Tugas membutuhkan minimal 1 bidang dalam kriteria filter. Ada batasan dengan Asana di mana pagination tidak diidentifikasi tanpa menyortir catatan berdasarkan bidang berbasis waktu. Oleh karena itu, bidang created\$1at digunakan bersama dengan pagination untuk membedakan kumpulan catatan berikutnya. Bidang Created\$1AT ditandai sebagai wajib di filter, dengan nilai default 2000-01-01T 00:00:00 Z jika tidak disediakan. Untuk informasi selengkapnya tentang Pagination, lihat [Tugas di ruang kerja](https://developers.asana.com/reference/searchtasksforworkspace).

# Menghubungkan ke Azure Cosmos DB di AWS Glue Studio
<a name="connecting-to-data-azurecosmos"></a>

 AWS Gluemenyediakan dukungan bawaan untuk Azure Cosmos DB. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Azure Cosmos DB untuk NoSQL, pekerjaan integrasi data penulis, dan menjalankannya pada runtime Spark tanpa server. AWS Glue Studio 

**Topics**
+ [Membuat koneksi Azure Cosmos DB](creating-azurecosmos-connection.md)
+ [Membuat simpul sumber Azure Cosmos DB](creating-azurecosmos-source-node.md)
+ [Membuat node target Azure Cosmos DB](creating-azurecosmos-target-node.md)
+ [Opsi lanjutan](#creating-azurecosmos-connection-advanced-options)

# Membuat koneksi Azure Cosmos DB
<a name="creating-azurecosmos-connection"></a>

**Prasyarat**:
+ Di Azure, Anda perlu mengidentifikasi atau membuat Kunci DB Azure Cosmos untuk digunakan oleh,. AWS Glue`cosmosKey` Untuk informasi selengkapnya, lihat [Akses aman ke data di Azure Cosmos DB](https://learn.microsoft.com/en-us/azure/cosmos-db/secure-access-to-data?tabs=using-primary-key) di dokumentasi Azure.

**Untuk mengonfigurasi koneksi ke Azure Cosmos DB:**

1. Di AWS Secrets Manager, buat rahasia menggunakan Azure Cosmos DB Key Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `spark.cosmos.accountKey` dengan nilainya. *cosmosKey*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk penggunaan masa depan di AWS Glue. 
   + Saat memilih **jenis Koneksi**, pilih Azure Cosmos DB.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

# Membuat simpul sumber Azure Cosmos DB
<a name="creating-azurecosmos-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-azurecosmos-source-node-prerequisites"></a>
+ Koneksi AWS Glue Azure Cosmos DB, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Azure Cosmos DB](creating-azurecosmos-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Azure Cosmos DB untuk wadah NoSQL yang ingin Anda baca. Anda akan memerlukan informasi identifikasi untuk wadah.

  Sebuah Azure Cosmos untuk wadah NoSQL diidentifikasi oleh database dan wadahnya. Anda harus memberikan nama database*cosmosDBName*, dan wadah*cosmosContainerName*, saat menghubungkan ke Azure Cosmos untuk NoSQL API.

## Menambahkan sumber data Azure Cosmos DB
<a name="creating-azurecosmos-source-node-add"></a>

**Untuk menambahkan **sumber Data — Azure Cosmos DB node**:**

1.  Pilih koneksi untuk sumber data Azure Cosmos DB Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Azure Cosmos DB**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Azure Cosmos DB](creating-azurecosmos-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Nama Database Cosmos DB** — berikan nama database yang ingin Anda baca. *cosmosDBName*

1. Pilih **Azure Cosmos DB Container** — berikan nama wadah yang ingin Anda baca,. *cosmosContainerName*

1. Secara opsional, pilih **Azure Cosmos DB Custom Query** — berikan kueri SQL SELECT untuk mengambil informasi spesifik dari Azure Cosmos DB.

1.  Di **properti Custom Azure Cosmos**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat node target Azure Cosmos DB
<a name="creating-azurecosmos-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-azurecosmos-target-node-prerequisites"></a>
+ Koneksi AWS Glue Azure Cosmos DB, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Azure Cosmos DB](creating-azurecosmos-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel Azure Cosmos DB yang ingin Anda tulis. Anda akan memerlukan informasi identifikasi untuk wadah. **Anda harus membuat wadah sebelum memanggil metode koneksi.**

  Sebuah Azure Cosmos untuk wadah NoSQL diidentifikasi oleh database dan wadahnya. Anda harus memberikan nama database*cosmosDBName*, dan wadah*cosmosContainerName*, saat menghubungkan ke Azure Cosmos untuk NoSQL API.

## Menambahkan target data Azure Cosmos DB
<a name="creating-azurecosmos-target-node-add"></a>

**Untuk menambahkan **target Data — Azure Cosmos DB node**:**

1.  Pilih koneksi untuk sumber data Azure Cosmos DB Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Azure Cosmos DB**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Azure Cosmos DB](creating-azurecosmos-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Nama Database Cosmos DB** — berikan nama database yang ingin Anda baca,*cosmosDBName*.

1. Pilih **Azure Cosmos DB Container** — berikan nama wadah yang ingin Anda baca,. *cosmosContainerName*

1.  Di **properti Custom Azure Cosmos**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-azurecosmos-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat node Azure Cosmos DB. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Koneksi Azure Cosmos DB](aws-glue-programming-etl-connect-azurecosmos-home.md). 

# Menghubungkan ke Azure SQL di AWS Glue Studio
<a name="connecting-to-data-azuresql"></a>

 AWS Gluemenyediakan dukungan bawaan untuk Azure SQL. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Azure SQL, pekerjaan integrasi data penulis, dan menjalankannya pada runtime Spark tanpa AWS Glue Studio server. 

**Topics**
+ [Membuat koneksi Azure SQL](creating-azuresql-connection.md)
+ [Membuat node sumber Azure SQL](creating-azuresql-source-node.md)
+ [Membuat node target Azure SQL](creating-azuresql-target-node.md)
+ [Opsi lanjutan](#creating-azuresql-connection-advanced-options)

# Membuat koneksi Azure SQL
<a name="creating-azuresql-connection"></a>

Untuk terhubung ke Azure SQL dari AWS Glue, Anda harus membuat dan menyimpan kredenal Azure SQL Anda secara AWS Secrets Manager rahasia, lalu mengaitkan rahasia itu dengan koneksi Azure SQL. AWS Glue 

**Untuk mengkonfigurasi koneksi ke Azure SQL:**

1. Di AWS Secrets Manager, buat rahasia menggunakan kredenal Azure SQL Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `user` dengan nilainya. *azuresqlUsername*
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `password` dengan nilainya. *azuresqlPassword*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk penggunaan masa depan di AWS Glue. 
   + Saat memilih **jenis Koneksi**, pilih Azure SQL.
   + Saat menyediakan URL **Azure SQL, berikan URL** endpoint JDBC.

      URL harus dalam format berikut:`jdbc:sqlserver://databaseServerName:databasePort;databaseName=azuresqlDBname;`.

     AWS Glue membutuhkan properti URL berikut: 
     + `databaseName`— Database default di Azure SQL untuk terhubung ke.

     [Untuk informasi selengkapnya tentang JDBC URLs untuk Instans Terkelola Azure SQL, lihat dokumentasi Microsoft.](https://learn.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=azuresqldb-mi-current)
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

# Membuat node sumber Azure SQL
<a name="creating-azuresql-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-azuresql-source-node-prerequisites"></a>
+ Koneksi AWS Glue Azure SQL, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Azure SQL](creating-azuresql-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel Azure SQL yang ingin Anda baca,. *tableName*

  Tabel Azure SQL diidentifikasi oleh database, skema, dan nama tabelnya. Anda harus memberikan nama database dan nama tabel saat menghubungkan ke Azure SQL. Anda juga harus memberikan skema jika bukan default, “publik”. Database disediakan melalui properti URL di*connectionName*, skema dan nama tabel melalui. `dbtable`

## Menambahkan sumber data Azure SQL
<a name="creating-azuresql-source-node-add"></a>

**Untuk menambahkan **sumber Data — Azure SQL node**:**

1.  Pilih koneksi untuk sumber data Azure SQL Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi SQL Azure**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Azure SQL](creating-azuresql-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1.  Pilih opsi **Azure SQL Source:** 
   +  **Pilih satu tabel** — akses semua data dari satu tabel. 
   +  **Masukkan kueri kustom** — akses kumpulan data dari beberapa tabel berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, masukkan*tableName*. 

    Jika Anda memilih **Masukkan kueri kustom, masukkan kueri** TransactSQL SELECT. 

1.  Di **properti Custom Azure SQL**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat node target Azure SQL
<a name="creating-azuresql-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-azuresql-target-node-prerequisites"></a>
+ Koneksi AWS Glue Azure SQL, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Azure SQL](creating-azuresql-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel Azure SQL yang ingin Anda tulis,. *tableName*

  Tabel Azure SQL diidentifikasi oleh database, skema, dan nama tabelnya. Anda harus memberikan nama database dan nama tabel saat menghubungkan ke Azure SQL. Anda juga harus memberikan skema jika bukan default, “publik”. Database disediakan melalui properti URL di*connectionName*, skema dan nama tabel melalui. `dbtable`

## Menambahkan target data Azure SQL
<a name="creating-azuresql-target-node-add"></a>

**Untuk menambahkan **target Data - Azure SQL node**:**

1.  Pilih koneksi untuk sumber data Azure SQL Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi SQL Azure**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Azure SQL](creating-azuresql-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Konfigurasikan **nama Tabel** dengan menyediakan*tableName*.

1.  Di **properti Custom Azure SQL**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-azuresql-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat node Azure SQL. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Koneksi Azure SQL](aws-glue-programming-etl-connect-azuresql-home.md). 

# Menghubungkan ke Blackbaud Raiser's Edge NXT
<a name="connecting-to-data-blackbaud"></a>

Blackbaud Raiser's Edge NXT adalah solusi perangkat lunak penggalangan dana dan manajemen donor berbasis cloud yang komprehensif yang dibangun khusus untuk organisasi nirlaba dan seluruh komunitas sosial yang baik. Konektor ini dibangun di atas SKY API Blackbaud Raiser Edge NXT dan menyediakan operasi untuk membantu mengelola entitas yang ditemukan dalam Raisers Edge NXT.

**Topics**
+ [AWS Glue dukungan untuk Blackbaud Raiser's Edge NXT](blackbaud-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](blackbaud-configuring-iam-permissions.md)
+ [Mengkonfigurasi Blackbaud Raiser's Edge NXT](blackbaud-configuring.md)
+ [Mengkonfigurasi koneksi Edge NXT Blackbaud Raiser](blackbaud-configuring-connections.md)
+ [Membaca dari entitas Edge NXT Blackbaud Raiser](blackbaud-reading-from-entities.md)
+ [Opsi koneksi Edge NXT Blackbaud Raiser](blackbaud-connection-options.md)
+ [Batasan NXT Edge Blackbaud Raiser](blackbaud-connection-limitations.md)

# AWS Glue dukungan untuk Blackbaud Raiser's Edge NXT
<a name="blackbaud-support"></a>

AWS Glue mendukung Blackbaud Raiser's Edge NXT sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Blackbaud Raiser's Edge NXT.

**Didukung sebagai target?**  
Tidak.

**Versi API Edge NXT Blackbaud Raiser yang didukung**  
Versi API Edge NXT Blackbaud Raiser berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="blackbaud-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Blackbaud Raiser's Edge NXT
<a name="blackbaud-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Blackbaud Raiser's Edge NXT, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="blackbaud-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Edge NXT Blackbaud Raiser.
+ Anda telah membuat Token Akses di akun NXT Edge Blackbaud Raiser Anda dengan read/write cakupan yang sesuai yang ditetapkan untuk mengakses. APIs Untuk informasi selengkapnya, lihat [Otorisasi](https://developer.blackbaud.com/skyapi/docs/authorization).

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Edge NXT Blackbaud Raiser Anda.

# Mengkonfigurasi koneksi Edge NXT Blackbaud Raiser
<a name="blackbaud-configuring-connections"></a>

Blackbaud Raiser's Edge NXT mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. AWS Glue Konsol akan mengarahkan pengguna ke Blackbaud Raiser's Edge NXT di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Edge NXT Blackbaud Raiser mereka.
+ Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Blackbaud Raiser's Edge NXT dan memberikan ID Klien, Kunci Langganan, dan URL Instance mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Blackbaud Raiser's Edge NXT untuk masuk dan memberi wewenang untuk mengakses sumber daya mereka. AWS Glue 
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ [Untuk dokumentasi Edge NXT Blackbaud Raiser publik tentang membuat aplikasi yang terhubung untuk alur Kode Otorisasi, lihat Otorisasi. OAuth ](https://developer.blackbaud.com/skyapi/docs/authorization)

Untuk mengonfigurasi koneksi Edge NXT Blackbaud Raiser:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih Blackbaud Raiser's Edge NXT.

   1. Berikan akun Blackbaud Raiser's Edge NXT yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Menyediakan aplikasi klien yang dikelola pengguna`clientId`.

   1. Berikan kunci berlangganan yang terkait dengan akun Anda.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Edge NXT Blackbaud Raiser
<a name="blackbaud-reading-from-entities"></a>

**Prasyarat**

Objek Blackbaud Raiser's Edge NXT yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Alamat Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Pendidikan Konstituante | Ya | Ya | Tidak | Ya | Ya | 
| Alamat Email Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Telepon Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Catatan Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Hubungan Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Kehadiran online konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Peluang | Ya | Ya | Tidak | Ya | Ya | 
| Banding | Ya | Ya | Tidak | Ya | Ya | 
| Kampanye | Ya | Ya | Tidak | Ya | Ya | 
| Dana | Ya | Ya | Tidak | Ya | Ya | 
| Paket | Ya | Ya | Tidak | Ya | Ya | 
| Hadiah Batch | Ya | Ya | Tidak | Ya | Tidak | 
| Peserta Acara | Ya | Ya | Ya | Ya | Ya | 
| Penugasan Penggalangan Dana Konstituen | Tidak | Tidak | Tidak | Ya | Tidak | 
| Hadiah | Ya | Ya | Ya | Ya | Ya | 
| Keanggotaan | Ya | Ya | Tidak | Ya | Ya | 
| Tindakan | Ya | Ya | Tidak | Ya | Tidak | 
| Konstituen | Ya | Ya | Ya | Ya | Ya | 
| Barang Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Peristiwa | Ya | Ya | Ya | Ya | Ya | 
| Bidang kustom hadiah | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
blackbaud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="BLACKBAUD",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1",
        "SUBSCRIPTION_KEY": <Subscription key associated with one's developer account>
    }
```

## Entitas dan detail bidang Edge NXT Blackbaud Raiser
<a name="blackbaud-reading-entity-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Tindakan](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Action)
+ [Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Constituent)
+ [Alamat Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Address)
+ [Keanggotaan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Membership)
+ [Penugasan Penggalangan Dana Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#FundraiserAssignment)
+ [Pendidikan Konstituante](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Education)
+ [Alamat Email Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#EmailAddress)
+ [Telepon Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Phone)
+ [Catatan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Note)
+ [Kehadiran Online Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#OnlinePresence)
+ [Hubungan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Relationship)
+ [Peristiwa](https://developer.blackbaud.com/skyapi/renxt/event/entities#Event)
+ [Peserta Acara](https://developer.blackbaud.com/skyapi/renxt/event/entities#Participant)
+ [Banding](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Appeal)
+ [Kampanye](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Campaign)
+ [Dana](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Fund)
+ [Package](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Package)
+ [Hadiah](https://developer.blackbaud.com/skyapi/renxt/gift/entities#Gift)
+ [Bidang Kustom Hadiah](https://developer.blackbaud.com/skyapi/renxt/gift/entities#CustomField)
+ [Hadiah Batch](https://developer.blackbaud.com/skyapi/renxt/gift-batch/entities#GiftBatch)
+ [Kesempatan](https://developer.blackbaud.com/skyapi/renxt/opportunity/entities#Opportunity)
+ [Kode Konstituen](https://developer.sky.blackbaud.com/api#api=56b76470069a0509c8f1c5b3)

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String, dan tipe DateTime data dikonversi ke Timestamp sebagai respons konektor.

## Mempartisi kueri
<a name="blackbaud-reading-partitioning-queries"></a>

**Partisi berbasis lapangan**:

Blackbaud Raiser's Edge NXT tidak mendukung partisi berbasis bidang atau berbasis rekaman.

Partisi **berbasis rekaman**:

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis rekaman, jumlah total catatan yang ada ditanyakan dari Blackbaud Raiser's Edge NXT API, dan dibagi dengan nomor yang disediakan. `NUM_PARTITIONS` Jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
blackbaud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="BLACKBAUD",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "2",
        "SUBSCRIPTION_KEY": <Subscription key associated with one's developer account>
    }
```

# Opsi koneksi Edge NXT Blackbaud Raiser
<a name="blackbaud-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Blackbaud Raiser's Edge NXT:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Blackbaud Raiser's Edge NXT.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi API Blackbaud Raiser Edge NXT Rest yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Nilai contoh: 10.
+ `SUBSCRIPTION_KEY`(String) - (Diperlukan) Default: kosong. Digunakan untuk Baca. Kunci berlangganan yang terkait dengan akun pengembang seseorang.

# Batasan NXT Edge Blackbaud Raiser
<a name="blackbaud-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Blackbaud Raiser's Edge NXT:
+ SaaS hanya mendukung `EQUAL_TO` operator, yang mengembalikan hasil yang dibuat atau dimodifikasi pada atau setelah tanggal yang ditentukan. Selain itu, bidang “id” adalah tipe data String. Juga tidak ada identifikasi bidang yang tidak dapat dibatalkan. Oleh karena itu, partisi berbasis lapangan tidak didukung.
+ Incremental pull hanya didukung oleh `Event` entitas dengan frekuensi harian, bulanan dan mingguan.
+ Entitas Penugasan Penggalangan Dana Konstituen mengembalikan maksimal 20 catatan.
+ Partisi berbasis rekaman:
  + Tidak didukung oleh`Action`, `Constituent Fundraiser Assignment` atau `Gift Batch` entitas.
  + Partisi berbasis rekaman dengan predikat filter hanya didukung oleh entitas dan. `Event` `Event Participant` Jika predikat filter digunakan dengan entitas lain yang didukung berbasis rekaman, pengecualian akan dilemparkan.
+ Dalam `Gift Custom Field` entitas, bidang 'nilai' harus digunakan bersama dengan bidang 'kategori', yang jika tidak mengarah ke respons tanpa filter. Jadi, untuk memaksa pengguna memasukkan bidang 'kategori' sambil memfilter dengan bidang 'nilai', pengecualian akan dilemparkan jika persyaratan yang disebutkan di atas belum diikuti.
+ `last_modified`Bidang `date_added` dan untuk semua entitas yang berlaku tidak mendukung operator komparatif apa pun. Mereka hanya mendukung yang setara dengan operator. Juga, tidak ada bidang yang dapat dipasangkan dengan bidang yang disebutkan di atas untuk menyediakan berbagai catatan. Oleh karena itu, bidang ini hanya dapat dikueri dan tidak dapat mendukung transfer tambahan.
+ `added_by`Bidang dalam `Gift Batch` entitas tidak akan dianggap dapat disaring karena mungkin tidak memancarkan hasil yang benar.
+ Ada latensi sekitar 30 menit untuk catatan yang akan diambil melalui `/GET Gift List` titik akhir setelah penyisipan data dalam entitas. `Gift`
+ Support untuk transfer tambahan telah dibatalkan untuk entitas Hadiah karena keterbatasan dari ujung sumber data. 
+ Ada latensi 10 menit untuk bidang status di entitas Peluang.
+ `Fundraiser Assignment`Entitas memiliki `Constituent` entitas dependen. Konektor memuat paling banyak 5.000 IDs untuk dipilih, untuk menghindari ukuran respons melebihi ukuran muatan maksimum yang diizinkan.

# Menghubungkan ke CircleCI
<a name="connecting-to-data-circleci"></a>

CircleCI adalah integrasi berkelanjutan dan platform pengiriman berkelanjutan. Akun CircleCI Anda berisi data tentang proyek, pipeline, alur kerja, dan lainnya. Jika Anda pengguna CircleCI, Anda dapat terhubung AWS Glue ke akun CircleCI Anda. Kemudian, Anda dapat menggunakan CircleCI sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara CircleCI AWS dan layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk CircleCI](circleci-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](circleci-configuring-iam-permissions.md)
+ [Mengkonfigurasi CircleCI](circleci-configuring.md)
+ [Mengkonfigurasi koneksi CircleCI](circleci-configuring-connections.md)
+ [Membaca dari entitas CircleCI](circleci-reading-from-entities.md)
+ [Opsi koneksi CircleCI](circleci-connection-options.md)
+ [Batasan CircleCI](circleci-connection-limitations.md)

# AWS Glue dukungan untuk CircleCI
<a name="circleci-support"></a>

AWS Glue mendukung CircleCI sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari CircleCI.

**Didukung sebagai target?**  
Tidak.

**Versi CircleCI API yang didukung**  
Versi API CircleCI berikut didukung:
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="circleci-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi CircleCI
<a name="circleci-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari CircleCI, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="circleci-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun dengan CircleCI yang berisi data yang ingin Anda transfer. 
+ Di pengaturan pengguna untuk akun Anda, Anda telah membuat token API pribadi. Untuk informasi selengkapnya, lihat [Membuat token API pribadi](https://circleci.com/docs/managing-api-tokens/#creating-a-personal-api-token).
+ Anda memberikan token API pribadi AWS Glue saat membuat koneksi.

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun CircleCI Anda.

# Mengkonfigurasi koneksi CircleCI
<a name="circleci-configuring-connections"></a>

CircleCI mendukung otentikasi kustom.

Untuk mengkonfigurasi koneksi CircleCI:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `Circle-Token` sebagai kunci.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih CircleCI.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas CircleCI
<a name="circleci-reading-from-entities"></a>

**Prasyarat**

Objek CircleCI yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Konteks | Ya | Tidak | Tidak | Ya | Tidak | 
| Metrik Ringkasan Organisasi | Ya | Tidak | Tidak | Ya | Tidak | 
| Pipa | Tidak | Tidak | Tidak | Ya | Tidak | 
| Alur Kerja Pipa | Ya | Tidak | Tidak | Ya | Tidak | 
| Cabang Proyek | Ya | Tidak | Tidak | Ya | Tidak | 
| Uji Flaky Proyek | Tidak | Tidak | Tidak | Ya | Tidak | 
| Metrik Ringkasan Proyek | Ya | Tidak | Tidak | Ya | Tidak | 
| Jadwal | Tidak | Tidak | Tidak | Ya | Tidak | 
| Workflow Job Timeseries | Ya | Tidak | Tidak | Ya | Tidak | 
| Alur Kerja Metrik Dan Trend | Ya | Tidak | Tidak | Ya | Tidak | 
| Alur Kerja Jalankan Terbaru | Ya | Tidak | Tidak | Ya | Tidak | 
| Metrik Ringkasan Alur Kerja | Ya | Tidak | Tidak | Ya | Tidak | 
| Metrik Uji Alur Kerja | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
circleci_read = glueContext.create_dynamic_frame.from_options(
    connection_type="circleci",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "context/e7ea2945-dccb-4205-b673-8391fe1b3a4c",
        "API_VERSION": "v2"
    }
```

## Entitas CircleCI dan detail bidang
<a name="circleci-reading-from-entities-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Konteks](https://circleci.com/docs/api/v2/#operation/listContexts)
+ [Metrik Ringkasan Proyek](https://circleci.com/docs/api/v2/#operation/getProjectWorkflowsPageData)
+ [Workflow Job Timeseries](https://circleci.com/docs/api/v2/#operation/getJobTimeseries)
+ [Metrik Ringkasan Organisasi](https://circleci.com/docs/api/v2/#operation/getOrgSummaryData)
+ [Cabang Proyek](https://circleci.com/docs/api/v2/#operation/getAllInsightsBranches)
+ [Tes Flaky Proyek](https://circleci.com/docs/api/v2/#operation/getFlakyTests)
+ [Alur Kerja Terbaru Berjalan](https://circleci.com/docs/api/v2/#operation/getProjectWorkflowRuns)
+ [Metrik Ringkasan Alur Kerja](https://circleci.com/docs/api/v2/#operation/getProjectWorkflowMetrics)
+ [Metrik dan Tren Alur Kerja](https://circleci.com/docs/api/v2/#operation/getWorkflowSummary)
+ [Metrik Uji Alur Kerja](https://circleci.com/docs/api/v2/#operation/getProjectWorkflowTestMetrics)
+ [Pipa](https://circleci.com/docs/api/v2/#operation/listPipelinesForProject)
+ [Alur Kerja Pipeline](https://circleci.com/docs/api/v2/#operation/listWorkflowsByPipelineId)
+ [Jadwal](https://circleci.com/docs/api/v2/#operation/listSchedulesForProject)

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/circleci-reading-from-entities.html)

**catatan**  
Jenis data Struct dan List dikonversi ke tipe data String dalam respons konektor.

**Mempartisi kueri**

CircleCI tidak mendukung partisi berbasis lapangan atau berbasis rekaman.

# Opsi koneksi CircleCI
<a name="circleci-connection-options"></a>

Berikut ini adalah opsi koneksi untuk CircleCI:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di CircleCI.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi CircleCI Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

# Batasan CircleCI
<a name="circleci-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk CircleCI:
+ CircleCI tidak mendukung partisi berbasis bidang atau berbasis rekaman.
+ Bidang filter yang berisi '-' (tanda hubung) hanya akan berfungsi jika dibungkus dalam backticks. Misalnya: `workflow-name` = “abc”
+ Jenis GitLab VCS tidak dapat didukung karena tidak ada cara terprogram untuk mengambil 'ID Proyek' yang diperlukan untuk jalur entitas VCS. GitLab 

# Menghubungkan ke Datadog
<a name="connecting-to-datadog"></a>

Datadog adalah platform pemantauan dan analitik untuk aplikasi skala cloud, termasuk infrastruktur, aplikasi, layanan, dan alat.

**Topics**
+ [AWS Glue dukungan untuk Datadog](datadog-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](datadog-configuring-iam-permissions.md)
+ [Mengkonfigurasi Datadog](datadog-configuring.md)
+ [Mengkonfigurasi koneksi Datadog](datadog-configuring-connections.md)
+ [Membaca dari entitas Datadog](datadog-reading-from-entities.md)
+ [Opsi koneksi Datadog](datadog-connection-options.md)
+ [Membuat akun Datadog](datadog-create-account.md)
+ [Batasan](datadog-connector-limitations.md)

# AWS Glue dukungan untuk Datadog
<a name="datadog-support"></a>

AWS Glue mendukung Datadog sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Datadog.

**Didukung sebagai target?**  
Tidak.

**Versi API Datadog yang didukung**  
 
+ v1
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="datadog-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Datadog
<a name="datadog-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Datadog, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="datadog-configuring-min-requirements"></a>
+ Anda memiliki akun Datadog dengan DD-API-KEY dan. DD-APPLICATION-KEY Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Datadog](datadog-create-account.md). 
+  Akun Datadog Anda memiliki akses API dengan lisensi yang valid.

   

Datadog mendukung enam berikut. URLs Semua klien API Datadog dikonfigurasi secara default untuk menggunakan situs US1 Datadog. APIs Jika Anda berada di situs Datadog EU, Anda harus memilih https://api.datadoghq.eu URL dengan `DD-API-KEY` dan `DD-APPLICATION-KEY` dari situs Datadog EU untuk mengakses. APIs Demikian pula, untuk situs lain, Anda harus memilih masing-masing URLs dengan situs masing-masing. `DD-API-KEY and DD-APPLICATION-KEY` 
+ US1 URL API - [https://api.datadoghq.com](https://api.datadoghq.com) https://api.datadoghq.com
+ URL API UE - [https://api.datadoghq.eu](https://api.datadoghq.eu)
+ US3 URL API - [https://api.us3.datadoghq.com](https://api.us3.datadoghq.com) 
+ US5 URL API - [https://api.us5.datadoghq.com](https://api.us5.datadoghq.com)
+ URL API S1-FED — [https://api.ddog-gov.com](https://api.ddog-gov.com)
+ URL API Jepang - [https://api.ap1.datadoghq.com](https://api.ap1.datadoghq.com)

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Datadog Anda.

# Mengkonfigurasi koneksi Datadog
<a name="datadog-configuring-connections"></a>

Datadog mendukung otentikasi kustom. Berikut adalah langkah-langkah untuk mengkonfigurasi koneksi Datadog:

Untuk mengkonfigurasi koneksi Datadog:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 

   Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan `API_KEY` dan `APPLICATION_KEY` sebagai kunci. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Datadog.

   1. Berikan Datadog yang ingin Anda sambungkan. `Instance_Url`

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Datadog
<a name="datadog-reading-from-entities"></a>

 **Prasyarat** 

Objek Datadog yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
|  Timeseries Metrik  | Ya | Tidak | Tidak | Ya | Tidak | 
|  Kueri Log  | Ya | Ya | Ya | Ya | Tidak | 

 **Contoh** 

```
Datadog_read = glueContext.create_dynamic_frame.from_options(
    connection_type="datadog",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "log-queries",
        "API_VERSION": "v2",
        "INSTANCE_URL": "https://api.datadoghq.com",
        "FILTER_PREDICATE": "from = `2023-10-03T09:00:26Z`"
    }
```

 **Entitas Datadog dan detail bidang** 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/datadog-reading-from-entities.html)

# Opsi koneksi Datadog
<a name="datadog-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Datadog:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Datadog.
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Datadog Rest API versi yang ingin Anda gunakan. `v1`versi mendukung `metrics-timeseries` entitas sedangkan, `v2` versi mendukung `log-queries` entitas.
+  `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. Contoh URL Datadog. Contoh URL Datadog bervariasi per wilayah. 
+  `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat akun Datadog
<a name="datadog-create-account"></a>

1. Pergi ke [https://www.datadoghq.com/](https://api.datadoghq.com). 

1. Pilih **MULAI GRATIS**.

1. Masukkan informasi yang diperlukan dan daftar. 

1. Instal **Installer Agen Datadog** seperti yang disarankan. 

1. Pastikan akun terdaftar dengan organisasi yang valid (dari daftar yang tersedia) yang memiliki langganan Datadog aktif. 

1. **Setelah masuk ke akun Datadog Anda, arahkan kursor ke nama pengguna Anda di sudut kanan atas untuk melihat detail Kunci:**

   1. Untuk mendapatkan kunci API Anda, pilih **Kunci API**.

   1. Untuk mendapatkan kunci aplikasi Anda, pilih **Kunci Aplikasi**.

# Batasan
<a name="datadog-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Datadog:
+ Datadog tidak mendukung partisi berbasis bidang atau berbasis rekaman.
+ `from`adalah parameter filter wajib untuk `Log Queries` entitas.
+ `from_to_date`dan `query` merupakan parameter filter wajib untuk `Metrics Timeseries` entitas.

# Menghubungkan ke Docusign Monitor
<a name="connecting-to-data-docusign-monitor"></a>

Docusign Monitor membantu organisasi melindungi perjanjian mereka dengan pelacakan round-the-clock aktivitas. Monitor API mengirimkan informasi pelacakan aktivitas ini secara langsung ke tumpukan keamanan atau alat visualisasi data yang ada—memungkinkan tim mendeteksi aktivitas yang tidak sah, menyelidiki insiden, dan merespons ancaman terverifikasi dengan cepat. Ini juga memberikan fleksibilitas, tim keamanan perlu menyesuaikan dasbor dan peringatan untuk memenuhi kebutuhan bisnis tertentu.

**Topics**
+ [AWS Glue dukungan untuk Docusign Monitor](docusign-monitor-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](docusign-monitor-configuring-iam-permissions.md)
+ [Mengkonfigurasi Monitor Docusign](docusign-monitor-configuring.md)
+ [Mengkonfigurasi koneksi Docusign Monitor](docusign-monitor-configuring-connections.md)
+ [Membaca dari entitas Docusign Monitor](docusign-monitor-reading-from-entities.md)
+ [Opsi koneksi Docusign Monitor](docusign-monitor-connection-options.md)
+ [Batasan Docusign Monitor](docusign-monitor-connection-limitations.md)

# AWS Glue dukungan untuk Docusign Monitor
<a name="docusign-monitor-support"></a>

AWS Glue mendukung Docusign Monitor sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Docusign Monitor.

**Didukung sebagai target?**  
Tidak.

**Versi API Docusign Monitor yang didukung**  
Versi Docusign Monitor API berikut didukung:
+ v2.0

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="docusign-monitor-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Monitor Docusign
<a name="docusign-monitor-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Docusign Monitor ke tujuan yang didukung, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="docusign-monitor-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Docusign tempat Anda menggunakan produk Perangkat Lunak Docusign di Monitor Docusign.
+ Di konsol pengembang untuk akun Docusign Anda, Anda telah membuat aplikasi integrasi OAuth 2.0 untuk AWS Glue.

  Aplikasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [OAuth 2.0](https://developers.docusign.com/platform/webhooks/connect/validation-and-security/oauth-connect/) di dokumentasi Docusign Monitor.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Docusign Monitor Anda.

# Mengkonfigurasi koneksi Docusign Monitor
<a name="docusign-monitor-configuring-connections"></a>

Docusign Monitor mendukung jenis hibah AUTHORIZATION\$1CODE.
+ Jenis hibah ini dianggap berkaki tiga OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Docusign Monitor dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Docusign Monitor untuk login dan otorisasi AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk dokumentasi Docusign Monitor publik tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [OAuth untuk Docusign](https://developers.docusign.com/platform/webhooks/connect/validation-and-security/oauth-connect/) Connect.

Untuk mengonfigurasi koneksi Docusign Monitor:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Di bawah **Koneksi**, pilih **Buat koneksi**.

   1. Saat memilih **Sumber Data**, pilih Docusign Monitor.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Menyediakan Aplikasi **Klien Terkelola Pengguna ClientId dari aplikasi** Docusign Monitor.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Docusign Monitor
<a name="docusign-monitor-reading-from-entities"></a>

**Prasyarat**

Objek Docusign Monitor yang ingin Anda baca.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Pemantauan Data | Ya | Ya | Tidak | Ya | Tidak | 

**Contoh:**

```
docusignmonitor_read = glueContext.create_dynamic_frame.from_options(
    connection_type="docusign_monitor",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "monitoring-data",
        "API_VERSION": "v2.0"
    }
```

## Docusign Monitor entitas dan detail bidang
<a name="docusign-monitor-reading-from-entities-field-details"></a>

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/docusign-monitor-reading-from-entities.html)

**Mempartisi kueri**

Docusign Monitor tidak mendukung partisi berbasis lapangan atau berbasis rekaman.

# Opsi koneksi Docusign Monitor
<a name="docusign-monitor-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Docusign Monitor:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Docusign Monitor.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Docusign Monitor Rest API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.

# Batasan Docusign Monitor
<a name="docusign-monitor-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Docusign Monitor:
+ Saat filter diterapkan menggunakan `cursor` bidang, API akan mengambil catatan selama tujuh hari berikutnya mulai dari tanggal yang ditentukan.
+ Jika tidak ada filter yang disediakan, API akan mengambil catatan selama tujuh hari sebelumnya dari tanggal permintaan API saat ini.
+ Docusign Monitor tidak mendukung partisi berbasis lapangan atau berbasis rekaman.
+ Docusign Monitor tidak mendukung fitur Order By.

# Menghubungkan ke Domo
<a name="connecting-to-data-domo"></a>

Domo adalah alat dash-boarding berbasis cloud. Dengan platform aplikasi perusahaan Domo, fondasi yang Anda butuhkan untuk memperluas Domo sudah ada, sehingga Anda dapat membangun solusi khusus Anda lebih cepat.

**Topics**
+ [AWS Glue dukungan untuk Domo](domo-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](domo-configuring-iam-permissions.md)
+ [Mengkonfigurasi Domo](domo-configuring.md)
+ [Mengkonfigurasi koneksi Domo](domo-configuring-connections.md)
+ [Membaca dari entitas Domo](domo-reading-from-entities.md)
+ [Opsi koneksi Domo](domo-connection-options.md)
+ [Keterbatasan domo](domo-connection-limitations.md)

# AWS Glue dukungan untuk Domo
<a name="domo-support"></a>

AWS Glue mendukung Domo sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Domo.

**Didukung sebagai target?**  
Tidak.

**Versi Domo API yang didukung**  
Versi Domo API berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="domo-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Domo
<a name="domo-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Domo ke tujuan yang didukung, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="domo-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Domo yang diaktifkan untuk akses API.
+ Anda memiliki aplikasi di bawah akun pengembang Domo Anda yang menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat aplikasi pengembang Domo](#domo-configuring-creating-developer-app).

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Domo Anda.

## Membuat aplikasi pengembang Domo
<a name="domo-configuring-creating-developer-app"></a>

Untuk mendapatkan ID Klien dan Rahasia Klien, Anda membuat akun pengembang.

1. Buka [halaman login pengembang Domo](https://developer.domo.com/manage-clients).

1. Pilih **Login**.

1. Berikan nama domain dan klik **Lanjutkan**.

1. Arahkan kursor ke **Akun Saya** dan pilih **Klien Baru**.

1. Berikan Nama dan Deskripsi dan pilih ruang lingkup (“data”) dan pilih **Buat**.

1. Ambil **Client Id** dan **Client Secret** yang dihasilkan dari klien baru yang dibuat.

# Mengkonfigurasi koneksi Domo
<a name="domo-configuring-connections"></a>

Domo mendukung jenis hibah CLIENT\$1CREDENTIALS untuk. OAuth2
+ Jenis hibah ini dianggap berkaki dua OAuth karena hanya aplikasi klien yang mengautentikasi dirinya ke server, tanpa keterlibatan kepada pengguna.
+ Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Domo dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol.
+ [Untuk dokumentasi Domo publik tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat OAuth Otentikasi.](https://developer.domo.com/portal/1845fc11bbe5d-api-authentication)

Untuk mengkonfigurasi koneksi Domo:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi token akses aplikasi yang terhubung,`client_id`, dan`client_secret`.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Di bawah **Koneksi**, pilih **Buat koneksi**.

   1. Saat memilih **Sumber Data**, pilih Domo.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Domo
<a name="domo-reading-from-entities"></a>

**Prasyarat**

Objek Domo yang ingin Anda baca. Anda akan memerlukan nama objek seperti Data Set atau Kebijakan Izin Data. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kumpulan Data | Ya | Ya | Ya | Ya | Ya | 
| Kebijakan Izin Data | Tidak | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1"
    }
```

## Entitas domo dan detail bidang
<a name="domo-reading-from-entities-field-details"></a>

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/domo-reading-from-entities.html)

Untuk entitas berikut, Domo menyediakan titik akhir untuk mengambil metadata secara dinamis, sehingga dukungan operator ditangkap pada tingkat tipe data untuk entitas.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/domo-reading-from-entities.html)

## Mempartisi kueri
<a name="domo-reading-from-partitioning"></a>

**Partisi berbasis lapangan**

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2023-01-15T11:18:39.205Z"
  ```

  Untuk bidang Tanggal, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2023-01-15"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.

  Contoh nilai valid:

  ```
  "2023-02-15T11:18:39.205Z"
  ```
+ `NUM_PARTITIONS`: jumlah partisi.

Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel berikut:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/domo-reading-from-entities.html)

Contoh:

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "permissionTime"
        "LOWER_BOUND": "2023-01-15T11:18:39.205Z"
        "UPPER_BOUND": "2023-02-15T11:18:39.205Z"
        "NUM_PARTITIONS": "2"
    }
```

**Partisi berbasis rekaman**

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis catatan, jumlah total catatan yang ada ditanyakan dari Domo, dan dibagi dengan nomor yang disediakan. `NUM_PARTITIONS` Jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.

Contoh:

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "2"
    }
```

# Opsi koneksi Domo
<a name="domo-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Domo:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Domo.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Domo Rest API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk membaca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk membaca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk membaca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk membaca. Jumlah partisi untuk dibaca.

# Keterbatasan domo
<a name="domo-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Domo:
+ Karena keterbatasan SDK, filtrasi tidak berfungsi seperti yang diharapkan untuk bidang yang dapat dikueri yang dimulai dengan '\$1' (misalnya: \$1BATCH\$1ID).
+ Karena keterbatasan API, filtrasi berfungsi pada tanggal sebelum tanggal yang Anda berikan. Ini juga mempengaruhi tarikan inkremental. Untuk mengatasi batasan ini, pilih tanggal sesuai dengan zona waktu Anda terhadap UTC, untuk mendapatkan data untuk tanggal yang diperlukan.

# Menghubungkan ke Dynatrace
<a name="connecting-to-data-dynatrace"></a>

Dynatrace adalah platform yang menawarkan analitik dan otomatisasi untuk observabilitas dan keamanan yang komprehensif. Ini mengkhususkan diri dalam memantau dan mengoptimalkan kinerja aplikasi, infrastruktur, dan pengalaman pengguna.

**Topics**
+ [AWS Glue Dukungan untuk Dynatrace](dynatrace-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](dynatrace-configuring-iam-permissions.md)
+ [Mengkonfigurasi Dynatrace](dynatrace-configuring.md)
+ [Mengkonfigurasi koneksi Dynatrace](dynatrace-configuring-connections.md)
+ [Membaca dari entitas Dynatrace](dynatrace-reading-from-entities.md)
+ [Opsi koneksi Dynatrace](dynatrace-connection-options.md)
+ [Batasan Dynatrace](dynatrace-connection-limitations.md)

# AWS Glue Dukungan untuk Dynatrace
<a name="dynatrace-support"></a>

AWS Glue mendukung Dynatrace sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Dynatrace.

**Didukung sebagai target?**  
Tidak.

**Versi API Dynatrace yang didukung**  
Versi API Dynatrace berikut didukung:
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="dynatrace-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Dynatrace
<a name="dynatrace-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Dynatrace, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="dynatrace-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Dynatrace.
+ Anda telah membuat Token Akses di akun Dynatrace Anda dengan read/write cakupan yang sesuai yang ditetapkan untuk mengakses. APIs Untuk informasi selengkapnya, lihat [Menghasilkan token](https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/basics/dynatrace-api-authentication#create-token).

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Dynatrace Anda.

# Mengkonfigurasi koneksi Dynatrace
<a name="dynatrace-configuring-connections"></a>

Dynatrace mendukung otentikasi kustom.

Untuk mengonfigurasi koneksi Dynatrace:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `apiToken` sebagai kunci.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih Dynatrace.

   1. Berikan akun Dynatrace yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Dynatrace
<a name="dynatrace-reading-from-entities"></a>

**Prasyarat**

Objek Dynatrace yang ingin Anda baca. Anda akan membutuhkan nama objek seperti “masalah”.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Masalah | Ya | Ya | Ya | Ya | Tidak | 

**Contoh:**

```
Dynatrace_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Dynatrace",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "problem",
        "API_VERSION": "v2",
        "INSTANCE_URL": "https://[instanceName].live.dynatrace.com"
    }
```

**Entitas Dynatrace dan detail bidang**:

Dynatrace menyediakan titik akhir untuk mengambil metadata secara dinamis untuk entitas yang didukung. Dengan demikian, dukungan operator ditangkap pada tingkat tipe data.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/dynatrace-reading-from-entities.html)

## Mempartisi kueri
<a name="dynatrace-reading-partitioning-queries"></a>

Dynatrace tidak mendukung partisi berbasis bidang atau berbasis rekaman.

# Opsi koneksi Dynatrace
<a name="dynatrace-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Dynatrace:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Dynatrace.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Dynatrace Rest API yang ingin Anda gunakan.
+ `INSTANCE_URL`(String) - Digunakan untuk Baca. URL instance Dynatrace yang valid.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

# Batasan Dynatrace
<a name="dynatrace-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Dynatrace:
+ Dynatrace tidak mendukung partisi berbasis bidang atau berbasis rekaman.
+ Untuk fitur Select All, jika Anda memberikan “field” di filter maka itu tidak akan memungkinkan catatan menjadi lebih dari 10 per halaman.
+ Ukuran halaman maksimum yang didukung adalah 500. Jika Anda memilih salah satu bidang [`evidenceDetails, impactAnalysis, recentComments`] saat membuat alur maka catatan per halaman akan default menjadi 10.

# Menghubungkan ke Iklan Facebook
<a name="connecting-to-data-facebook-ads"></a>

Facebook Ads adalah platform periklanan digital yang kuat yang digunakan oleh bisnis dari semua ukuran untuk menjangkau audiens target mereka dan mencapai berbagai tujuan pemasaran. Platform ini memungkinkan pengiklan untuk membuat iklan yang disesuaikan yang dapat ditampilkan di seluruh keluarga aplikasi dan layanan Facebook, termasuk Facebook dan Messenger. Dengan kemampuan penargetan canggihnya, Iklan Facebook memungkinkan bisnis menjangkau demografi, minat, perilaku, dan lokasi tertentu.

**Topics**
+ [AWS Glue dukungan untuk Iklan Facebook](facebook-ads-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](facebook-ads-configuring-iam-permissions.md)
+ [Mengkonfigurasi Iklan Facebook](facebook-ads-configuring.md)
+ [Mengonfigurasi koneksi Iklan Facebook](facebook-ads-configuring-connections.md)
+ [Membaca dari entitas Iklan Facebook](facebook-ads-reading-from-entities.md)
+ [Opsi koneksi Iklan Facebook](facebook-ads-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Iklan Facebook](facebook-ads-connector-limitations.md)

# AWS Glue dukungan untuk Iklan Facebook
<a name="facebook-ads-support"></a>

AWS Glue mendukung Iklan Facebook sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Iklan Facebook.

**Didukung sebagai target?**  
Tidak.

**Versi API Iklan Facebook yang didukung**  
Versi API Iklan Facebook berikut didukung:
+ v17.0
+ v18.0
+ v19.0
+ v20.0

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="facebook-ads-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Iklan Facebook
<a name="facebook-ads-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Iklan Facebook, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="facebook-ads-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Akun Standar Facebook diakses langsung melalui Facebook.
+ Otentikasi pengguna diperlukan untuk menghasilkan token akses.
+ Konektor SDK Iklan Facebook akan menerapkan OAuth alur *Token Akses Pengguna*.
+ Kami OAuth2 menggunakan.0 untuk mengautentikasi permintaan API kami ke Iklan Facebook. Otentikasi berbasis web ini berada di bawah arsitektur Multi-Factor Authentication (MFA) Authentication, yang merupakan superset dari 2FA.
+ Pengguna perlu memberikan izin untuk mengakses titik akhir. [https://developers.facebook.com/docs/permissions](https://developers.facebook.com/docs/permissions)

## Mendapatkan kredensi OAuth 2.0
<a name="facebook-ads-configuring-creating-facebook-ads-oauth2-credentials"></a>

Untuk mendapatkan kredensi API sehingga Anda dapat melakukan panggilan yang diautentikasi ke instans Anda, lihat [REST API di Panduan Pengembang](https://developers.facebook-ads.com/rest-api/) Iklan Facebook.

# Mengonfigurasi koneksi Iklan Facebook
<a name="facebook-ads-configuring-connections"></a>

Iklan Facebook mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ Jenis hibah ini dianggap berkaki tiga OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Iklan Facebook dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Iklan Facebook untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token akses. Token pengguna sistem yang kedaluwarsa berlaku selama 60 hari dari tanggal yang dibuat atau diperbarui. Untuk membuat kontinuitas, pengembang harus menyegarkan token akses dalam waktu 60 hari. Gagal melakukannya mengakibatkan kehilangan token akses dan mengharuskan pengembang mendapatkan yang baru untuk mendapatkan kembali akses API. Lihat [Segarkan Token Akses](https://developers.facebook.com/docs/marketing-api/system-users/install-apps-and-generate-tokens/).
+ Untuk dokumentasi Iklan Facebook publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Menggunakan OAuth 2.0 untuk Mengakses Google APIs](https://developers.google.com/identity/protocols/oauth2) di panduan Google for Developers.

Untuk mengonfigurasi koneksi Iklan Facebook:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Iklan Facebook.

   1. Berikan contoh Iklan Facebook yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Iklan Facebook
<a name="facebook-ads-reading-from-entities"></a>

**Prasyarat**

Objek Iklan Facebook yang ingin Anda baca. Anda akan membutuhkan nama objek. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kampanye | Ya | Ya | Tidak | Ya | Ya | 
| Set Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Iklan Kreatif | Tidak | Ya | Tidak | Ya | Tidak | 
| Wawasan - Akun | Tidak | Ya | Tidak | Ya | Tidak | 
| AdAccounts | Ya | Ya | Tidak | Ya | Tidak | 
| Wawasan - Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Wawasan - AdSet | Ya | Ya | Tidak | Ya | Ya | 
| Wawasan - Kampanye | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
FacebookAds_read = glueContext.create_dynamic_frame.from_options(
    connection_type="FacebookAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0"
    }
```

## Entitas dan detail bidang Iklan Facebook
<a name="facebook-ads-reading-entity-and-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Akun Iklan](https://developers.facebook.com/docs/marketing-api/reference/ad-account)
+ [Kampanye](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group)
+ [Set Iklan](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign)
+ [Iklan](https://developers.facebook.com/docs/marketing-api/reference/adgroup)
+ [Iklan Kreatif](https://developers.facebook.com/docs/marketing-api/reference/ad-creative)
+ [Akun Iklan Insight](https://developers.facebook.com/docs/marketing-api/reference/ad-account/insights)
+ [Iklan Wawasan](https://developers.facebook.com/docs/marketing-api/reference/adgroup/insights/)
+ [Wawasan AdSets](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign/insights)
+ [Kampanye Wawasan](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights)

Untuk informasi selengkapnya, lihat [API Pemasaran](https://developers.facebook.com/docs/marketing-api/reference/v21.0).

**catatan**  
Jenis data Struct dan List dikonversi ke tipe data String dalam respons konektor.

## Mempartisi kueri
<a name="facebook-ads-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang ini, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2022-01-01"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
FacebookADs_read = glueContext.create_dynamic_frame.from_options(
    connection_type="FacebookAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0",
        "PARTITION_FIELD": "created_time"
        "LOWER_BOUND": "2022-01-01"
        "UPPER_BOUND": "2024-01-02"
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Iklan Facebook
<a name="facebook-ads-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Iklan Facebook:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk membaca. Nama objek Anda di Iklan Facebook.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk membaca. Versi Facebook Ads Rest API yang ingin Anda gunakan. Misalnya: v1.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk membaca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk membaca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk membaca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk membaca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk membaca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk membaca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk membaca. Jumlah partisi untuk dibaca.
+ `TRANSFER_MODE`(String) - Default: SINKRONISASI. Digunakan untuk membaca asinkron.

# Keterbatasan dan catatan untuk konektor Iklan Facebook
<a name="facebook-ads-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Iklan Facebook:
+ Karena Iklan Facebook mendukung metadata dinamis, semua bidang dapat ditanyakan. Semua bidang mendukung filtrasi dan catatan diambil jika data tersedia, atau Facebook mengembalikan respons Bad request (400) dengan pesan kesalahan yang tepat.
+ Hitungan panggilan aplikasi adalah jumlah panggilan yang dapat dilakukan pengguna selama jendela satu jam bergulir 200 dikalikan dengan jumlah pengguna. Untuk detail batas tarif, lihat Batas [Tarif, dan Batas](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/) [Tarif Kasus Penggunaan Bisnis](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#buc-rate-limits).

# Menghubungkan ke Wawasan Halaman Facebook
<a name="connecting-to-data-facebook-page-insights"></a>

Facebook Pages memungkinkan perusahaan dan kelompok kepentingan lainnya untuk membuat halaman untuk jejaring sosial Facebook.com. Perusahaan menggunakan halaman ini untuk berbagi jam buka, membuat pengumuman, dan terlibat dengan pelanggan secara online. Jika Anda adalah pengguna Facebook Page Insights, Anda dapat terhubung AWS Glue ke akun Facebook Page Insights Anda. Anda dapat menggunakan Facebook Page Insights sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Facebook Page Insights ke AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Facebook Page Insights](facebook-page-insights-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](facebook-page-insights-configuring-iam-permissions.md)
+ [Mengkonfigurasi Wawasan Halaman Facebook](facebook-page-insights-configuring.md)
+ [Mengkonfigurasi koneksi Facebook Page Insights](facebook-page-insights-configuring-connections.md)
+ [Membaca dari entitas Facebook Page Insights](facebook-page-insights-reading-from-entities.md)
+ [Opsi koneksi Facebook Page Insights](facebook-page-insights-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Facebook Page Insights](facebook-page-insights-connector-limitations.md)

# AWS Glue dukungan untuk Facebook Page Insights
<a name="facebook-page-insights-support"></a>

AWS Glue mendukung Wawasan Halaman Facebook sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Facebook Page Insights.

**Didukung sebagai target?**  
Tidak.

**Versi API Wawasan Halaman Facebook yang didukung**  
Versi API Facebook Page Insights berikut didukung:
+ v17
+ v18
+ v19
+ v20
+ v21

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="facebook-page-insights-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Wawasan Halaman Facebook
<a name="facebook-page-insights-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Facebook Page Insights, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="facebook-page-insights-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Akun Standar Facebook diakses langsung melalui Facebook.
+ Otentikasi pengguna diperlukan untuk menghasilkan token akses.
+ Konektor Facebook Page Insights mengimplementasikan alur Token OAuth Akses Pengguna.
+ Konektor menggunakan OAuth2 .0 untuk mengautentikasi permintaan API kami ke Facebook Page Insights. Ini termasuk dalam arsitektur Multi-Factor Authentication (MFA), yang merupakan superset dari 2FA. Ini adalah otentikasi berbasis web.
+ Pengguna perlu memberikan izin untuk mengakses titik akhir. Untuk mengakses data pengguna, otorisasi endpoint ditangani melalui izin dan fitur.

# Mengkonfigurasi koneksi Facebook Page Insights
<a name="facebook-page-insights-configuring-connections"></a>

Untuk mengonfigurasi koneksi Wawasan Halaman Facebook:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Wawasan Halaman Facebook.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih URL kode otorisasi.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Facebook Page Insights
<a name="facebook-page-insights-reading-from-entities"></a>

**Prasyarat**

Objek Wawasan Halaman Facebook yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Konten Halaman | Ya | Tidak | Ya | Ya | Ya | 
| Klik Halaman CTA | Ya | Tidak | Tidak | Ya | Ya | 
| Keterlibatan Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Tayangan Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Postingan Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Keterlibatan Posting Halaman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Reaksi Posting Halaman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Reaksi Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Cerita | Ya | Tidak | Tidak | Ya | Ya | 
| Demografi Pengguna Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Tampilan Video Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Tampilan Halaman | Ya | Tidak | Tidak | Ya | Ya | 
| Halaman Video Postingan | Ya | Tidak | Tidak | Ya | Ya | 
| Halaman | Tidak | Ya | Tidak | Ya | Tidak | 
| Umpan | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
facebookPageInsights_read = glueContext.create_dynamic_frame. from options(
    connection_type="facebookpageinsights",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v21"
   }
```

**Detail bidang Wawasan Halaman Facebook**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/facebook-page-insights-reading-from-entities.html)

## Mempartisi kueri
<a name="facebook-page-insights-reading-partitioning-queries"></a>

Partisi **berbasis filter**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
facebookPageInsights_read = glueContext.create_dynamic_frame.from_options(
     connection_type="facebookpageinsights",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v21",
         "PARTITION_FIELD": "created_Time"
         "LOWER_BOUND": "2024-10-27T07:00:00+0000"
         "UPPER_BOUND": "2024-10-27T07:00:00+0000"
         "NUM_PARTITIONS": "10"
     }
```

# Opsi koneksi Facebook Page Insights
<a name="facebook-page-insights-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Facebook Page Insights:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Facebook Page Insights.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Facebook Page Insights Rest API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL instans Wawasan Halaman Facebook yang valid.

# Keterbatasan dan catatan untuk konektor Facebook Page Insights
<a name="facebook-page-insights-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Facebook Page Insights:
+ Sebagian besar metrik akan diperbarui setiap 24 jam sekali.
+ Hanya dua tahun terakhir data wawasan yang tersedia.
+ Hanya 90 hari wawasan yang dapat dilihat pada satu waktu saat menggunakan `until` parameter `since` dan.

# Menghubungkan ke Freshdesk
<a name="connecting-to-data-freshdesk"></a>

Freshdesk adalah perangkat lunak dukungan pelanggan berbasis cloud yang kaya fitur dan mudah digunakan. Dengan beberapa saluran dukungan yang tersedia, termasuk obrolan langsung, email, telepon, dan media sosial, Anda dapat membantu pelanggan melalui metode komunikasi pilihan mereka. Jika Anda adalah pengguna Freshdesk, Anda dapat terhubung AWS Glue ke akun Freshdesk Anda. Anda dapat menggunakan Freshdesk sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Freshdesk ke AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Freshdesk](freshdesk-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](freshdesk-configuring-iam-permissions.md)
+ [Mengkonfigurasi Freshdesk](freshdesk-configuring.md)
+ [Mengkonfigurasi koneksi Freshdesk](freshdesk-configuring-connections.md)
+ [Membaca dari entitas Freshdesk](freshdesk-reading-from-entities.md)
+ [Opsi koneksi Freshdesk](freshdesk-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Freshdesk](freshdesk-connector-limitations.md)

# AWS Glue dukungan untuk Freshdesk
<a name="freshdesk-support"></a>

AWS Glue mendukung Freshdesk sebagai berikut:

**Didukung sebagai sumber?**  
Ya — Sinkronisasi dan Async. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Freshdesk.

**Didukung sebagai target?**  
Tidak.

**Versi Freshdesk API yang didukung**  
Versi Freshdesk API berikut didukung:
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="freshdesk-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Freshdesk
<a name="freshdesk-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Freshdesk, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="freshdesk-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Akun Freshdesk. Anda dapat memilih dari edisi Gratis, Pertumbuhan, Pro atau Perusahaan.
+ Kunci API pengguna Freshdesk.

# Mengkonfigurasi koneksi Freshdesk
<a name="freshdesk-configuring-connections"></a>

Freshdesk mendukung otentikasi kustom.

Untuk dokumentasi Freshdesk publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat otentikasi [Freshdesk](https://developer.freshdesk.com/api/#authentication).

Berikut ini adalah langkah-langkah untuk mengkonfigurasi koneksi Freshdesk:
+ Di AWS Secrets Manager, buat rahasia dengan detail berikut:
  + Untuk aplikasi terkoneksi yang dikelola pelanggan — rahasianya harus berisi kunci API aplikasi yang terhubung dengan `apiKey` sebagai kunci. Perhatikan bahwa Anda harus membuat rahasia per koneksi di AWS Glue.
+ Dalam AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:
  + Saat memilih **sumber Data**, pilih Freshdesk.
  + Berikan contoh Freshdesk yang ingin Anda sambungkan. `INSTANCE_URL`
  + Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

    ```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:DescribeSecret",
            "secretsmanager:GetSecretValue",
            "secretsmanager:PutSecretValue",
            "ec2:CreateNetworkInterface",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DeleteNetworkInterface"
          ],
          "Resource": "*"
        }
      ]
    }
    ```

------
  + Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.
  + Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.
+ Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.
+ Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari entitas Freshdesk
<a name="freshdesk-reading-from-entities"></a>

**Prasyarat**

Objek Freshdesk yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber Sinkronisasi**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Agen | Ya | Ya | Tidak | Ya | Ya | 
| Jam Kerja | Tidak | Ya | Tidak | Ya | Ya | 
| Perusahaan | Ya | Ya | Tidak | Ya | Ya | 
| Kontak  | Ya | Ya | Tidak | Ya | Ya | 
| Percakapan | Tidak | Ya | Tidak | Ya | Tidak | 
| Konfigurasi Email | Tidak | Ya | Tidak | Ya | Tidak | 
| Kotak Masuk Email | Ya | Ya | Ya | Ya | Tidak | 
| Kategori Forum | Tidak | Ya | Tidak | Ya | Tidak | 
| Forum | Tidak | Ya | Tidak | Ya | Tidak | 
| Grup | Tidak | Ya | Tidak | Ya | Tidak | 
| Produk | Tidak | Ya | Tidak | Ya | Tidak | 
| Peran | Tidak | Ya | Tidak | Ya | Tidak | 
| Peringkat Kepuasan | Ya | Ya | Tidak | Ya | Tidak | 
| Keterampilan | Tidak | Ya | Tidak | Ya | Tidak | 
| Solusi | Ya | Ya | Tidak | Ya | Tidak | 
| Survei | Tidak | Ya | Tidak | Ya | Tidak | 
| Tiket | Ya | Ya | Ya | Ya | Ya | 
| Entri Waktu | Ya | Ya | Tidak | Ya | Tidak | 
| Topik | Tidak | Ya | Tidak | Ya | Tidak | 
| Komentar Topik | Tidak | Ya | Tidak | Ya | Tidak | 

**Entitas yang didukung untuk sumber Async**:


| Entitas | Versi API | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | --- | 
| Perusahaan | v2 | Tidak | Tidak | Tidak | Tidak | Tidak | 
| Kontak  | v2 | Tidak | Tidak | Tidak | Tidak | Tidak | 

**Contoh:**

```
freshdesk_read = glueContext.create_dynamic_frame.from_options(
    connection_type="freshdesk",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v2"
    }
```

**Entitas Freshdesk dan detail bidang**:


| Entitas | Bidang | 
| --- | --- | 
| Agen | https://developers.freshdesk.com/api/\$1list\$1all\$1agents | 
| Jam kerja | https://developers.freshdesk.com/api/\$1list\$1all\$1business\$1hours | 
| Komentar | https://developers.freshdesk.com/api/\$1comment\$1attributess | 
| Perusahaan | https://developers.freshdesk.com/api/\$1companies | 
| Kontak  | https://developers.freshdesk.com/api/\$1list\$1all\$1contacts | 
| Percakapan | https://developers.freshdesk.com/api/\$1list\$1all\$1ticket\$1notes | 
| Konfigurasi email | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1configs | 
| Kotak masuk email | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1mailboxes | 
| Forum-kategori | https://developers.freshdesk.com/api/\$1category\$1attributes | 
| Forum | https://developers.freshdesk.com/api/\$1forum\$1attributes | 
| Grup | https://developers.freshdesk.com/api/\$1list\$1all\$1groups | 
| Produk | https://developers.freshdesk.com/api/\$1list\$1all\$1products | 
| Peran | https://developers.freshdesk.com/api/\$1list\$1all\$1roles | 
| Peringkat kepuasan | https://developers.freshdesk.com/api/\$1view\$1all\$1satisfaction\$1ratingss | 
| Keterampilan | https://developers.freshdesk.com/api/\$1list\$1all\$1skills | 
| Solusi | https://developers.freshdesk.com/api/\$1solution\$1content | 
| Survei | https://developers.freshdesk.com/api/\$1list\$1all\$1survey | 
| Tiket | https://developers.freshdesk.com/api/\$1list\$1all\$1tickets | 
| Entri waktu | https://developers.freshdesk.com/api/\$1list\$1all\$1time\$1entries | 
| Topik | https://developers.freshdesk.com/api/\$1topic\$1attributes | 

## Mempartisi kueri
<a name="freshdesk-reading-partitioning-queries"></a>

Partisi **berbasis filter**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
freshDesk_read = glueContext.create_dynamic_frame.from_options(
     connection_type="freshdesk",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v2",
         "PARTITION_FIELD": "Created_Time"
         "LOWER_BOUND": " 2024-10-27T23:16:08Z“
         "UPPER_BOUND": " 2024-10-27T23:16:08Z"
         "NUM_PARTITIONS": "10"
     }
```

# Opsi koneksi Freshdesk
<a name="freshdesk-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Freshdesk:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Freshdesk.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Freshdesk Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL instance Freshdesk yang valid.
+ `TRANSFER_MODE`(String) - Digunakan untuk menunjukkan apakah jenis pengolahan seperti `SYNC` atau `ASYNC` diatur ke secara `SYNC` default. (Opsional)

# Keterbatasan dan catatan untuk konektor Freshdesk
<a name="freshdesk-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Freshdesk:
+ `Tickets`Entitas `Company``Contacts`,, dan dengan filtrasi memiliki batasan pagination. Mereka hanya mengembalikan 30 catatan per halaman dan nilai halaman dapat diatur hingga maksimum 10 (mengambil maksimum 300 catatan).
+ `Tickets`Entitas tidak mengambil catatan yang lebih lama dari 30 hari.
+ `Tickets`Entitas `Company``Contacts`,, dan mendukung tipe data 'Tanggal' dalam filtrasi. Anda harus memilih frekuensi pemicu 'Harian' dan seterusnya untuk ketiga entitas ini. Memilih 'Menit' atau 'Per Jam' dapat menyebabkan duplikat data. Juga, saat memilih bidang ini untuk filtrasi, hanya nilai tanggal yang harus dipilih, karena hanya akan mempertimbangkan bagian tanggal dari stempel waktu yang dipilih.
+ Jumlah panggilan API per menit didasarkan pada paket Anda. Batas ini diterapkan secara luas akun terlepas dari faktor-faktor seperti jumlah agen atau alamat IP yang digunakan untuk melakukan panggilan. Untuk semua pengguna uji coba, ada batas API default 50 panggilan/menit. Untuk lebih jelasnya, lihat [Freshdesk](https://developer.freshdesk.com/api/#ratelimit)
+ Untuk entitas apa pun, hanya satu Export/Async Job yang diproses dalam satu waktu. Pekerjaan baru hanya akan diproses setelah pekerjaan yang ada berhasil atau gagal. Untuk lebih jelasnya, lihat [Freshdesk](https://developers.freshdesk.com/api/#export_contact)
+ Bidang berikut didukung untuk panggilan API Sinkronisasi, tetapi tidak supported/allowed boleh diteruskan di badan permintaan API Async.
  + id
  + dibuat\$1at
  + updated\$1at
  + diperbarui\$1sejak
  + aktif
  + perusahaan\$1id
  + other\$1companies
  + avatar
  + view\$1all\$1tickets
  + dihapus
  + email lainnya\$1
  + status
  + tanda
  + tag

# Menghubungkan ke Freshsales
<a name="connecting-to-data-freshsales"></a>

Freshsales adalah CRM intuitif yang membantu tenaga penjualan mengeluarkan dugaan dari penjualan. Dengan telepon dan email bawaan, tugas, janji temu dan catatan, tenaga penjualan tidak perlu beralih di antara tab untuk menindaklanjuti prospek. Anda dapat mengelola penawaran Anda dengan lebih baik dengan tampilan pipeline dan mendorong lebih banyak penawaran ke penutupan. Jika Anda adalah pengguna Freshsales, Anda dapat terhubung AWS Glue ke akun Freshsales Anda. Anda dapat menggunakan Freshsales sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Freshsales ke AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Freshsales](freshsales-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](freshsales-configuring-iam-permissions.md)
+ [Mengkonfigurasi Freshsales](freshsales-configuring.md)
+ [Mengkonfigurasi koneksi Freshsales](freshsales-configuring-connections.md)
+ [Membaca dari entitas Freshsales](freshsales-reading-from-entities.md)
+ [Opsi koneksi Freshsales](freshsales-connection-options.md)
+ [Keterbatasan Freshsales](freshsales-connection-limitations.md)

# AWS Glue dukungan untuk Freshsales
<a name="freshsales-support"></a>

AWS Glue mendukung Freshsales sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Freshsales.

**Didukung sebagai target?**  
Tidak.

**Versi API Freshsales yang didukung**  
Versi API Freshsales berikut didukung:
+ v1.0

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="freshsales-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Freshsales
<a name="freshsales-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Freshsales, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="freshsales-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Freshsales.
+ Anda memiliki kunci API pengguna.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Freshsales Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Freshsales.

# Mengkonfigurasi koneksi Freshsales
<a name="freshsales-configuring-connections"></a>

Freshsales mendukung otentikasi kustom.

[Untuk dokumentasi Freshsales publik tentang pembuatan kunci API yang diperlukan untuk autentikasi kustom, lihat Autentikasi.](https://developer.freshsales.io/api/#authentication)

Untuk mengkonfigurasi koneksi Freshsales:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `apiSecretKey` sebagai kunci. Rahasia juga perlu berisi pasangan kunci-nilai lain dengan `apiKey` sebagai kunci dan `token` sebagai nilai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih Freshsales.

   1. Berikan akun Freshsales yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Freshsales
<a name="freshsales-reading-from-entities"></a>

**Prasyarat**

Objek Freshsales yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Akun | Ya | Ya | Ya | Ya | Ya | 
| Kontak  | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
freshSales_read = glueContext.create_dynamic_frame.from_options(
     connection_type="freshsales",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v1.0"
     }
```

**Entitas Freshsales dan detail bidang**:

Freshsales menyediakan titik akhir untuk mengambil metadata secara dinamis untuk entitas yang didukung. Dengan demikian, dukungan operator ditangkap pada tingkat tipe data.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/freshsales-reading-from-entities.html)

## Mempartisi kueri
<a name="freshsales-reading-partitioning-queries"></a>

Partisi **berbasis filter**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
freshSales_read = glueContext.create_dynamic_frame.from_options(
     connection_type="freshsales",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v1",
         "PARTITION_FIELD": "Created_Time"
         "LOWER_BOUND": " 2024-10-15T21:16:25Z"
         "UPPER_BOUND": " 2024-10-20T21:25:50Z"
         "NUM_PARTITIONS": "10"
     }
```

# Opsi koneksi Freshsales
<a name="freshsales-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Freshsales:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Freshsales.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Freshsales Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - Digunakan untuk Baca. URL instance Freshsales yang valid.

# Keterbatasan Freshsales
<a name="freshsales-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Freshsales:
+ Di Freshsales, batas API Rate adalah 1000 permintaan API per jam per akun (lihat [Kesalahan](https://developer.freshsales.io/api/#error). Tetapi batas ini dapat diperpanjang dengan paket langganan Enterprise (lihat [perbandingan paket](https://www.freshworks.com/crm/pricing-compare/)).

# Menyambung ke Google Ads
<a name="connecting-to-googleads"></a>

 Google Ads API adalah antarmuka terprogram untuk Google Ads, yang digunakan untuk mengelola akun dan kampanye Google Ads yang besar atau kompleks. Jika Anda pengguna Google Ads, Anda dapat terhubung AWS Glue ke akun Google Ads Anda. Kemudian, Anda dapat menggunakan Google Ads sebagai sumber data di lowongan ETL Anda. Jalankan tugas ini untuk mentransfer data antara Google Ads dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Google Ads](googleads-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](googleads-configuring-iam-permissions.md)
+ [Mengonfigurasi Google Ads](googleads-configuring.md)
+ [Mengonfigurasi koneksi Google Ads](googleads-configuring-connections.md)
+ [Membaca dari entitas Google Ads](googleads-reading-from-entities.md)
+ [Opsi koneksi Google Ads](googleads-connection-options.md)
+ [Membuat akun Google Ads](googleads-create-account.md)
+ [Batasan](googleads-connector-limitations.md)

# AWS Glue dukungan untuk Google Ads
<a name="googleads-support"></a>

AWS Glue mendukung Google Ads sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan lowongan AWS Glue ETL untuk menanyakan data dari Google Ads.

**Didukung sebagai target?**  
Tidak.

**Versi Google Ads API yang didukung**  
v18

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="googleads-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengonfigurasi Google Ads
<a name="googleads-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer dari Google Ads, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="googleads-configuring-min-requirements"></a>
+  Anda memiliki akun Google Ads dengan Email dan Kata Sandi. Untuk informasi selengkapnya tentang cara membuat akun, lihat [Membuat akun Google Ads](googleads-create-account.md). 
+  Akun Google Ads Anda diaktifkan untuk akses API. Semua penggunaan Google Ads API tersedia tanpa biaya tambahan. 
+  Akun Google Ads memungkinkan Anda menginstal aplikasi yang terhubung. Jika Anda tidak memiliki akses ke fungsi ini, hubungi administrator Google Ads Anda. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Google Ads Anda. 

# Mengonfigurasi koneksi Google Ads
<a name="googleads-configuring-connections"></a>

 Google Ads mendukung jenis `AUTHORIZATION_CODE` hibah untuk OAuth2. 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Google Ads tempat pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Google Ads mereka. 

 Pengguna dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Google Ads dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Google Ads untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

 Untuk informasi selengkapnya, lihat [dokumentasi Google Ads publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi](https://developers.google.com/workspace/guides/create-credentials). 

Untuk mengonfigurasi koneksi Google Ads:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk jenis AuthorizationCode hibah: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Google Ads.

   1. Berikan Google `developer token` Ads yang ingin Anda sambungkan.

   1. Berikan Google `MANAGER ID` Ads jika Anda ingin masuk sebagai pengelola.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Google Ads
<a name="googleads-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Google Ads yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Iklan Grup Iklan | Ya | Ya | Ya | Tidak | Ya | 
| Grup Iklan | Ya | Ya | Ya | Tidak | Ya | 
| Anggaran Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Anggaran Akun | Ya | Tidak | Ya | Ya | Tidak | 
| Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Akun | Ya | Tidak | Ya | Tidak | Tidak | 

 **Contoh** 

```
googleAds_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googleads",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "campaign-3467***",
        "API_VERSION": "v16"
    }
```

 **Entitas Google Ads dan detail bidang** 


| Entitas | Field | Tipe data | Operator yang Didukung | 
| --- | --- | --- | --- | 
| Akun | ResourceName | String | \$1=, = | 
| Akun | callReportingEnabled | Boolean | \$1=, = | 
| Akun | callConversionReportingDiaktifkan | Boolean | \$1=, = | 
| Akun | callConversionAction | String | \$1=, = | 
| Akun | conversionTrackingId | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | crossAccountConversionTrackingId | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | payPerConversionEligibilityFailureReasons | Daftar |  | 
| Akun | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | currencyCode | String | \$1 =, =, SEPERTI | 
| Akun | Zona Waktu | String | \$1 =, =, SEPERTI | 
| Akun | autoTaggingEnabled | Boolean | \$1=, = | 
| Akun | hasPartnersBadge | Boolean | \$1=, = | 
| Akun | manajer | Boolean | \$1=, = | 
| Akun | TestAccount | Boolean | \$1=, = | 
| Akun | date | Date | ANTARA, =, <, >, <=, >= | 
| Akun | CostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | acceptedCustomerDataKetentuan | Boolean |  | 
| Akun | conversionTrackingStatus | String | \$1 =, =, SEPERTI | 
| Akun | enhancedConversionsForLeadsEnabled | Boolean |  | 
| Akun | googleAdsConversionPelanggan | String |  | 
| Akun | status | String | \$1=, = | 
| Akun | allConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Akun | allConversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Akun | conversionsByConversionTanggal | Ganda | \$1=, =, <, > | 
| Akun | conversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Akun | valuePerAllConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Akun | VideoViews | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | mengeklik | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | InvalidClicks | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | costPerAllKonversi | Ganda | \$1=, =, <, > | 
| Akun | costPerConversion | Ganda | \$1=, =, <, > | 
| Akun | konversi | Ganda | \$1=, =, <, > | 
| Akun | absoluteTopImpressionPersentase | Ganda | \$1=, =, <, > | 
| Akun | kesan | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | topImpressionPercentage | Ganda | \$1=, =, <, > | 
| Akun | Rata-rataECPC | Ganda | \$1=, =, <, > | 
| Akun | activeViewMeasurableCostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Akun | Rata-RataCost | Ganda | \$1=, =, <, > | 
| Akun | ctr | Ganda | \$1=, =, <, > | 
| Akun | activeViewCtr | Ganda | \$1=, =, <, > | 
| Akun | searchImpressionShare | Ganda | \$1=, =, <, > | 
| Akun | ConversionAction | String | \$1=, = | 
| Akun | conversionActionCategory | String | \$1=, = | 
| Akun | conversionActionName | String | \$1 =, =, SEPERTI | 
| Anggaran Akun | ResourceName | String | \$1=, = | 
| Anggaran Akun | status | String | \$1=, = | 
| Anggaran Akun | proposedEndTimeTipe | String | \$1=, = | 
| Anggaran Akun | approvedEndTimeTipe | String | \$1=, = | 
| Anggaran Akun | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Akun | Pengaturan Penagihan | String | \$1=, = | 
| Anggaran Akun | name | String | \$1 =, =, SEPERTI | 
| Anggaran Akun | approvedStartDateWaktu |  DateTime | ANTARA, =, <, >, <=, >= | 
| Anggaran Akun | proposedSpendingLimitMikro | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Akun | approvedSpendingLimitMikro | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Akun | adjustedSpendingLimitMikro | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Akun | amountServedMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | ResourceName | String | \$1 =, =, SEPERTI | 
| Grup Iklan | status | String | \$1 =, =, SEPERTI | 
| Grup Iklan | jenis | String | \$1 =, =, SEPERTI | 
| Grup Iklan | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | name | String | \$1 =, =, SEPERTI | 
| Grup Iklan | kampanye | String | \$1=, = | 
| Grup Iklan | cpcBidMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | targetCpaMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | cpmBidMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | cpvBidMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | targetCpmMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | effectiveTargetCpaMikro | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | date | Date | ANTARA, =, <, >, <=, >= | 
| Grup Iklan | CostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | useAudienceGrouped | Boolean | \$1=, = | 
| Grup Iklan | effectiveCpcBidMikro | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | allConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Grup Iklan | allConversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Grup Iklan | conversionsByConversionTanggal | Ganda | \$1=, =, <, > | 
| Grup Iklan | conversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Grup Iklan | valuePerAllConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Grup Iklan | valuePerConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Grup Iklan | Rata-RataCost | Ganda | \$1=, =, <, > | 
| Grup Iklan | costPerAllKonversi | Ganda | \$1=, =, <, > | 
| Grup Iklan | costPerConversion | Ganda | \$1=, =, <, > | 
| Grup Iklan | averagePageViews | Ganda | \$1=, =, <, > | 
| Grup Iklan | VideoViews | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | mengeklik | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | AllConsions | Ganda | \$1=, =, <, > | 
| Grup Iklan | Rata-rataECPC | Ganda | \$1=, =, <, > | 
| Grup Iklan | absoluteTopImpressionPersentase | Ganda | \$1=, =, <, > | 
| Grup Iklan | kesan | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Grup Iklan | topImpressionPercentage | Ganda | \$1=, =, <, > | 
| Grup Iklan | activeViewCtr | Ganda | \$1=, =, <, > | 
| Grup Iklan | ctr | Ganda | \$1=, =, <, > | 
| Grup Iklan | searchTopImpressionBagikan | Ganda | \$1=, =, <, > | 
| Grup Iklan | searchImpressionShare | Ganda | \$1=, =, <, > | 
| Grup Iklan | searchAbsoluteTopImpressionShare | Ganda | \$1=, =, <, > | 
| Grup Iklan | RelativeCTR | Ganda | \$1=, =, <, > | 
| Grup Iklan | ConversionAction | String | \$1=, = | 
| Grup Iklan | conversionActionCategory | String | \$1=, = | 
| Grup Iklan | conversionActionName | String | \$1 =, =, SEPERTI | 
| Grup Iklan | UpdateMask | String |  | 
| Grup Iklan | buat | Struct |  | 
| Grup Iklan | perbarui | Struct |  | 
| Grup Iklan | PrimaryStatus | String | \$1=, = | 
| Grup Iklan | primaryStatusReasons | Daftar |  | 
| Iklan Grup Iklan | ResourceName | String | \$1=, = | 
| Iklan Grup Iklan | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | status | String | \$1=, = | 
| Iklan Grup Iklan | label | Daftar |  | 
| Iklan Grup Iklan | AdGroup | String | \$1=, = | 
| Iklan Grup Iklan | CostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | Status Persetujuan | String | \$1=, = | 
| Iklan Grup Iklan | UlasanStatus | String | \$1=, = | 
| Iklan Grup Iklan | AdStrength | String | \$1=, = | 
| Iklan Grup Iklan | jenis | String | \$1=, = | 
| Iklan Grup Iklan | Nama bisnis | String | \$1 =, =, SEPERTI | 
| Iklan Grup Iklan | date | Date | ANTARA, =, <, >, <=, >= | 
| Iklan Grup Iklan | allConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | allConversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | conversionsByConversionTanggal | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | conversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | valuePerAllConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | valuePerConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | activeViewMeasurableCostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | Rata-RataCost | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | costPerAllKonversi | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | costPerConversion | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | mengeklik | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | averagePageViews | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | VideoViews | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | AllConsions | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | Rata-rataECPC | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | topImpressionPercentage | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | kesan | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Iklan Grup Iklan | absoluteTopImpressionPersentase | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | activeViewCtr | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | ctr | Ganda | \$1=, =, <, > | 
| Iklan Grup Iklan | ConversionAction | String | \$1=, = | 
| Iklan Grup Iklan | conversionActionCategory | String | \$1=, = | 
| Iklan Grup Iklan | conversionActionName | String | \$1 =, =, SEPERTI | 
| Iklan Grup Iklan | UpdateMask | String |  | 
| Iklan Grup Iklan | buat | Struct |  | 
| Iklan Grup Iklan | perbarui | Struct |  | 
| Iklan Grup Iklan | policyValidationParameter | Struct |  | 
| Iklan Grup Iklan | PrimaryStatus | String | \$1=, = | 
| Iklan Grup Iklan | primaryStatusReasons | Daftar |  | 
| Kampanye | ResourceName | String | \$1=, = | 
| Kampanye | status | String | \$1=, = | 
| Kampanye | BaseCampaign | String | \$1=, = | 
| Kampanye | name | String | \$1 =, =, SEPERTI | 
| Kampanye | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | Kampanye Anggaran | String | \$1 =, =, SEPERTI | 
| Kampanye | StartDate | Date | ANTARA, =, <, >, <=, >= | 
| Kampanye | EndDate | Date | ANTARA, =, <, >, <=, >= | 
| Kampanye | adServingOptimizationStatus | String | \$1=, = | 
| Kampanye | advertisingChannelType | String | \$1=, = | 
| Kampanye | advertisingChannelSubTipe | String | \$1=, = | 
| Kampanye | ExperimentType | String | \$1=, = | 
| Kampanye | Status Penyajian | String | \$1=, = | 
| Kampanye | biddingStrategyType | String | \$1=, = | 
| Kampanye | domainName | String | \$1 =, =, SEPERTI | 
| Kampanye | languageCode | String | \$1 =, =, SEPERTI | 
| Kampanye | useSuppliedUrlsHanya | Boolean | \$1=, = | 
| Kampanye | positiveGeoTargetTipe | String | \$1=, = | 
| Kampanye | negativeGeoTargetTipe | String | \$1=, = | 
| Kampanye | Mode Pembayaran | String | \$1=, = | 
| Kampanye | optimizationGoalTypes | Daftar |  | 
| Kampanye | date | Date | ANTARA, =, <, >, <=, >= | 
| Kampanye | Rata-RataCost | Ganda |  | 
| Kampanye | mengeklik | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | CostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | kesan | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | useAudienceGrouped | Boolean | \$1=, = | 
| Kampanye | activeViewMeasurableCostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | costPerAllKonversi | Ganda | \$1=, =, <, > | 
| Kampanye | costPerConversion | Ganda | \$1=, =, <, > | 
| Kampanye | InvalidClicks | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | publisherPurchasedClicks | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | averagePageViews | Ganda | \$1=, =, <, > | 
| Kampanye | VideoViews | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Kampanye | allConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Kampanye | allConversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Kampanye | conversionsByConversionTanggal | Ganda | \$1=, =, <, > | 
| Kampanye | conversionsValueByConversionDate | Ganda | \$1=, =, <, > | 
| Kampanye | valuePerAllConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Kampanye | valuePerConversionsByConversionDate | Ganda | \$1=, =, <, > | 
| Kampanye | AllConsions | Ganda | \$1=, =, <, > | 
| Kampanye | absoluteTopImpressionPersentase | Ganda | \$1=, =, <, > | 
| Kampanye | searchAbsoluteTopImpressionShare | Ganda | \$1=, =, <, > | 
| Kampanye | Rata-rataECPC | Ganda | \$1=, =, <, > | 
| Kampanye | searchImpressionShare | Ganda | \$1=, =, <, > | 
| Kampanye | searchTopImpressionBagikan | Ganda | \$1=, =, <, > | 
| Kampanye | activeViewCtr | Ganda | \$1=, =, <, > | 
| Kampanye | ctr | Ganda | \$1=, =, <, > | 
| Kampanye | RelativeCTR | Ganda | \$1=, =, <, > | 
| Kampanye | UpdateMask | String |  | 
| Kampanye | buat | Struct |  | 
| Kampanye | perbarui | Struct |  | 
| Anggaran Kampanye | ResourceName | String | \$1=, = | 
| Anggaran Kampanye | id | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | status | String | \$1=, = | 
| Anggaran Kampanye | DeliveryMethod | String | \$1=, = | 
| Anggaran Kampanye | periode | String | \$1=, = | 
| Anggaran Kampanye | jenis | String | \$1=, = | 
| Anggaran Kampanye | name | String | \$1 =, =, SEPERTI | 
| Anggaran Kampanye | AmountMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | Dibagikan secara eksplisit | Boolean | \$1=, = | 
| Anggaran Kampanye | ReferensiCount | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | hasRecommendedBudget | Boolean | \$1=, = | 
| Anggaran Kampanye | date | Date | ANTARA, =, <, >, <=, >= | 
| Anggaran Kampanye | CostMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | StartDate | Date | ANTARA, =, <, >, <=, >= | 
| Anggaran Kampanye | EndDate | Date | ANTARA, =, <, >, <=, >= | 
| Anggaran Kampanye | maximizeConversionValueTargetRoas | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | maximizeConversionsTargetCpaMicros | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | selectiveOptimizationConversionTindakan | String |  | 
| Anggaran Kampanye | Rata-RataCost | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | costPerAllKonversi | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | costPerConversion | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | VideoViews | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | mengeklik | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | AllConsions | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | valuePerAllKonversi | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | Rata-rataECPC | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | kesan | BigInteger | ANTARA, =,\$1 =, <, >, <=, >= | 
| Anggaran Kampanye | ctr | Ganda | \$1=, =, <, > | 
| Anggaran Kampanye | UpdateMask | String |  | 
| Anggaran Kampanye | buat | Struct |  | 
| Anggaran Kampanye | perbarui | Struct |  | 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel berikut. 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| Iklan Grup Iklan | date | Date | 
| Grup Iklan | date | Date | 
| Kampanye | date | Date | 
| Anggaran Kampanye | date | Date | 

 **Contoh** 

```
googleads_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googleads",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "campaign-3467***",
        "API_VERSION": "v16",
        "PARTITION_FIELD": "date"
        "LOWER_BOUND": "2024-01-01"
        "UPPER_BOUND": "2024-06-05"
        "NUM_PARTITIONS": "10"
    }
)
```

# Opsi koneksi Google Ads
<a name="googleads-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Google Ads:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Google Ads. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Google Ads Rest API yang ingin Anda gunakan. Contoh: v16. 
+  `DEVELOPER_TOKEN`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Diperlukan untuk mengautentikasi pengembang atau aplikasi yang membuat permintaan ke API. 
+  `MANAGER_ID`(String) - Digunakan untuk Baca/Tulis. Pengenal unik yang memungkinkan Anda mengelola beberapa akun Google Ads. Ini adalah ID pelanggan dari manajer yang berwenang. Jika akses Anda ke akun pelanggan melalui akun manajer, `MANAGER_ID` diperlukan. Untuk informasi selengkapnya, lihat [login-customer-id](https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid). 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Membuat akun Google Ads
<a name="googleads-create-account"></a>

1.  Masuk ke [Akun Pengembang Google Ads](https://console.cloud.google.com) dengan kredensialnya, lalu buka \$1. MyProject   
![\[Tangkapan layar menampilkan layar selamat datang untuk masuk ke Akun Pengembang Google Ads.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-log-in-developer-account.png)

1.  Pilih **Proyek Baru** dan berikan informasi yang diperlukan untuk membuat proyek Google jika Anda tidak memiliki aplikasi terdaftar di dalamnya.   
![\[Tangkapan layar menunjukkan halaman pilih proyek. Pilih Proyek Baru di sudut kanan atas.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-new-project.png)  
![\[Tangkapan layar menunjukkan jendela Proyek Baru untuk memasukkan nama proyek dan memilih lokasi.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-new-project-name-location.png)

1.  Pilih **Tab Navigasi**, lalu **API dan Pengaturan**, dan **Buat Id Klien** dan **ClientSecret**yang akan memerlukan konfigurasi lebih lanjut untuk membuat koneksi antara AWS Glue dan GoogleAds. Untuk informasi selengkapnya, lihat [kredensial API](https://console.cloud.google.com/apis/credentials).   
![\[Tangkapan layar menunjukkan halaman konfigurasi APIs dan layanan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-apis-and-services.png)

1.  Pilih **CREATE CREDENTIALS** dan pilih **OAuth client** ID.   
![\[Tangkapan layar menunjukkan halaman konfigurasi APIs dan layanan dengan drop-down Buat Kredensial dan opsi ID klien Oauth disorot.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-create-credentials.png)

1.  Pilih **jenis Aplikasi** sebagai **aplikasi Web**.   
![\[Screenshot menunjukkan halaman Create OAuth client ID dan Application type as Web application.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-oauth-client-id-application-type.png)

1.  **Di bawah **Authorized Redirect URIs**, tambahkan OAuth Redirect URIs dan pilih Create.** Anda dapat menambahkan beberapa pengalihan URIs jika diperlukan.   
![\[Tangkapan layar menunjukkan halaman Buat ID OAuth klien dan bagian Pengalihan URIs Resmi. Di sini, tambahkan URIs dan pilih ADD URI jika diperlukan. Setelah selesai, pilih CREATE.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-oauth-redirect-uris.png)

1.  **ID Klien** dan **Rahasia Klien** Anda akan dibuat saat membuat koneksi antara AWS Glue dan Google Ads.   
![\[Tangkapan layar menunjukkan halaman Buat ID OAuth klien dan bagian Pengalihan URIs Resmi. Di sini, tambahkan URIs dan pilih ADD URI jika diperlukan. Setelah selesai, pilih CREATE.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-oauth-client-created.png)

1.  Tambahkan cakupan sesuai dengan kebutuhan aplikasi Anda berdasarkan, pilih **layar OAuth persetujuan** dan berikan informasi yang diperlukan dan tambahkan cakupan berdasarkan persyaratan.   
![\[Tangkapan layar menunjukkan halaman Perbarui cakupan yang dipilih. Pilih cakupan Anda sesuai kebutuhan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/google-ads-selected-scopes.png)

# Batasan
<a name="googleads-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Google Ads:
+ `MANAGER_ID`adalah input opsional saat membuat koneksi. Tetapi ketika Anda ingin mengakses pelanggan yang mendasari manajer tertentu, maka `MANAGER_ID` adalah masukan wajib. Tabel di bawah ini menjelaskan batasan akses berdasarkan `MANAGER_ID` apakah disertakan atau tidak dalam koneksi.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/googleads-connector-limitations.html)
+ Ketika akun manajer dipilih sebagai objek, hanya `Account` akan muncul sebagai sub-objek. Di konektor Google Ads, entitas seperti kampanye, iklan, dll., diambil berdasarkan akun klien individual, bukan akun manajer.
+ Anda tidak dapat mengambil metrik untuk akun manajer. Anda dapat mengambil metrik untuk akun klien individual sebagai gantinya.
+  Setiap akun dapat memiliki hingga 10.000 kampanye, termasuk kampanye aktif dan yang dijeda. Untuk informasi selengkapnya, lihat [Kampanye per akun](https://support.google.com/google-ads/answer/6372658). 
+  Saat membuat laporan, jika Anda memilih metrik tertentu untuk ditampilkan, setiap baris yang metrik yang dipilih semuanya nol tidak akan dikembalikan. Untuk informasi selengkapnya, lihat [Nol Metrik](https://developers.google.com/google-ads/api/docs/reporting/zero-metrics?hl=en#exclude_zero_metrics_by_segmenting). 
+  Dengan bidang berikut, alur Pemetaan Lengkap tidak akan berfungsi untuk entitas Iklan Akun, Grup Iklan, dan Grup Iklan, khususnya untuk ConversionAction,,. conversionActionCategory conversionActionName Untuk informasi selengkapnya, lihat [Segmen dan Metrik](https://developers.google.com/google-ads/api/docs/reporting/segmentation?hl=en#selectability_between_segments_and_metrics). 
+ Filter rentang tanggal wajib dilakukan saat `segments.date` bidang dipilih.

# Menghubungkan ke Google Analytics 4
<a name="connecting-to-googleanalytics"></a>

 Google Analytics 4 adalah layanan analitik yang melacak dan melaporkan metrik tentang interaksi pengunjung dengan aplikasi dan situs web Anda. Metrik ini mencakup tampilan halaman, pengguna aktif, dan acara. Jika Anda adalah pengguna Google Analytics 4, Anda dapat terhubung AWS Glue ke akun Google Analytics 4 Anda. Anda dapat menggunakan Google Analytics 4 sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Google Analytics 4 ke AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Google Analytics 4](googleanalytics-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](googleanalytics-configuring-iam-permissions.md)
+ [Mengkonfigurasi Google Analytics 4](googleanalytics-configuring.md)
+ [Mengkonfigurasi koneksi Google Analytics 4](googleanalytics-configuring-connections.md)
+ [Membaca dari entitas Google Analytics 4](googleanalytics-reading-from-entities.md)
+ [Opsi koneksi Google Analytics 4](googleanalytics-connection-options.md)
+ [Membuat akun Google Analytics 4](googleanalytics-create-account.md)
+ [Langkah-langkah untuk membuat aplikasi klien dan kredensi OAuth 2.0](googleanalytics-client-app-oauth-credentials.md)
+ [Pertimbangan dan batasan](googleanalytics-connector-limitations.md)

# AWS Glue dukungan untuk Google Analytics 4
<a name="googleanalytics-support"></a>

AWS Glue mendukung Google Analytics 4 sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Google Analytics 4.

**Didukung sebagai target?**  
Tidak.

**Versi Google Analytics 4 API yang didukung**  
 v1 Beta. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="googleanalytics-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Google Analytics 4
<a name="googleanalytics-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Google Analytics 4, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="googleanalytics-configuring-min-requirements"></a>
+  Anda memiliki akun Google Analytics dengan satu atau beberapa aliran data yang mengumpulkan data yang ingin Anda transfer. 
+  Anda memiliki akun Google Cloud Platform dan proyek Google Cloud. 
+  Di project Google Cloud Anda, Anda telah mengaktifkan yang berikut ini APIs: 
  +  API Google Analytics 
  +  API Admin Google Analytics 
  +  API Data Google Analytics 
+  Di project Google Cloud, Anda telah mengonfigurasi layar OAuth persetujuan untuk pengguna eksternal. Untuk informasi tentang layar OAuth persetujuan, lihat [Menyiapkan layar OAuth persetujuan Anda](https://support.google.com/cloud/answer/10311615#) di Bantuan Google Cloud Platform Console. 
+  Di project Google Cloud Anda, Anda telah mengonfigurasi ID klien OAuth 2.0. Untuk informasi selengkapnya, lihat [Menyiapkan OAuth 2.0](https://support.google.com/cloud/answer/6158849?hl=en#zippy=). 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Google Analytics 4 Anda. 

# Mengkonfigurasi koneksi Google Analytics 4
<a name="googleanalytics-configuring-connections"></a>

Untuk mengonfigurasi koneksi Google Sheet:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk jenis AuthorizationCode hibah: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Google Analytics 4.

   1. Berikan Google Analytics 4 yang ingin Anda sambungkan. `INSTANCE_URL`

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

 `AUTHORIZATION_CODE`jenis hibah. 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Google Analytics 4 di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instans Google Analytics 4 mereka. 

 Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Google Analytics 4 dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Google Analytics 4 untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

 Untuk informasi selengkapnya, lihat [Menggunakan Auth 2.0 untuk Mengakses Google APIs](https://developers.google.com/identity/protocols/oauth2). 

# Membaca dari entitas Google Analytics 4
<a name="googleanalytics-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Google Analytics 4 yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Laporan Real-Time | Ya | Ya | Ya | Ya | Tidak | 
| Laporan Inti | Ya | Ya | Ya | Ya | Ya | 

 **Contoh** 

```
googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
    connection_type="GoogleAnalytics4",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1beta"
    }
```

 **Detail entitas dan bidang Google Analytics 4** 


| Entitas | Field | Tipe data | Operator yang Didukung | 
| --- | --- | --- | --- | 
| Laporan Inti | Bidang Dinamis |  |  | 
| Laporan Inti | Bidang Dimensi | String | SEPERTI, = | 
| Laporan Inti | Bidang Dimensi | Date | SEPERTI, = | 
| Laporan Inti | Bidang Metrik | String | >, <, >=, <=, = ANTARA | 
| Laporan Inti | Dimensi Kustom dan Bidang Metrik Kustom | String | TA | 
| Laporan Real-Time | AppVersion | String | SEPERTI, = | 
| Laporan Real-Time | AudienceID | String | SEPERTI, = | 
| Laporan Real-Time | Nama Pemirsa | String | SEPERTI, = | 
| Laporan Real-Time | kota | String | SEPERTI, = | 
| Laporan Real-Time | CityID | String | SEPERTI, = | 
| Laporan Real-Time | negeri | String | SEPERTI, = | 
| Laporan Real-Time | CountryID | String | SEPERTI, = | 
| Laporan Real-Time | DeviceKategori | String | SEPERTI, = | 
| Laporan Real-Time | eventName | String | SEPERTI, = | 
| Laporan Real-Time | MinuteSago | String | SEPERTI, = | 
| Laporan Real-Time | platform | String | SEPERTI, = | 
| Laporan Real-Time | streamId | String | SEPERTI, = | 
| Laporan Real-Time | StreamName | String | SEPERTI, = | 
| Laporan Real-Time | unifiedScreenName | String | SEPERTI, = | 
| Laporan Real-Time | ActiveUsers | String | >, <, >=, <=, = ANTARA | 
| Laporan Real-Time | konversi | String | >, <, >=, <=, = ANTARA | 
| Laporan Real-Time | EventCount | String | >, <, >=, <=, = ANTARA | 
| Laporan Real-Time | screenPageViews | String | >, <, >=, <=, = ANTARA | 

 **Mempartisi kueri** 

1.  **Partisi berbasis filter** 

    Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
   +  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
   +  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

      Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
   +  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
   +  `NUM_PARTITIONS`: jumlah partisi. 

    **Contoh** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "PARTITION_FIELD": "date"
           "LOWER_BOUND": "2022-01-01"
           "UPPER_BOUND": "2024-01-02"
           "NUM_PARTITIONS": "10"
       }
   ```

1.  **Partisi berbasis rekaman** 

    Opsi percikan tambahan `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
   +  `NUM_PARTITIONS`: jumlah partisi. 

    **Contoh** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "NUM_PARTITIONS": "10"
       }
   ```

# Opsi koneksi Google Analytics 4
<a name="googleanalytics-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Google Analytics 4:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama Objek Anda di Google Analytics 4. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Google Analytics 4 Rest API versi yang ingin Anda gunakan. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 
+  `INSTANCE_URL`(Integer) - Digunakan untuk Baca. (Opsional) 

# Membuat akun Google Analytics 4
<a name="googleanalytics-create-account"></a>

 Ikuti langkah-langkah untuk membuat akun Google Analytics 4: [https://support.google.com/analytics/jawaban/9304153? hl=id](https://support.google.com/analytics/answer/9304153?hl=en) 

# Langkah-langkah untuk membuat aplikasi klien dan kredensi OAuth 2.0
<a name="googleanalytics-client-app-oauth-credentials"></a>

 Untuk informasi selengkapnya, lihat dokumentasi [Google Analytics4 API](https://developers.google.com/analytics/devguides/reporting/data/v1). 

1.  Buat dan atur akun Anda dengan masuk ke Akun [Google Analytics](https://analytics.google.com/) Anda dengan kredensi Anda. Kemudian navigasikan ke **Admin** > **Buat Akun**. 

1.  Buat properti untuk akun yang telah Anda buat dengan memilih **Buat Properti**. Siapkan properti dengan detail yang diperlukan. Setelah semua detail yang diberikan id properti yang sesuai akan dihasilkan. 

1.  Tambahkan Data Stream untuk properti yang dibuat dengan memilih **Data Streams > Add** **Stream** > **Web** dari drop-down. Berikan detail situs web seperti URL dan bidang wajib lainnya. Setelah memberikan semua detail, **id aliran dan id** **pengukuran** yang sesuai akan dihasilkan. 

1.  Siapkan Google Analytics di situs web Anda dengan menyalin id pengukuran dan menambahkan ke konfigurasi situs web Anda. 

1.  Buat Laporan dari Google Analytics dengan menavigasi ke **Laporan dan membuat laporan** yang diperlukan. 

1.  Otorisasi aplikasi Anda dengan menavigasi ke [console.cloud.google.com]( https://console.cloud.google.com) dan cari Google Analytics Data API, lalu aktifkan API. 

   1.  Arahkan ke halaman API dan Layanan dan pilih **Kredensial>** **penyiapan OAuth 2.0** Klien. IDs 

   1.  Berikan URL pengalihan dengan menambahkan URL AWS Glue Pengalihan. 

1.  Salin id klien dan rahasia klien yang akan membutuhkan lebih lanjut untuk membuat koneksi. 

# Pertimbangan dan batasan
<a name="googleanalytics-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Google Analytics 4:
+  Untuk entitas Laporan Inti, hanya 9 bidang dimensi dan 10 bidang metrik yang diizinkan untuk mengirim permintaan. Jika jumlah bidang yang diizinkan terlampaui maka permintaan akan gagal dan konektor akan melempar pesan kesalahan. 
+  Untuk entitas Laporan Waktu Nyata, hanya 4 bidang dimensi yang diizinkan untuk mengirim permintaan. Jika jumlah bidang yang diizinkan terlampaui maka permintaan akan gagal dan konektor akan melempar pesan kesalahan. 
+  Google Analytics 4 adalah alat gratis versi beta, jadi akan ada pembaruan rutin pada fitur baru, peningkatan entitas, penambahan bidang baru, dan menghentikan bidang yang ada. 
+  Bidang Laporan Inti diisi secara dinamis, sehingga akan ada penambahan, penyusutan dan penggantian nama bidang dan memberlakukan batasan baru pada bidang dapat dilakukan kapan saja. 
+  Tanggal mulai default adalah 30 hari dan tanggal akhir kemarin (satu hari sebelum tanggal saat ini), dan tanggal-tanggal ini akan diganti dalam kode ekspresi filter jika pengguna telah menetapkan nilai OR jika alirannya bertahap. 
+  Sesuai dokumentasi, entitas laporan Real-Time mengembalikan 10.000 catatan jika batas tidak diteruskan dalam permintaan, jika tidak API mengembalikan maksimum 250.000 baris per permintaan, tidak peduli berapa banyak yang Anda minta. Untuk informasi selengkapnya lihat [Metode: properti. runRealtimeReport](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport)dalam dokumentasi Google Analytics. 
+  Entitas Real-Time Report tidak mendukung Partisi Berbasis Rekam karena tidak mendukung pagination. Juga, itu tidak mendukung Partisi Berbasis Bidang karena tidak ada bidang yang memenuhi kriteria yang ditentukan. 
+  Karena keterbatasan jumlah bidang yang dapat diteruskan dalam permintaan. Kami menetapkan dimensi default dan bidang metrik dalam batas yang ditentukan. Jika “pilih semua” dipilih, hanya data dari bidang yang telah ditentukan yang akan diambil. 
  +  Laporan Inti 
    +  Sesuai batasan dari SAAS - permintaan diizinkan hingga 9 dimensi dan hingga 10 metrik saja (yaitu, permintaan dapat berisi maksimum 19 bidang (metrik \$1 dimensi). 
    +  Sesuai implementasi - Jika pengguna menggunakan SELECT\$1ALL atau bidang yang dipilih lebih dari 25, maka bidang default akan diteruskan dalam permintaan. 
    +  Bidang berikut dianggap sebagai bidang default untuk Laporan Inti - “country”, “city”, “EventName”, “cityId”, “browser”, “date”, “currencyCode”, “DeviceCategory”, “TransactionId”, DayUsers active1 “, “DayUsersactive28 “, “DayUsersactive7 “, “ActiveUsers”, "“," Pengguna”, "“, “EngagedSessions”, “EventCount”, “EngageMentrate”. averagePurchaseRevenue averageRevenuePer averageSessionDuration 
  +  Laporan Real-Time 
    +  Sesuai batasan dari permintaan SAAS diizinkan hingga 4 dimensi. 
    +  Jika pengguna melewati SELECT\$1ALL atau bidang yang dipilih lebih dari 15, maka bidang default akan diteruskan dalam permintaan. 
    +  Bidang berikut dianggap sebagai bidang default untuk RealTime Laporan - “negara”, “DeviceCategory”, “city”, “cityId”, “ActiveUsers”, “conversion”, “EventCount”, "”. screenPageViews 
+  Di entitas Core-Report, jika partisi pada bidang tanggal dan filter pada startDate hadir secara bersamaan. Dalam hal ini nilai DateRange akan diganti dengan nilai filter startDate, Tapi, karena partisi harus selalu menjadi prioritas, maka membuang filter startDate jika partisi pada bidang tanggal sudah ada. 
+  Karena sekarang CohortSpecs juga merupakan bagian dari badan permintaan laporan inti, kami meningkatkan entitas laporan inti saat ini untuk menyertakan dukungan untuk atribut CohortSpec. Di badan permintaan CohortSpecs, hampir semua bidang memerlukan input pengguna. Untuk mengatasi hal ini, kami telah menetapkan nilai default untuk itu attributes/fields dan menyediakan ketentuan bagi pengguna untuk mengganti nilai-nilai ini jika diperlukan.     
<a name="google-analytics-connector-limitations-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/googleanalytics-connector-limitations.html)
+  Anda juga dapat meneruskan semua filter ini sekaligus atau dengan filter lain. 
  +  Contoh 1 - FilterPredicate: startDate antara “2023-05-09" dan “2023-05-10" DAN startOffset = 1 DAN endoffset = 2 DAN granularity="Weekly” 
  +  Contoh 2 - filterPredicate: city= “xyz” DAN startOffset=1 DAN endoffset=2 DAN granularity="Weekly” 
+  Dalam permintaan kohort: 
  +  Jika 'cohortNthMonth' dilewatkan dalam permintaan, maka nilai granularitas internal akan ditetapkan sebagai “BULANAN” 
  +  Demikian pula, jika 'cohortNthWeek' dilewatkan, maka nilai granularitas akan ditetapkan sebagai “MINGGUAN” 
  +  Dan, untuk 'cohortNthDay' nilai granularitas akan ditetapkan sebagai “HARIAN”. Untuk informasi lebih lanjut, lihat: 
    +  [ https://developers.google.com/analytics/devguides/reporting/data/v1/advanced ](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced) 
    +  [ https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec ](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec) 
  +  Ketentuan diberikan bagi pengguna untuk mengganti nilai default DateRange dan granularitas. Lihat tabel di atas. 

# Menghubungkan ke Google BigQuery di AWS Glue Studio
<a name="connecting-to-data-bigquery"></a>

**catatan**  
  Anda dapat menggunakan Spark AWS Glue untuk membaca dari dan menulis ke tabel di Google BigQuery dalam versi AWS Glue 4.0 dan yang lebih baru. Untuk mengonfigurasi Google BigQuery dengan AWS Glue pekerjaan secara terprogram, lihat [BigQuery koneksi](aws-glue-programming-etl-connect-bigquery-home.md).  

 AWS Glue Studiomenyediakan antarmuka visual untuk terhubung BigQuery, membuat pekerjaan integrasi data, dan menjalankannya pada runtime Spark AWS Glue Studio tanpa server. 

 Saat membuat koneksi ke Google BigQuery di AWS Glue Studio, koneksi terpadu dibuat. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

 Alih-alih membuat rahasia dengan kredensi dalam format tertentu,`{"credentials": "base64 encoded JSON"}`, sekarang dengan koneksi terpadu ke Google BigQuery, Anda dapat membuat rahasia yang secara langsung menyertakan JSON dari Goolge:. BigQuery `{"type": "service-account", ...}` 

**Topics**
+ [Membuat BigQuery koneksi](creating-bigquery-connection.md)
+ [Membuat simpul BigQuery sumber](creating-bigquery-source-node.md)
+ [Membuat node BigQuery target](creating-bigquery-target-node.md)
+ [Opsi lanjutan](#creating-bigquery-connection-advanced-options)

# Membuat BigQuery koneksi
<a name="creating-bigquery-connection"></a>

Untuk terhubung ke Google BigQuery dari AWS Glue, Anda harus membuat dan menyimpan kredensi Google Cloud Platform Anda secara AWS Secrets Manager rahasia, lalu mengaitkan rahasia itu dengan koneksi Google BigQuery AWS Glue .

**Untuk mengkonfigurasi koneksi ke BigQuery:**

1. Di Google Cloud Platform, buat dan identifikasi sumber daya yang relevan:
   + Buat atau identifikasi proyek GCP yang berisi BigQuery tabel yang ingin Anda sambungkan.
   + Aktifkan BigQuery API. Untuk informasi selengkapnya, lihat [Menggunakan BigQuery Storage Read API untuk membaca data tabel](https://cloud.google.com/bigquery/docs/reference/storage/#enabling_the_api).

1. Di Google Cloud Platform, buat dan ekspor kredensional akun layanan:

   [Anda dapat menggunakan panduan BigQuery kredensial untuk mempercepat langkah ini: Buat kredensial.](https://console.cloud.google.com/apis/credentials/wizard?api=bigquery.googleapis.com)

   Untuk membuat akun layanan di GCP, ikuti tutorial yang tersedia di [Buat akun layanan](https://cloud.google.com/iam/docs/service-accounts-create).
   + Saat memilih **proyek**, pilih proyek yang berisi BigQuery tabel Anda.
   + Saat memilih peran IAM GCP untuk akun layanan Anda, tambahkan atau buat peran yang akan memberikan izin yang sesuai untuk menjalankan BigQuery pekerjaan untuk membaca, menulis, atau membuat tabel. BigQuery

   Untuk membuat kredensi untuk akun layanan Anda, ikuti tutorial yang tersedia di [Buat kunci akun layanan](https://cloud.google.com/iam/docs/keys-create-delete#creating).
   + Saat memilih jenis kunci, pilih **JSON**.

   Anda seharusnya sudah mengunduh file JSON dengan kredensi untuk akun layanan Anda. Itu terlihat serupa dengan yang berikut ini:

   ```
   {
     "type": "service_account",
     "project_id": "*****",
     "private_key_id": "*****",
     "private_key": "*****",
     "client_email": "*****",
     "client_id": "*****",
     "auth_uri": "https://accounts.google.com/o/oauth2/auth",
     "token_uri": "https://oauth2.googleapis.com/token",
     "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
     "client_x509_cert_url": "*****",
     "universe_domain": "googleapis.com"
   }
   ```

1. Di AWS Secrets Manager, buat rahasia menggunakan file kredensi yang Anda unduh. Anda dapat memilih **Plaintext** tab dan menempelkan konten file berformat JSON. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 

1. Di Katalog AWS Glue Data, buat koneksi dengan mengikuti langkah-langkah di[https://docs.aws.amazon.com/glue/latest/dg/console-connections.html](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk langkah selanjutnya. 
   + Saat memilih **jenis Koneksi**, pilih Google BigQuery.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca*secretName*.

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan *connectionName* sebagai **koneksi jaringan tambahan**.

# Membuat simpul BigQuery sumber
<a name="creating-bigquery-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-bigquery-source-node-prerequisites"></a>
+ Koneksi BigQuery tipe AWS Glue Data Catalog
+  AWS Secrets Manager Rahasia untuk BigQuery kredensi Google Anda, yang digunakan oleh koneksi.
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Nama dan kumpulan data tabel dan proyek Google Cloud terkait yang ingin Anda baca.

## Menambahkan sumber BigQuery data
<a name="creating-bigquery-source-node-add"></a>

**Untuk menambahkan **sumber Data — BigQuery** node:**

1.  Pilih koneksi untuk sumber BigQuery data Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat BigQuery koneksi**. Untuk informasi selengkapnya, lihat [Ikhtisar penggunaan konektor dan koneksi](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Identifikasi BigQuery data apa yang ingin Anda baca, lalu pilih opsi **BigQuery Sumber**
   + Pilih satu tabel — memungkinkan Anda untuk menarik semua data dari tabel.
   + Masukkan kueri khusus — memungkinkan Anda menyesuaikan data mana yang diambil dengan memberikan kueri.

1.  Jelaskan data yang ingin Anda baca

   **(Wajib)** setel **Proyek Induk** ke proyek yang berisi tabel Anda, atau proyek induk penagihan, jika relevan.

   Jika Anda memilih satu tabel, atur **Tabel** ke nama BigQuery tabel Google dalam format berikut: `[dataset].[table]` 

   Jika Anda memilih kueri, berikan ke **Query**. Dalam kueri Anda, lihat tabel dengan nama tabel yang sepenuhnya memenuhi syarat, dalam format:`[project].[dataset].[tableName]`.

1.  Menyediakan BigQuery properti 

   Jika Anda memilih satu tabel, Anda tidak perlu memberikan properti tambahan.

   Jika Anda memilih kueri, Anda harus memberikan ** BigQuery properti Google Kustom** berikut:
   + Atur `viewsEnabled` menjadi BETUL.
   + Setel `materializationDataset` ke kumpulan data. Prinsipal GCP yang diautentikasi oleh kredensi yang disediakan melalui AWS Glue koneksi harus dapat membuat tabel dalam kumpulan data ini.

# Membuat node BigQuery target
<a name="creating-bigquery-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-bigquery-target-node-prerequisites"></a>
+ Koneksi BigQuery tipe AWS Glue Data Catalog
+  AWS Secrets Manager Rahasia untuk BigQuery kredensi Google Anda, yang digunakan oleh koneksi.
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Nama dan kumpulan data tabel dan proyek Google Cloud yang sesuai yang ingin Anda tulis.

## Menambahkan target BigQuery data
<a name="creating-bigquery-target-node-add"></a>

**Untuk menambahkan **target Data — BigQuery** node:**

1.  Pilih koneksi untuk target BigQuery data Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat BigQuery koneksi**. Untuk informasi selengkapnya, lihat [Ikhtisar penggunaan konektor dan koneksi](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Identifikasi BigQuery tabel apa yang ingin Anda tulis, lalu pilih **metode Tulis**.
   + Direct — menulis untuk BigQuery langsung menggunakan BigQuery Storage Write API.
   + Tidak langsung — menulis ke Google Cloud Storage, lalu salin ke BigQuery.

   Jika Anda ingin menulis secara tidak langsung, berikan lokasi GCS tujuan dengan bucket GCS **Sementara**. Anda perlu memberikan konfigurasi tambahan dalam AWS Glue koneksi Anda. Untuk informasi selengkapnya, lihat [Menggunakan penulisan tidak langsung dengan Google BigQuery](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html#aws-glue-programming-etl-connect-bigquery-indirect-write).

1.  Jelaskan data yang ingin Anda baca

   **(Wajib)** setel **Proyek Induk** ke proyek yang berisi tabel Anda, atau proyek induk penagihan, jika relevan.

   Jika Anda memilih satu tabel, atur **Tabel** ke nama BigQuery tabel Google dalam format berikut: `[dataset].[table]` 

## Opsi lanjutan
<a name="creating-bigquery-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat BigQuery simpul. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [referensi opsi BigQuery koneksi](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html) di panduan AWS Glue pengembang. 

# Menghubungkan ke Google Search Console
<a name="connecting-to-data-google-search-console"></a>

Google Search Console adalah platform gratis yang tersedia bagi pemilik situs web untuk memantau cara Google melihat situs dan mengoptimalkan keberadaan organiknya. Ini termasuk melihat domain rujukan, kinerja situs seluler, hasil pencarian kaya, dan kueri dan halaman dengan lalu lintas tertinggi. Jika Anda adalah pengguna Google Search Console, Anda dapat terhubung AWS Glue ke akun Google Search Console Anda. Anda dapat menggunakan Google Search Console sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Google Search Console ke AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Google Search Console](google-search-console-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](google-search-console-configuring-iam-permissions.md)
+ [Mengkonfigurasi Google Search Console](google-search-console-configuring.md)
+ [Mengonfigurasi koneksi Google Search Console](google-search-console-configuring-connections.md)
+ [Membaca dari entitas Google Search Console](google-search-console-reading-from-entities.md)
+ [Opsi koneksi Google Search Console](google-search-console-connection-options.md)
+ [Batasan Google Search Console](google-search-console-limitations.md)

# AWS Glue dukungan untuk Google Search Console
<a name="google-search-console-support"></a>

AWS Glue mendukung Google Search Console sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk melakukan kueri data dari Google Search Console.

**Didukung sebagai target?**  
Tidak.

**Versi API Google Search Console yang didukung**  
Versi Google Search Console API berikut didukung:
+ v3

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="google-search-console-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Google Search Console
<a name="google-search-console-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Google Search Console, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="google-search-console-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Google Search Console.
+ Anda memiliki akun Google Cloud Platform dan proyek Google Cloud.
+ Di project Google Cloud, Anda telah mengaktifkan Google Search Console API.
+ Di project Google Cloud, Anda telah mengonfigurasi layar OAuth persetujuan untuk pengguna eksternal. Untuk informasi selengkapnya, lihat [Menyiapkan layar OAuth persetujuan Anda](https://support.google.com/cloud/answer/10311615) di Bantuan Google Cloud Platform Console.
+ Di project Google Cloud Anda, Anda telah mengonfigurasi ID klien OAuth 2.0. Lihat [Menyiapkan OAuth 2.0](https://support.google.com/cloud/answer/6158849) untuk kredenal klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan terautentikasi ke akun Anda.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Google Search Console. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Google Search Console.

# Mengonfigurasi koneksi Google Search Console
<a name="google-search-console-configuring-connections"></a>

Google Search Console mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Google Search Console untuk meminta akses ke data Anda.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna masih dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Google Search Console dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Google Search Console untuk masuk dan mengotorisasi AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk dokumentasi Google Search Console publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Menggunakan OAuth 2.0 untuk Mengakses Google APIs](https://developers.google.com/identity/protocols/oauth2).

Untuk mengonfigurasi koneksi Google Search Console:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Google Search Console.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Google Search Console
<a name="google-search-console-reading-from-entities"></a>

**Prasyarat**

Objek Google Search Console yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Analisis Penelusuran | Ya | Ya | Tidak | Ya | Tidak | 
| Situs | Tidak | Tidak | Tidak | Ya | Tidak | 
| Peta Situs | Tidak | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
googleSearchConsole_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googlesearchconsole",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v3"
    }
```

**Entitas Google Search Console dan detail bidang**:

Google Search Console menyediakan titik akhir untuk mengambil metadata secara dinamis untuk entitas yang didukung. Dengan demikian, dukungan operator ditangkap pada tingkat tipe data.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/google-search-console-reading-from-entities.html)

**catatan**  
Untuk daftar nilai valid yang diperbarui untuk filter, lihat dokumen [Google Search Console](https://developers.google.com/webmaster-tools/v1/searchanalytics/query) API.  
Bidang `start_end_date` adalah kombinasi dari `start_date` dan`end_date`.

## Mempartisi kueri
<a name="google-search-console-reading-partitioning-queries"></a>

Partisi berbasis filter dan partisi berbasis rekaman tidak didukung.

# Opsi koneksi Google Search Console
<a name="google-search-console-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Google Search Console:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Google Search Console.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Google Search Console Rest API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`<30 days ago from current date><yesterday: that is, 1 day ago from the current date>( String) - Default: “start\$1end\$1date antara DAN”. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`<yesterday: that is, 1 day ago from the current date>( String) - Default: “start\$1end\$1date antara <30 days ago from current date>DAN” Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `INSTANCE_URL`(String) - Digunakan untuk Baca. URL instans Google Search Console yang valid.

# Batasan Google Search Console
<a name="google-search-console-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Google Search Console:
+ Google Search Console memberlakukan batasan penggunaan pada API. Untuk informasi selengkapnya, lihat [Batas Penggunaan](https://developers.google.com/webmaster-tools/limits).
+ Jika tidak ada filter yang diteruskan untuk `Search Analytics` entitas, API merangkum semua klik, tayangan, RKT, dan data lain untuk seluruh situs Anda dalam rentang tanggal default yang ditentukan dan menyajikannya sebagai catatan tunggal.
+ Untuk memecah data menjadi segmen yang lebih kecil, Anda perlu memperkenalkan dimensi ke kueri Anda. Dimensions memberi tahu API bagaimana Anda ingin mengelompokkan data Anda.
  + Misalnya, jika Anda menambahkan, `filterPredicate: dimensions="country"` Anda akan mendapatkan satu catatan untuk setiap negara tempat situs Anda menerima lalu lintas selama periode yang ditentukan.
  + Contoh untuk melewati beberapa dimensi:`filterPredicate: dimensions="country" AND dimensions="device" AND dimensions="page"`. Dalam hal ini Anda akan mendapatkan satu baris dalam respons untuk setiap kombinasi unik dari ketiga dimensi ini.
+ Nilai default ditetapkan untuk `start_end_date` dan `dataState` bidang.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/google-search-console-limitations.html)

# Menghubungkan ke Google Sheets
<a name="connecting-to-googlesheets"></a>

 Google Sheets adalah perangkat lunak spreadsheet online yang memungkinkan Anda mengatur data dalam jumlah besar, membuat laporan khusus, mengotomatiskan perhitungan, dan berkolaborasi dengan orang lain. Jika Anda pengguna Google Sheets, Anda dapat terhubung ke AWS Glue akun Google Sheets Anda. Kemudian, Anda dapat menggunakan Google Spreadsheet sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Google Spreadsheet dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Google Sheets](googlesheets-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](googlesheets-configuring-iam-permissions.md)
+ [Mengkonfigurasi Google Sheets](googlesheets-configuring.md)
+ [Mengonfigurasi koneksi Google Sheets](googlesheets-configuring-connections.md)
+ [Membaca dari entitas Google Sheets](googlesheets-reading-from-entities.md)
+ [Opsi koneksi Google Sheets](googlesheets-connection-options.md)
+ [Mengatur OAuth alur kode Otorisasi untuk Google Sheets](googlesheets-oauth-authorization.md)
+ [Batasan untuk konektor Google Sheets](googlesheets-connector-limitations.md)

# AWS Glue dukungan untuk Google Sheets
<a name="googlesheets-support"></a>

AWS Glue mendukung Google Sheets sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Google Spreadsheet.

**Didukung sebagai target?**  
Tidak.

**Versi Google Sheets API yang didukung**  
 Google Sheets API v4 dan Google Drive API v3 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="googlesheets-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Google Sheets
<a name="googlesheets-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer dari Google Spreadsheet, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="googlesheets-configuring-min-requirements"></a>
+ Anda memiliki akun Google Sheets dengan Email dan Kata Sandi.
+  Akun Google Spreadsheet Anda diaktifkan untuk akses API. Semua penggunaan Google Sheets API tersedia tanpa biaya tambahan. 
+  Akun Google Spreadsheet Anda memungkinkan Anda menginstal aplikasi yang terhubung. Jika Anda tidak memiliki akses ke fungsi ini, hubungi administrator Google Sheets Anda. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Google Spreadsheet Anda. 

# Mengonfigurasi koneksi Google Sheets
<a name="googlesheets-configuring-connections"></a>

Untuk mengonfigurasi koneksi Google Sheet:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 

   1.  Untuk jenis AuthorizationCode hibah: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **Sumber Data**, pilih Google Spreadsheet.

   1. Menyediakan lingkungan Google Spreadsheet.

      1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

      1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "secretsmanager:DescribeSecret",
           "secretsmanager:GetSecretValue",
           "secretsmanager:PutSecretValue",
           "ec2:CreateNetworkInterface",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DeleteNetworkInterface"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

 **Jenis Hibah AUTHORIZATION\$1CODE** 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Google Spreadsheet tempat pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Google Sheets mereka. 

 Pengguna dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Google Spreadsheet dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Google Sheets untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

 Untuk informasi selengkapnya, lihat [dokumentasi Google Sheets publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi](https://developers.google.com/workspace/guides/create-credentials). 

# Membaca dari entitas Google Sheets
<a name="googlesheets-reading-from-entities"></a>

 **Prasyarat** 
+  Google SpreadSheet yang ingin Anda baca. Anda akan memerlukan SpreadSheet ID dan tabName dari spreadsheet. 

 **Entitas Google Sheets dan Detail Bidang:** 


| Entitas | Tipe data | Operator yang Didukung | 
| --- | --- | --- | 
| Spreadsheet | String | N/A (filter tidak didukung) | 

 **Contoh** 

```
googleSheets_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googlesheets",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "{SpreadSheetID}#{SheetTabName}",
        "API_VERSION": "v4"
    }
```

 **Mempartisi kueri** 

 Untuk Record Base Partitioning saja, `NUM_PARTITIONS` dapat disediakan sebagai opsi percikan tambahan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 

 **Contoh dengan `NUM_PARTITIONS`** 

```
googlesheets_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googlesheets",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "{SpreadSheetID}#{SheetTabName}",
        "API_VERSION": "v4",
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Google Sheets
<a name="googlesheets-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Google Sheets:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Itu `SpreadSheet ID` dan `sheetTabName` di Google Spreadsheet. Contoh:`{SpreadSheetID}#{SheetTabName}`. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Google Sheets Rest API versi yang ingin Anda gunakan. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Mengatur OAuth alur kode Otorisasi untuk Google Sheets
<a name="googlesheets-oauth-authorization"></a>

 **Prasyarat** 
+  Akun Google tempat Anda dapat masuk untuk menggunakan aplikasi Google Sheets. Di akun Google Anda, Google Sheets berisi data yang ingin Anda transfer. 
+  Akun Google Cloud Platform dan proyek Google Cloud. Lihat [Membuat Google Cloud Project](https://developers.google.com/workspace/guides/create-project) untuk detail selengkapnya. 

**Untuk menyiapkan akun Google Anda dan mendapatkan kredensyal OAuth 2.0:**

1.  Setelah proyek Google Cloud disiapkan, aktifkan Google Sheets API dan Google Drive APIs dalam proyek. Untuk langkah-langkah mengaktifkannya, lihat [Mengaktifkan dan menonaktifkan APIs](https://support.google.com/googleapi/answer/6158841) di Bantuan Konsol API untuk Google Cloud Platform. 

1.  Selanjutnya, konfigurasikan layar OAuth persetujuan untuk pengguna eksternal. Untuk informasi selengkapnya tentang layar OAuth persetujuan, lihat [Menyiapkan layar OAuth persetujuan Anda](https://support.google.com/cloud/answer/10311615#) di Bantuan Google Cloud Platform Console. 

1.  Di layar OAuth persetujuan, tambahkan cakupan berikut: 
   +  [Cakupan hanya-baca API Google Sheets](https://www.googleapis.com/auth/spreadsheets.readonly) 
   +  [Cakupan hanya-baca Google Drive API](ttps://www.googleapis.com/auth/drive.readonly) 

    Untuk informasi selengkapnya tentang cakupan ini, lihat [OAuth 2.0 Cakupan untuk Google APIs di dokumentasi](https://developers.google.com/identity/protocols/oauth2/scopes) Identitas Google. 

1.  Hasilkan OAuth 2.0 ID klien dan rahasia. Untuk langkah-langkah membuat ID klien ini, lihat [Menyiapkan OAuth 2.0](https://support.google.com/cloud/answer/6158849?hl=en#zippy=) di Bantuan Google Cloud Platform Console. 

    ID klien OAuth 2.0 harus memiliki satu atau lebih pengalihan URLs resmi. 

    Redirect URLs memiliki format berikut: 
   + https://<aws-region>.console.aws.amazon. com/gluestudio/oauth 

1.  Perhatikan ID klien dan rahasia klien dari pengaturan untuk ID klien OAuth 2.0 Anda. 

# Batasan untuk konektor Google Sheets
<a name="googlesheets-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Google Sheets:
+  Konektor Google Sheets tidak mendukung Filter. Oleh karena itu, partisi berbasis filter tidak dapat didukung. 
+  Dalam Partisi Dasar Rekaman, tidak ada ketentuan untuk mengembalikan jumlah catatan yang tepat oleh SAAS. Akibatnya, mungkin ada skenario di mana file dengan catatan kosong dibuat.
+  Karena konektor Google Sheets tidak mendukung partisi berbasis filter,, `partitionField``lowerbound`, dan bukan opsi koneksi `upperbound` yang valid. Jika opsi ini disediakan, AWS Glue pekerjaan diharapkan gagal. 
+  Sangat penting untuk menunjuk baris pertama lembar sebagai baris header untuk menghindari masalah pemrosesan data. 
  +  Jika tidak disediakan, baris header akan diganti dengan `Unnamed:1``Unnamed:2`,,`Unnamed:3`... jika lembar berisi data dengan baris pertama kosong. 
  +  Jika baris header disediakan, nama kolom kosong akan diganti dengan`Unnamed:<number of column>`. Misalnya, jika baris header adalah`['ColumnName1', 'ColumnName2', '', '', 'ColumnName5', 'ColumnName6']`, maka itu akan menjadi `['ColumnName1', 'ColumnName2', 'Unnamed:3', 'Unnamed:4', 'ColumnName5', 'ColumnName6'].` 
+  Konektor Google Sheets tidak mendukung transfer Incremental. 
+  Konektor Google Sheets hanya mendukung tipe data String. 
+  Header duplikat dalam lembar akan diganti namanya secara iteratif dengan akhiran numerik. Nama header yang disediakan oleh pengguna akan diutamakan saat mengganti nama header duplikat. Misalnya, jika baris header adalah ["Name”, “”, “Name”, null, “Unnamed:6", “"], itu akan berubah menjadi: ["Name”, “Unnamed:2", “Name1", “Unnamed:4", “Unnamed:6", “Unnamed:61"]. 
+  Konektor Google Sheets tidak mendukung spasi untuk TabName. 
+  Nama folder tidak dapat memiliki karakter khusus berikut: 
  + \$1
  + /

# Menghubungkan ke HubSpot
<a name="connecting-to-data-hubspot"></a>

HubSpotPlatform CRM memiliki semua alat dan integrasi yang Anda butuhkan untuk pemasaran, penjualan, manajemen konten, dan layanan pelanggan.
+ Marketing Hub - Perangkat lunak pemasaran untuk membantu Anda meningkatkan lalu lintas, mengonversi lebih banyak pengunjung, dan menjalankan kampanye pemasaran masuk lengkap dalam skala besar.
+ Sales Hub - Perangkat lunak CRM Penjualan untuk membantu Anda mendapatkan wawasan yang lebih dalam tentang prospek, mengotomatiskan tugas yang Anda miliki, dan menutup lebih banyak transaksi lebih cepat.
+ Service Hub - Perangkat lunak layanan pelanggan untuk membantu Anda terhubung dengan pelanggan, melebihi harapan, dan mengubahnya menjadi promotor yang mengembangkan bisnis Anda.
+ Operations Hub - Perangkat lunak operasi yang menyinkronkan aplikasi Anda, membersihkan dan membuat data pelanggan, dan mengotomatiskan proses - sehingga semua sistem dan tim Anda bekerja sama dengan lebih baik.

**Topics**
+ [AWS Glue dukungan untuk HubSpot](hubspot-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](hubspot-configuring-iam-permissions.md)
+ [Mengkonfigurasi HubSpot](hubspot-configuring.md)
+ [Mengkonfigurasi koneksi HubSpot](hubspot-configuring-connections.md)
+ [Membaca dari HubSpot entitas](hubspot-reading-from-entities.md)
+ [Menulis ke HubSpot Entitas](hubspot-writing-to-entities.md)
+ [HubSpot opsi koneksi](hubspot-connection-options.md)
+ [Keterbatasan dan catatan untuk HubSpot konektor](hubspot-connector-limitations.md)

# AWS Glue dukungan untuk HubSpot
<a name="hubspot-support"></a>

AWS Glue mendukung HubSpot sebagai berikut:

**Didukung sebagai sumber?**  
Ya — Sinkronisasi dan Async. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari HubSpot.

**Didukung sebagai target?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menulis data. HubSpot

**Versi HubSpot API yang didukung**  
Versi HubSpot API berikut didukung:
+ v1
+ v2
+ v3
+ v4

Untuk dukungan entitas per versi tertentu, lihat [Entitas yang didukung untuk sumber Sinkronisasi](hubspot-reading-from-entities.md#sync-table) dan[Entitas yang didukung untuk sumber Async](hubspot-reading-from-entities.md#async-table).

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="hubspot-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi HubSpot
<a name="hubspot-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari HubSpot, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="hubspot-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki HubSpot akun. Untuk informasi selengkapnya, lihat [Membuat HubSpot akun](#hubspot-configuring-creating-hubspot-account).
+  HubSpot Akun Anda diaktifkan untuk akses API.
+ Anda harus memiliki aplikasi di bawah akun HubSpot pengembang Anda yang menyediakan kredensyal klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan terautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat aplikasi HubSpot pengembang](#hubspot-configuring-creating-hubspot-developer-app).

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke HubSpot akun Anda. Untuk koneksi tipikal, Anda tidak perlu melakukan hal lain HubSpot.

## Membuat HubSpot akun
<a name="hubspot-configuring-creating-hubspot-account"></a>

Untuk membuat HubSpot akun:

1. Pergi ke [ SignUp URL HubSpot CRM](https://app.hubspot.com/login).

1. Masukkan alamat email Anda dan pilih **Verifikasi email** (sebagai alternatif, Anda dapat memilih untuk mendaftar dengan akun Google, Microsoft, atau Apple).

1. Periksa kotak masuk Anda untuk kode verifikasi dari HubSpot.

1. Masukkan kode verifikasi 6 digit dan klik **Berikutnya**.

1. Masukkan kata sandi dan klik **Berikutnya**.

1. Masukkan nama depan dan nama belakang Anda dan klik **Berikutnya**, atau daftar menggunakan tautan **Daftar dengan Google**.

1. Masuk ke industri Anda dan klik **Berikutnya**.

1. Masukkan peran pekerjaan Anda dan klik **Berikutnya**.

1. Masukkan nama perusahaan Anda dan klik **Berikutnya**.

1. Pilih ukuran perusahaan Anda (jumlah karyawan yang bekerja di perusahaan Anda) dan klik **Berikutnya**.

1. Masukkan situs web perusahaan Anda dan klik **Berikutnya**.

1. Pilih di mana data Anda harus di-host (Amerika Serikat atau Eropa) dan **klik Buat** Akun.

1. Pilih tujuan pembuatan akun Anda dan klik **Berikutnya**.

1. Pilih **Connect Google Account** atau pilih untuk menambahkan kontak sendiri untuk menautkan kontak Anda dengan HubSpot akun Anda.

1. Masuk ke akun Google Anda jika Anda memilih opsi **Connect Google Account** untuk menautkan kontak Anda dan mulai menggunakan HubSpot akun Anda.

## Membuat aplikasi HubSpot pengembang
<a name="hubspot-configuring-creating-hubspot-developer-app"></a>

Akun pengembang aplikasi ditujukan untuk membuat dan mengelola aplikasi, integrasi, dan akun pengujian pengembang. Mereka juga tempat Anda dapat membuat dan mengelola daftar App Marketplace. Namun, akun pengembang aplikasi dan akun pengujian terkait tidak terhubung ke HubSpot akun standar. Mereka tidak dapat menyinkronkan data atau aset ke atau dari HubSpot akun lain. Untuk mendapatkan ID Klien dan Rahasia Klien, Anda membuat akun pengembang.

1. Pergi ke https://developers.hubspot.com/

1. Pilih **Buat akun pengembang** dan gulir ke bawah.

1. Anda akan ditanya apakah Anda ingin membuat akun pengembang Aplikasi, akun Aplikasi Pribadi, atau akun CMS Developer Sandbox. Pilih **Buat akun pengembang Aplikasi**.

1. Karena Anda sudah membuat Akun dengan HubSpot, Anda dapat memilih **Lanjutkan dengan pengguna ini**.

1. Klik **Mulai mendaftar.**

1. Masukkan Job Role Anda dan klik **Next**.

1. Beri nama akun pengembang Anda dan klik **Berikutnya**, lalu **Lewati**.

1. Pilih **Buat Aplikasi**.

1. Setelah Aplikasi Anda dibuat, pilih **Auth**.

1. Di bawah Auth, catat ID Klien dan Rahasia Klien.

1. Tambahkan **URL Pengalihan** khusus wilayah Anda sebagai https: *//<aws-region>* .console.aws.amazon. com/gluestudio/oauth. For example, add https://us-east-1.console.aws.amazon.com/gluestudio/oauthuntuk wilayah us-east-1.

1. Gulir ke bawah dan temukan cakupan. Ada dua jenis cakupan yang harus Anda pilih di bawah judul “CRM” dan “Standar”.

1. Tambahkan cakupan berikut:

   ```
   content
   automation
   oauth
   crm.objects.owners.read
   forms
   tickets
   crm.objects.contacts.write
   e-commerce
   crm.schemas.custom.read
   crm.objects.custom.read
   sales-email-read
   crm.objects.custom.write
   crm.objects.companies.write
   crm.lists.write
   crm.objects.companies.read
   crm.lists.read
   crm.objects.deals.read
   crm.objects.deals.write
   crm.objects.contacts.read
   ```

1. Klik **Simpan** dan akun dev Anda sekarang siap digunakan.

1. Gulir ke atas untuk menemukan **ID Klien**.

1. Pada halaman yang sama, klik **Tampilkan** untuk mendapatkan **rahasia Klien**.

## Membuat akun pengujian HubSpot pengembang
<a name="hubspot-configuring-creating-hubspot-developer-test-account"></a>

Dalam akun pengembang aplikasi, Anda dapat membuat akun pengujian pengembang untuk menguji aplikasi dan integrasi tanpa memengaruhi HubSpot data nyata apa pun. Akun pengujian pengembang tidak mencerminkan akun produksi, melainkan memiliki akses ke uji coba 90 hari dari versi Enterprise dari Marketing, Sales, Service, CMS, dan Operations Hub, menyediakan kemampuan untuk menguji sebagian besar HubSpot alat dan. APIs

1. Klik **Beranda**.

1. Klik **Buat akun uji**.

1. Klik **Buat Akun Uji Aplikasi**.

1. Jendela baru muncul. Masukkan nama akun uji aplikasi dan klik **Buat**.

   Akun pengujian aplikasi Anda sekarang dibuat.

**catatan**  
Akun pengembang terkait dengan aktivitas pengembangan seperti integrasi API, dan akun pengujian aplikasi digunakan untuk melihat data yang dibuat atau ditarik oleh akun pengembang.

# Mengkonfigurasi koneksi HubSpot
<a name="hubspot-configuring-connections"></a>

HubSpot mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. Pengguna yang membuat koneksi perlu memberikan informasi OAuth terkait seperti Client ID dan Client Secret untuk aplikasi HubSpot klien mereka. AWS Glue Konsol akan mengarahkan pengguna ke HubSpot tempat pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance mereka HubSpot .
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri HubSpot dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke login dan memberi wewenang HubSpot AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk HubSpot dokumentasi publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Aplikasi publik](https://developers.hubspot.com/docs/api/creating-an-app).

Untuk mengkonfigurasi HubSpot koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih HubSpot.

   1. Menyediakan HubSpot lingkungan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari HubSpot entitas
<a name="hubspot-reading-from-entities"></a>

**Prasyarat**

 HubSpot Objek yang ingin Anda baca. Anda akan memerlukan nama objek seperti kontak atau tugas. Tabel berikut menunjukkan entitas yang didukung untuk sumber Sync.

## Entitas yang didukung untuk sumber Sinkronisasi
<a name="sync-table"></a>


| Entitas | Versi API | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partioning | 
| --- | --- | --- | --- | --- | --- | --- | 
| Kampanye | v1 | Tidak | Ya | Tidak | Ya | Tidak | 
| Perusahaan | v3 | Ya | Ya | Ya | Ya | Ya | 
| Kontak  | v3 | Ya | Ya | Ya | Ya | Ya | 
| Daftar Kontak | v1 | Tidak | Ya | Tidak | Ya | Tidak | 
| Penawaran | v3 | Ya | Ya | Ya | Ya | Ya | 
| Pipa CRM (Saluran Pipa Kesepakatan) | v1 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Acara Email | v1 | Tidak | Ya | Tidak | Ya | Tidak | 
| Panggilan | v3 | Ya | Ya | Ya | Ya | Ya | 
| Catatan | v3 | Ya | Ya | Ya | Ya | Ya | 
| Email | v3 | Ya | Ya | Ya | Ya | Ya | 
| Rapat | v3 | Ya | Ya | Ya | Ya | Ya | 
| Tugas | v3 | Ya | Ya | Ya | Ya | Ya | 
| Surat Pos | v3 | Ya | Ya | Ya | Ya | Ya | 
| Objek Kustom | v3 | Ya | Ya | Ya | Ya | Ya | 
| Formulir | v2 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pemilik | v3 | Tidak | Ya | Tidak | Ya | Tidak | 
| Produk | v3 | Ya | Ya | Ya | Ya | Ya | 
| Tiket | v3 | Ya | Ya | Ya | Ya | Ya | 
| Alur kerja | v3 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Asosiasi | v4 | Ya | Tidak | Tidak | Ya | Tidak | 
| Label Asosiasi | v4 | Tidak | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
hubspot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "contact",
        "API_VERSION": "v3"
    }
```

## Entitas yang didukung untuk sumber Async
<a name="async-table"></a>


| Entitas | Versi API | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partioning | 
| --- | --- | --- | --- | --- | --- | --- | 
| Perusahaan | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Kontak  | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Penawaran | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Panggilan | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Catatan | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Email | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Rapat | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Tugas | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Surat Pos | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Objek Kustom | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Produk | v3 | Ya | Tidak | Ya | Ya | Tidak | 
| Tiket | v3 | Ya | Tidak | Ya | Ya | Tidak | 

**Contoh:**

```
hubspot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "contact",
        "API_VERSION": "v3",
        "TRANSFER_MODE": "ASYNC"
    }
```

**HubSpot detail entitas dan bidang**:

**HubSpot API v4**: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

**catatan**  
Untuk `Associations` objek, untuk mengambil asosiasi antara dua objek, Anda perlu memberikan 'dari Id' (ID objek pertama) melalui filter wajib saat membuat pekerjaan. AWS Glue Jika Anda ingin mengambil asosiasi untuk beberapa dari IDs dalam kasus itu, Anda harus memberikan beberapa IDs dalam `where` klausa. Misalnya: untuk mengambil kontak `Associations` IDs '1' dan '151', Anda perlu memberikan filter sebagai. `where id=1 AND id=151`

**HubSpot API v3**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

Untuk entitas berikut, HubSpot sediakan titik akhir untuk mengambil metadata secara dinamis, sehingga dukungan operator ditangkap pada tingkat tipe data untuk setiap entitas.

**catatan**  
`DML_STATUS`adalah bidang virtual yang ditambahkan pada setiap catatan saat runtime untuk menentukan statusnya (DIBUAT/DIPERBARUI) dalam mode Sinkronisasi. `CONTAINS/LIKE`Operator tidak didukung dalam mode Async.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

**HubSpot API v2**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

**HubSpot API v1:**

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

## Mempartisi kueri
<a name="hubspot-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  “2024-01-01T10:00:00.115Z" 
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Tabel berikut menjelaskan rincian dukungan bidang partisi entitas:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/hubspot-reading-from-entities.html)

Contoh:

```
hubspot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "company",
        "API_VERSION": "v3",
        "PARTITION_FIELD": "hs_object_id"
        "LOWER_BOUND": "50"
        "UPPER_BOUND": "16726619290"
        "NUM_PARTITIONS": "10"
    }
```

# Menulis ke HubSpot Entitas
<a name="hubspot-writing-to-entities"></a>

## Prasyarat
<a name="hubspot-writing-prerequisites"></a>
+  HubSpot Objek yang ingin Anda tulis. Anda akan memerlukan nama objek seperti kontak atau tiket.
+  HubSpot Konektor mendukung operasi penulisan berikut:
  + INSERT
  + UPDATE
+ Saat menggunakan operasi `UPDATE` tulis, `ID_FIELD_NAMES` opsi harus disediakan untuk menentukan bidang ID untuk catatan.

## Entitas yang didukung untuk Tujuan Sinkronisasi
<a name="hubspot-supported-entities"></a>


| Entitas | Versi API | Akan didukung sebagai Konektor Tujuan | Dapat Dimasukkan | Dapat Diperbarui | 
| --- | --- | --- | --- | --- | 
| Perusahaan | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Kontak  | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Penawaran | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Produk | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Panggilan | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Rapat | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Catatan | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Email | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Tugas | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Surat Pos | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Objek Kustom | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Tiket | v3 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 
| Asosiasi | v4 | Ya | Ya (Tunggal, Massal) | Tidak | 
| Label Asosiasi | v4 | Ya | Ya (Tunggal, Massal) | Ya (Tunggal, Massal) | 

**Contoh:**

**Operasi INSERT**

```
hubspot_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "contact",
        "API_VERSION": "v3",
        "WRITE_OPERATION": "INSERT"
    }
)
```

**UPDATE Operasi**

```
hubspot_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deal",
        "API_VERSION": "v3",
        "WRITE_OPERATION": "UPDATE",
        "ID_FIELD_NAMES": "hs_object_id"
    }
)
```

# HubSpot opsi koneksi
<a name="hubspot-connection-options"></a>

Berikut ini adalah opsi koneksi untuk HubSpot:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di HubSpot.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. HubSpot Rest versi API yang ingin Anda gunakan. Misalnya: v1, v2, v3, v4.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `TRANSFER_MODE`(String) - Digunakan untuk menunjukkan apakah query harus dijalankan pada modus Async.
+ `WRITE_OPERATION`(String) - Default: SISIPKAN. Digunakan untuk menulis. Nilai harus INSERT atau UPDATE.
+ `ID_FIELD_NAMES`(String) - Default: null. Diperlukan untuk UPDATE.

# Keterbatasan dan catatan untuk HubSpot konektor
<a name="hubspot-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk HubSpot konektor:
+ Titik akhir pencarian dibatasi hingga 10.000 total hasil untuk setiap kueri yang diberikan. Setiap partisi yang memiliki lebih dari 10.000 catatan akan menghasilkan kesalahan 400.
+ Keterbatasan penting lainnya untuk konektor dijelaskan dalam [Batasan](https://developers.hubspot.com/docs/api/crm/search#limitations).
+ Maksimal tiga pernyataan penyaringan diterima oleh HubSpot.
+ Saat ini, HubSpot mendukung Asosiasi antara HubSpot objek standar (misalnya kontak, perusahaan, kesepakatan, atau tiket) dan objek khusus.
  + Untuk akun Gratis: Anda hanya dapat membuat hingga 10 jenis asosiasi antara setiap pasangan objek (misalnya kontak dan perusahaan).
  + Untuk akun Super Admin: Anda hanya dapat membuat hingga 50 jenis asosiasi antara setiap pasangan objek.
  + Untuk informasi selengkapnya, lihat [Asosiasi v4](https://developers.hubspot.com/docs/api/crm/) serta [Membuat dan menggunakan label asosiasi](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels).
+ Objek 'Kutipan' dan 'Komunikasi' tidak ada untuk Asosiasi karena saat ini tidak didukung di konektor.
+ Untuk Async, SaaS mengurutkan nilai dalam urutan menaik saja.
+ Untuk `Ticket` entitas, SaaS tidak mengembalikan `hs_object_id` bidang dalam mode Async.

# Menghubungkan ke Iklan Instagram
<a name="connecting-to-data-instagram-ads"></a>

Instagram adalah aplikasi berbagi foto populer yang memungkinkan Anda terhubung dengan merek, selebriti, pemimpin pemikiran, teman, keluarga, dan banyak lagi. Ini adalah layanan berbagi foto dan jejaring sosial. Pengguna dapat mengambil foto atau video pendek dan membagikannya dengan pengikut mereka. Iklan Instagram adalah posting yang dapat dibayar bisnis untuk melayani pengguna Instagram.

**Topics**
+ [AWS Glue dukungan untuk Iklan Instagram](instagram-ads-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](instagram-ads-configuring-iam-permissions.md)
+ [Mengkonfigurasi Iklan Instagram](instagram-ads-configuring.md)
+ [Mengonfigurasi koneksi Iklan Instagram](instagram-ads-configuring-connections.md)
+ [Membaca dari entitas Iklan Instagram](instagram-ads-reading-from-entities.md)
+ [Opsi koneksi Iklan Instagram](instagram-ads-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Iklan Instagram](instagram-ads-connector-limitations.md)

# AWS Glue dukungan untuk Iklan Instagram
<a name="instagram-ads-support"></a>

AWS Glue mendukung Iklan Instagram sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Iklan Instagram.

**Didukung sebagai target?**  
Tidak.

**Versi API Iklan Instagram yang didukung**  
Versi API Iklan Instagram berikut didukung:
+ v17.0
+ v18.0
+ v19.0
+ v20.0

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="instagram-ads-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Iklan Instagram
<a name="instagram-ads-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Iklan Instagram, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="instagram-ads-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Akun Instagram Standard diakses secara tidak langsung melalui Facebook.
+ Otentikasi pengguna diperlukan untuk menghasilkan token akses.
+ Konektor SDK Iklan Instagram akan menerapkan OAuth alur *Token Akses Pengguna*.
+ Kami OAuth2 menggunakan.0 untuk mengautentikasi permintaan API kami ke Iklan Instagram. Otentikasi berbasis web ini berada di bawah arsitektur Multi-Factor Authentication (MFA), yang merupakan superset dari 2FA.
+ Pengguna perlu memberikan izin untuk mengakses titik akhir. [https://developers.facebook.com/docs/permissions](https://developers.facebook.com/docs/permissions)

## Mendapatkan kredensi OAuth 2.0
<a name="instagram-ads-configuring-creating-instagram-ads-oauth2-credentials"></a>

[Untuk mendapatkan kredensi API sehingga Anda dapat melakukan panggilan terautentikasi ke instans Anda, lihat API Grafik.](https://developers.facebook.com/docs/graph-api/)

# Mengonfigurasi koneksi Iklan Instagram
<a name="instagram-ads-configuring-connections"></a>

Iklan Instagram mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ Jenis hibah ini dianggap berkaki tiga OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Iklan Instagram dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Iklan Instagram untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token akses. Token pengguna sistem yang kedaluwarsa berlaku selama 60 hari dari tanggal yang dibuat atau diperbarui. Untuk membuat kontinuitas, pengembang harus menyegarkan token akses dalam waktu 60 hari. Gagal melakukannya mengakibatkan kehilangan token akses dan mengharuskan pengembang mendapatkan yang baru untuk mendapatkan kembali akses API. Lihat [Segarkan Token Akses](https://developers.facebook.com/docs/marketing-api/system-users/install-apps-and-generate-tokens/).

Untuk mengonfigurasi koneksi Iklan Instagram:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Iklan Instagram.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Berikan ID Klien Aplikasi Klien yang Dikelola Pengguna.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. Rahasia yang dipilih harus memiliki kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` dengan nilai Rahasia Klien dari aplikasi yang terhubung.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Iklan Instagram
<a name="instagram-ads-reading-from-entities"></a>

**Prasyarat**

Objek Iklan Instagram yang ingin Anda baca. Anda akan membutuhkan nama objek. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kampanye | Ya | Ya | Tidak | Ya | Ya | 
| Set Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Iklan Kreatif | Tidak | Ya | Tidak | Ya | Tidak | 
| Wawasan - Akun | Tidak | Ya | Tidak | Ya | Tidak | 
| Gambar Iklan | Ya | Ya | Tidak | Ya | Tidak | 
| Wawasan - Iklan | Ya | Ya | Tidak | Ya | Ya | 
| Wawasan - AdSet | Ya | Ya | Tidak | Ya | Ya | 
| Wawasan - Kampanye | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
instagramAds_read = glueContext.create_dynamic_frame.from_options(
    connection_type="instagramads",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0"
    }
```

## Entitas dan detail bidang Iklan Instagram
<a name="instagram-ads-reading-entity-and-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Kampanye](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group)
+ [Set Iklan](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign)
+ [Iklan](https://developers.facebook.com/docs/marketing-api/reference/adgroup)
+ [Iklan Kreatif](https://developers.facebook.com/docs/marketing-api/reference/ad-creative)
+ [Wawasan Akun Iklan](https://developers.facebook.com/docs/marketing-api/reference/ad-account/insights)
+ [Gambar Iklan](https://developers.facebook.com/docs/marketing-api/reference/ad-image)
+ [Wawasan Iklan](https://developers.facebook.com/docs/marketing-api/reference/adgroup/insights/)
+ [AdSets Wawasan](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign/insights)
+ [Wawasan Kampanye](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights)

Untuk informasi selengkapnya, lihat [API Pemasaran](https://developers.facebook.com/docs/marketing-api/reference/v21.0).

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String dalam respons konektor.

## Mempartisi kueri
<a name="instagram-ads-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang ini, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai yang valid:

  ```
  "2022-01-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.

  Contoh nilai yang valid:

  ```
  "2024-01-02T00:00:00.000Z"
  ```
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
instagramADs_read = glueContext.create_dynamic_frame.from_options(
    connection_type="instagramads",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0",
        "PARTITION_FIELD": "created_time"
        "LOWER_BOUND": "2022-01-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-01-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Iklan Instagram
<a name="instagram-ads-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Iklan Instagram:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk membaca. Nama objek Anda di Iklan Instagram.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk membaca. Versi API Grafik Iklan Instagram yang ingin Anda gunakan. Misalnya: v21.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk membaca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk membaca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk membaca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk membaca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk membaca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk membaca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk membaca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk konektor Iklan Instagram
<a name="instagram-ads-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Iklan Instagram:
+ Hitungan panggilan aplikasi adalah jumlah panggilan yang dapat dilakukan pengguna selama jendela satu jam bergulir 200 dikalikan dengan jumlah pengguna. Untuk detail batas tarif, lihat Batas [Tarif, dan Batas](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/) [Tarif Kasus Penggunaan Bisnis](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#buc-rate-limits).

# Menghubungkan ke Interkom di AWS Glue Studio
<a name="connecting-to-data-intercom"></a>

 Intercom adalah Engagement OS, saluran terbuka antara bisnis Anda dan pelanggan Anda — dalam produk, saat ini, dan sesuai ketentuan mereka — menciptakan dialog berkelanjutan yang memungkinkan Anda memanfaatkan setiap keterlibatan di seluruh perjalanan pelanggan. 

**Topics**
+ [AWS Glue dukungan untuk Intercom](intercom-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](intercom-configuring-iam-permissions.md)
+ [Mengkonfigurasi Interkom](intercom-configuring.md)
+ [Mengkonfigurasi koneksi Interkom](intercom-configuring-connections.md)
+ [Membaca dari entitas Interkom](intercom-reading-from-entities.md)
+ [Opsi koneksi interkom](intercom-connection-options.md)
+ [Batasan](intercom-limitations.md)
+ [Membuat akun Interkom baru dan mengonfigurasi aplikasi klien](intercom-new-account-creation.md)

# AWS Glue dukungan untuk Intercom
<a name="intercom-support"></a>

AWS Glue mendukung Interkom sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Intercom.

**Didukung sebagai target?**  
Tidak.

**Versi API Interkom yang didukung**  
 v2.5. Untuk dukungan entitas per versi tertentu, lihat[Membaca dari entitas Interkom](intercom-reading-from-entities.md). 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="intercom-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan izin IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM,, dan Amazon EC2. Amazon CloudWatch Logs Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Interkom
<a name="intercom-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Interkom, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="intercom-configuring-min-requirements"></a>
+  Anda memiliki akun Interkom. Untuk informasi selengkapnya, lihat [Membuat akun Interkom baru dan mengonfigurasi aplikasi klien](intercom-new-account-creation.md). 
+  Akun Interkom Anda diaktifkan untuk akses API. 
+  Anda harus memiliki aplikasi di bawah akun pengembang Intercom yang menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat Interkom- Langkah Pembuatan Akun Baru dan Aplikasi Klien. 

 Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Interkom Anda. 

# Mengkonfigurasi koneksi Interkom
<a name="intercom-configuring-connections"></a>

 Interkom mendukung jenis `AUTHORIZATION_CODE` hibah untuk OAuth 2. 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Google Ads di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Interkom mereka. 

 Pengguna harus memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Interkom untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

 Untuk informasi selengkapnya tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [API Iklan](https://developers.intercom.com/building-apps/docs/setting-up-oauth). 

Untuk mengkonfigurasi koneksi Interkom:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan — Secret harus berisi token akses aplikasi yang terhubung, token refresh, client\$1id, dan client\$1secret. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Interkom.

   1. Menyediakan lingkungan Interkom.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Interkom
<a name="intercom-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Interkom yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | API\$1Versi | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | --- | 
| Admin | v2.5 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Perusahaan | v2.5 | Tidak | Ya | Tidak | Ya | Tidak | 
| Percakapan | v2.5 | Ya | Ya | Ya | Ya | Ya | 
| Atribut Data | v2.5 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Kontak  | v2.5 | Ya | Ya | Ya | Ya | Ya | 
| Segmen | v2.5 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Tag | v2.5 | Tidak | Tidak | Tidak | Ya | Tidak | 
| Tim | v2.5 | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
Intercom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Intercom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "company",
        "API_VERSION": "V2.5"
    }
)
```

 **Entitas interkom dan detail bidang** 


| Entitas | Field | Tipe data | Operator yang Didukung | 
| --- | --- | --- | --- | 
| Admin | jenis | String | TA | 
| Admin | id | String | TA | 
| Admin | avatar | Struct | TA | 
| Admin | name | String | TA | 
| Admin | Email | String | TA | 
| Admin | away\$1mode\$1enabled | Boolean | TA | 
| Admin | away\$1mode\$1reassign | Boolean | TA | 
| Admin | has\$1inbox\$1seat | Boolean | TA | 
| Admin | teams\$1id | Daftar | TA | 
| Admin | job\$1title | String | TA | 
| Perusahaan | jenis | String | TA | 
| Perusahaan | id | String | TA | 
| Perusahaan | app\$1id | String | TA | 
| Perusahaan | dibuat\$1at | DateTime | TA | 
| Perusahaan | remote\$1created\$1at | DateTime | TA | 
| Perusahaan | updated\$1at | DateTime | TA | 
| Perusahaan | last\$1request\$1at | DateTime | TA | 
| Perusahaan | rencana | Struct | TA | 
| Perusahaan | perusahaan\$1id | String | TA | 
| Perusahaan | name | String | TA | 
| Perusahaan | custom\$1attributes | Struct | TA | 
| Perusahaan | session\$1count | Bilangan Bulat | TA | 
| Perusahaan | bulanan\$1habiskan | Bilangan Bulat | TA | 
| Perusahaan | user\$1count | Bilangan Bulat | TA | 
| Perusahaan | industri | String | TA | 
| Perusahaan | ukuran | Bilangan Bulat | TA | 
| Perusahaan | situs web | String | TA | 
| Perusahaan | tag | Struct | TA | 
| Perusahaan | segmen | Struct | TA | 
| Kontak  | id | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Kontak  | jenis | String | TA | 
| Kontak  | workspace\$1id | String | TA | 
| Kontak  | external\$1id | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | peran | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Kontak  | Email | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | telepon | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | name | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | avatar | String | TA | 
| Kontak  | owner\$1id | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | social\$1profiles | Struct | TA | 
| Kontak  | has\$1hard\$1memantul | Boolean | SAMA\$1KE | 
| Kontak  | marked\$1email\$1as\$1spam | Boolean | SAMA\$1KE | 
| Kontak  | unsubscribed\$1from\$1emails | Boolean | SAMA\$1KE | 
| Kontak  | dibuat\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | updated\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | signed\$1up\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | last\$1seen\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | last\$1replied\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | last\$1contacted\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | last\$1email\$1opened\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | last\$1email\$1clicked\$1at | DateTime | SAMA\$1KE, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Kontak  | language\$1override | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | penjelajah | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | browser\$1version | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | browser\$1language | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | os | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | lokasi | Struct | TA | 
| Kontak  | location\$1country | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | lokasi\$1wilayah | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | lokasi\$1kota | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | android\$1app\$1name | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | android\$1app\$1version | String | TA | 
| Kontak  | android\$1device | String | TA | 
| Kontak  | android\$1os\$1version | String | TA | 
| Kontak  | android\$1sdk\$1version | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | android\$1last\$1seen\$1at | Date | TA | 
| Kontak  | ios\$1app\$1name | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | ios\$1app\$1version | String | TA | 
| Kontak  | ios\$1device | String | TA | 
| Kontak  | ios\$1os\$1version | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | ios\$1sdk\$1versi | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Kontak  | ios\$1last\$1seen\$1at | DateTime | TA | 
| Kontak  | custom\$1attributes | Struct | TA | 
| Kontak  | tag | Struct | TA | 
| Kontak  | catatan | Struct | TA | 
| Kontak  | perusahaan | Struct | TA | 
| Kontak  | unsubscribed\$1from\$1sms | Boolean | TA | 
| Kontak  | sms\$1consent | Boolean | TA | 
| Kontak  | opted\$1out\$1subscription\$1types | Struct | TA | 
| Kontak  | perujuk | String | TA | 
| Kontak  | utm\$1kampanye | String | TA | 
| Kontak  | utm\$1konten | String | TA | 
| Kontak  | utm\$1sedang | String | TA | 
| Kontak  | utm\$1source | String | TA | 
| Kontak  | utm\$1term | String | TA | 
| Percakapan | jenis | String | TA | 
| Percakapan | id | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | dibuat\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | updated\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | sumber | Struct | TA | 
| Percakapan | source\$1id | String | SAMA\$1KE, TIDAK\$1SAMA\$1KE | 
| Percakapan | source\$1type | String | SAMA\$1KE, TIDAK\$1SAMA\$1KE, | 
| Percakapan | source\$1delivered\$1as | String | SAMA\$1KE, TIDAK\$1SAMA\$1KE, | 
| Percakapan | source\$1subject | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1body | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1author\$1id | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1author\$1type | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1author\$1name | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1author\$1email | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | source\$1url | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | kontak | Struct | TA | 
| Percakapan | rekan satu tim | Struct | TA | 
| Percakapan | title | String | TA | 
| Percakapan | admin\$1assignee\$1id | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | team\$1assignee\$1id | Bilangan Bulat | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | custom\$1attributes | Struct | TA | 
| Percakapan | terbuka | Boolean | SAMA\$1KE | 
| Percakapan | status | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | baca | Boolean | SAMA\$1KE | 
| Percakapan | menunggu\$1sejak | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | snoozed\$1until | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | tag | Struct | TA | 
| Percakapan | first\$1contact\$1reply | Struct | TA | 
| Percakapan | Prioritas | String | SAMA\$1KE, TIDAK\$1SAMA\$1KE | 
| Percakapan | topik | Struct | TA | 
| Percakapan | sla\$1diterapkan | Struct | TA | 
| Percakapan | percakapan\$1rating | Struct | TA | 
| Percakapan | percakapan\$1rating\$1requested\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | percakapan\$1rating\$1replied\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | percakapan\$1rating\$1score | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | percakapan\$1rating\$1komentar | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | percakapan\$1rating\$1contact\$1id | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | percakapan\$1rating\$1admin\$1id | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | statistik | Struct | TA | 
| Percakapan | statistik\$1time\$1to\$1assignment | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1time\$1to\$1admin\$1reply | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1time\$1to\$1first\$1close | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1time\$1to\$1last\$1close | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1median\$1time\$1to\$1reply | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1first\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1first\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1first\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1first\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1assignment\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1last\$1closed\$1by\$1id | String | BERISI, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Percakapan | statistik\$1count\$1reopens | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1count\$1assignments | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | statistik\$1count\$1conversation\$1parts | Bilangan Bulat | EQUAL\$1TO, NOT\$1EQUAL\$1TO, LEBIH BESAR\$1DARI, KURANG\$1DARI | 
| Percakapan | percakapan\$1parts | Daftar | TA | 
| Atribut Data | id | Bilangan Bulat | TA | 
| Atribut Data | jenis | String | TA | 
| Atribut Data | model | String | TA | 
| Atribut Data | name | String | TA | 
| Atribut Data | full\$1name | String | TA | 
| Atribut Data | label | String | TA | 
| Atribut Data | deskripsi | String | TA | 
| Atribut Data | data\$1type | String | TA | 
| Atribut Data | options | Daftar | TA | 
| Atribut Data | api\$1writable | Boolean | TA | 
| Atribut Data | ui\$1writable | Boolean | TA | 
| Atribut Data | kebiasaan | Boolean | TA | 
| Atribut Data | diarsipkan | Boolean | TA | 
| Atribut Data | dibuat\$1at | Boolean | TA | 
| Atribut Data | updated\$1at | DateTime | TA | 
| Atribut Data | admin\$1id | String | TA | 
| Segmen | jenis | String | TA | 
| Segmen | id | String | TA | 
| Segmen | name | String | TA | 
| Segmen | dibuat\$1at | DateTime | TA | 
| Segmen | updated\$1at | DateTime | TA | 
| Segmen | person\$1type | String | TA | 
| Segmen | count | Bilangan Bulat | TA | 
| Tag | jenis | String | TA | 
| Tag | id | String | TA | 
| Tag | name | String | TA | 
| Tim | jenis | String | TA | 
| Tim | id | String | TA | 
| Tim | name | String | TA | 
| Tim | admin\$1id | Daftar | TA | 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel berikut. 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| Kontak  | created\$1at, updated\$1at, last\$1seen\$1at | DateTime | 
| Percakapan | id | Bilangan Bulat | 
| Percakapan | created\$1at, updated\$1at | DateTime | 

 **Contoh** 

```
Intercom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Intercom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversation",
        "API_VERSION": "V2.5",
        "PARTITION_FIELD": "created_at"
        "LOWER_BOUND": "2022-07-13T07:55:27.065Z"
        "UPPER_BOUND": "2022-08-12T07:55:27.065Z"
        "NUM_PARTITIONS": "2"
    }
)
```

# Opsi koneksi interkom
<a name="intercom-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Interkom:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama Objek Anda di Interkom. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Intercom Rest API versi yang ingin Anda gunakan. Contoh: v2.5. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 
+  `INSTANCE_URL`(String) - URL dari contoh di mana pengguna ingin menjalankan operasi. Misalnya: [https://api.intercom.io](https://api.intercom.io). 

# Batasan
<a name="intercom-limitations"></a>

Berikut ini adalah batasan untuk konektor Interkom:
+  Saat menggunakan entitas Perusahaan, ada batasan 10.000 Perusahaan yang dapat dikembalikan. Untuk informasi selengkapnya, lihat [Daftar semua API perusahaan](https://developers.intercom.com/docs/references/2.5/rest-api/companies/list-companies). 
+  Saat menerapkan pesanan berdasarkan, filter wajib untuk entitas **Kontak** dan **Percakapan**. 
+  MCA didukung oleh penyedia SaaS. Namun, berdasarkan batas tarif API yang disebutkan dalam dokumentasi, kami tidak akan meng-host MCA AWS Glue karena dapat memengaruhi beban kerja lain dan berpotensi menyebabkan masalah kinerja karena perselisihan sumber daya. 

# Membuat akun Interkom baru dan mengonfigurasi aplikasi klien
<a name="intercom-new-account-creation"></a>

**Membuat akun Interkom**

1. Pilih [URL Interkom](https://app.intercom.com/) dan pilih **Mulai uji coba gratis saya** di sudut kanan atas halaman.

1. Pilih **tombol Coba gratis** di sudut kanan atas halaman.

1. Pilih jenis bisnis yang Anda butuhkan. 

1. Masukkan semua informasi yang diperlukan pada halaman.

1. Setelah memasukkan semua informasi, pilih **Daftar**.



**Membuat aplikasi pengembang Interkom**

Untuk mendapatkan **Client Id** dan **Client Secret**, Anda membuat akun pengembang.

1. Arahkan ke [https://app.intercom.com/](https://app.intercom.com/).

1. Masukkan ID Email dan Kata Sandi/Masuk Menggunakan Google dan masuk.

1. Pilih **profil pengguna** di sudut kiri bawah dan pilih pengaturan.

1. Pilih **Aplikasi & Integrasi**.

1. Pilih tab **Hub Pengembang** di bawah **Aplikasi & Integrasi**.

1. Pilih **aplikasi baru** dan buat aplikasi di sini.

1. Berikan nama aplikasi dan pilih **Buat** aplikasi.

1. Di dalam aplikasi, navigasikan ke bagian **Otentikasi**.

1. Pilih **edit** dan tambahkan pengalihan URIs. Tambahkan URL Pengalihan khusus wilayah Anda sebagai. `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth` Misalnya, tambahkan`https://us-east-1.console.aws.amazon.com/gluestudio/oauth for the us-east-1 region`.

1. Dapatkan **ID Klien** dan **Rahasia Klien** yang dihasilkan di Bagian Informasi Dasar.

# Menghubungkan ke Jira Cloud
<a name="connecting-to-data-jira-cloud"></a>

Jira Cloud adalah platform yang dikembangkan oleh Atlassian. Platform ini mencakup produk pelacakan masalah yang membantu tim merencanakan dan melacak proyek Agile mereka. Sebagai pengguna Jira Cloud, akun Anda berisi data tentang proyek Anda, seperti masalah, alur kerja, dan peristiwa. Anda dapat menggunakan AWS Glue untuk mentransfer data Jira Cloud Anda ke AWS layanan tertentu atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Jira Cloud](jira-cloud-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](jira-cloud-configuring-iam-permissions.md)
+ [Mengkonfigurasi Jira Cloud](jira-cloud-configuring.md)
+ [Mengkonfigurasi koneksi Jira Cloud](jira-cloud-configuring-connections.md)
+ [Membaca dari entitas Jira Cloud](jira-cloud-reading-from-entities.md)
+ [Opsi koneksi Jira Cloud](jira-cloud-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Jira Cloud](jira-cloud-connector-limitations.md)

# AWS Glue dukungan untuk Jira Cloud
<a name="jira-cloud-support"></a>

AWS Glue mendukung Jira Cloud sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Jira Cloud.

**Didukung sebagai target?**  
Tidak.

**Versi Jira Cloud API yang didukung**  
Versi API Jira Cloud berikut didukung:
+ v3

Untuk dukungan entitas per versi tertentu, lihat[Membaca dari entitas Jira Cloud](jira-cloud-reading-from-entities.md). 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="jira-cloud-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Jira Cloud
<a name="jira-cloud-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Jira Cloud ke tujuan yang didukung, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="jira-cloud-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Atlassian tempat Anda menggunakan produk perangkat lunak Jira di Jira Cloud. Untuk informasi selengkapnya, lihat [Membuat akun Jira Cloud](#jira-cloud-configuring-creating-jira-cloud-account).
+ Anda harus memiliki AWS akun yang dibuat dengan akses layanan ke AWS Glue.
+ Aplikasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Mengaktifkan OAuth 2.0 (3LO) dalam dokumentasi Pengembang](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#enabling-oauth-2-0--3lo-) Atlassian.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Jira Cloud Anda.

## Membuat akun Jira Cloud
<a name="jira-cloud-configuring-creating-jira-cloud-account"></a>

Untuk membuat akun Jira Cloud:

1. Arahkan ke [URL pendaftaran Atlassian](https://id.atlassian.com/signup).

1. Masukkan email dan nama kantor Anda dan pilih **Setuju**. Anda menerima email verifikasi.

1. Setelah memverifikasi email Anda, Anda dapat membuat kata sandi dan memilih **Daftar**.

1. Masukkan nama dan kata sandi, lalu pilih **Daftar**.

1. Anda diarahkan ke halaman di mana Anda harus memasukkan situs Anda. Masukkan nama situs dan pilih **Setuju**.

Setelah situs Atlassian Cloud Anda dimulai, Anda dapat mengatur Jira Anda dengan menjawab beberapa pertanyaan sesuai preferensi jenis proyek Anda.

Untuk masuk ke akun yang ada:

1. Arahkan ke [URL login Atlassian](https://id.atlassian.com/login) dan masukkan kredensional.

1. Masukkan email dan kata sandi dan klik **Masuk**. Anda dialihkan ke dasbor Jira.

## Membuat aplikasi di Jira Cloud
<a name="jira-cloud-configuring-creating-jira-cloud-app"></a>

Untuk membuat aplikasi di Jira Cloud dan mendapatkan Client ID dan Client Secret dari aplikasi klien terkelola:

1. Arahkan ke [URL Jira Cloud](https://id.atlassian.com/login) dan masukkan kredensional.

1. Pilih **Buat** dan pilih opsi **integrasi OAuth 2.0**.

1. **Masukkan nama aplikasi, periksa **T&C** dan pilih Buat.**

1. Arahkan ke bagian **Distribusi** di menu kiri dan pilih **Edit**.

1. Di bagian **Edit kontrol distribusi**:

   1. Pilih **STATUS DISTRIBUSI** sebagai **Berbagi**.

   1. Masukkan nama vendor.

   1. Masukkan URL untuk **Kebijakan Privasi** Anda. Misalnya, https://docs.aws.amazon.com/glue/ latest/dg/security -iam-awsmanpol.html

   1. Masukkan URL untuk **Ketentuan Layanan** Anda (opsional).

   1. Masukkan URL untuk **kontak dukungan Pelanggan** Anda (opsional).

   1. Pilih Yes/No dari **DEKLARASI DATA PRIBADI** dan pilih **Simpan perubahan**.

1. Arahkan ke **Izin** di menu kiri untuk aplikasi masing-masing.

1. Untuk **JIRA API**, pilih **Tambah**. Setelah ditambahkan, pilih opsi **Konfigurasi**.

1. Di bawah bagian **Classic scopes** > **Jira platform REST API** pilih **Edit Scopes. Dan periksa semua cakupan**. Klik **Simpan**.

1. Di bawah **Lingkup Granular** pilih **Edit Lingkup dan pilih cakupan** berikut:

1. Gulir ke bawah dan temukan cakupan. Ada dua jenis cakupan yang harus Anda pilih di bawah judul “CRM” dan “Standar”.

1. Tambahkan cakupan berikut:

   ```
   read:application-role:jira
   read:audit-log:jira
   read:avatar:jira
   read:field:jira
   read:group:jira
   read:instance-configuration:jira
   read:issue-details:jira
   read:issue-event:jira
   read:issue-link-type:jira
   read:issue-meta:jira
   read:issue-security-level:jira
   read:issue-security-scheme:jira
   read:issue-type-scheme:jira
   read:issue-type-screen-scheme:jira
   read:issue-type:jira
   read:issue.time-tracking:jira
   read:label:jira
   read:notification-scheme:jira
   read:permission:jira
   read:priority:jira
   read:project:jira
   read:project-category:jira
   read:project-role:jira
   read:project-type:jira
   read:project-version:jira
   read:project.component:jir
   read:project.property:jira
   read:resolution:jira
   read:screen:jira
   read:status:jira
   read:user:jira
   read:workflow-scheme:jira
   read:workflow:jira
   read:field-configuration:jira
   read:issue-type-hierarchy:jira
   read:webhook:jira
   ```

1. Arahkan ke **Otentikasi** di menu sebelah kiri dan pilih **Tambah**.

1. Masukkan **URL Callback** seperti oauth https://us-east-1.console.aws.amazon.com/gluestudio/

1. Arahkan ke **Pengaturan** di menu kiri dan gulir ke bawah untuk detail **Otentikasi**. Catat ID Klien dan Rahasia.

# Mengkonfigurasi koneksi Jira Cloud
<a name="jira-cloud-configuring-connections"></a>

Jira Cloud mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. AWS Glue Konsol akan mengarahkan pengguna ke Jira Cloud di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Jira Cloud mereka.
+ Pengguna masih dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Jira Cloud dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Jira Cloud untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk dokumentasi Jira Cloud publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Mengaktifkan OAuth 2.0 (](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#enabling-oauth-2-0--3lo-)3LO).

Untuk mengonfigurasi koneksi Jira Cloud:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Jira Cloud.

   1. Menyediakan lingkungan Jira Cloud.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Jira Cloud
<a name="jira-cloud-reading-from-entities"></a>

**Prasyarat**

Objek Jira Cloud yang ingin Anda baca. Anda akan memerlukan nama objek seperti Catatan Audit atau Masalah. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Catatan Audit | Ya | Ya | Tidak | Ya | Ya | 
| Isu | Ya | Ya | Tidak | Ya | Ya | 
| Bidang Masalah | Tidak | Tidak | Tidak | Ya | Tidak | 
| Konfigurasi Bidang Masalah | Ya | Ya | Tidak | Ya | Ya | 
| Jenis Tautan Masalah | Tidak | Tidak | Tidak | Ya | Tidak | 
| Skema Pemberitahuan Masalah | Ya | Ya | Tidak | Ya | Ya | 
| Masalah Skema Keamanan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Skema Jenis Masalah | Ya | Ya | Ya | Ya | Ya | 
| Skema Layar Jenis Masalah | Ya | Ya | Ya | Ya | Ya | 
| Jenis Masalah | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pengaturan Jira | Ya | Tidak | Tidak | Ya | Tidak | 
| Pengaturan Jira Lanjutan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pengaturan Jira Global | Tidak | Tidak | Tidak | Ya | Tidak | 
| Label | Tidak | Tidak | Tidak | Ya | Ya | 
| Diri saya | Ya | Tidak | Tidak | Ya | Tidak | 
| Izin | Tidak | Tidak | Tidak | Ya | Tidak. | 
| Proyek | Ya | Ya | Ya | Ya | Ya | 
| Kategori Proyek | Tidak | Tidak | Tidak | Ya | Tidak | 
| Jenis Proyek | Tidak | Tidak | Tidak | Ya | Tidak | 
| Info Server | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pengguna | Tidak | Tidak | Tidak. | Ya | Tidak | 
| Alur kerja | Ya | Ya | Ya | Ya | Ya | 
| Skema Alur Kerja | Tidak | Ya | Tidak | Ya | Ya | 
| Asosiasi Proyek Skema Alur Kerja | Ya | Tidak | Tidak | Ya | Tidak | 
| Status Alur Kerja | Tidak | Tidak | Tidak | Ya | Tidak | 
| Kategori Status Alur Kerja | Tidak | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
jiracloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="JiraCloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "audit-record",
        "API_VERSION": "v3"
    }
```

**Entitas Jira Cloud dan detail bidang**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/jira-cloud-reading-from-entities.html)

## Mempartisi kueri
<a name="jira-cloud-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
jiraCloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="JiraCloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "issue",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Jira Cloud
<a name="jira-cloud-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Jira Cloud:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Jira Cloud.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi API Jira Cloud Rest yang ingin Anda gunakan. Misalnya: v3.
+ `DOMAIN_URL`(String) - (Diperlukan) ID Jira Cloud yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk konektor Jira Cloud
<a name="jira-cloud-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Jira Cloud:
+  `Contains`Operator tidak bekerja dengan `resourceName` bidang, yang merupakan tipe `String` data. 
+  Secara default, jika tidak ada filter eksplisit yang diterapkan, hanya masalah dari 30 hari terakhir yang akan dirayapi. Pengguna memiliki opsi untuk mengganti filter default ini dengan menentukan filter khusus. 

# Menghubungkan ke Kustomer
<a name="connecting-to-data-kustomer"></a>

Kustomer adalah platform pengalaman pelanggan yang kuat yang menyatukan semua yang Anda butuhkan untuk melayani pelanggan Anda dengan lebih baik dalam satu easy-to-use alat.

**Topics**
+ [AWS Glue dukungan untuk Kustomer](kustomer-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](kustomer-configuring-iam-permissions.md)
+ [Mengkonfigurasi Kustomer](kustomer-configuring.md)
+ [Mengkonfigurasi koneksi Kustomer](kustomer-configuring-connections.md)
+ [Membaca dari entitas Kustomer](kustomer-reading-from-entities.md)
+ [Opsi koneksi Kustomer](kustomer-connection-options.md)
+ [Keterbatasan Kustomer](kustomer-connection-limitations.md)

# AWS Glue dukungan untuk Kustomer
<a name="kustomer-support"></a>

AWS Glue mendukung Kustomer sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Kustomer.

**Didukung sebagai target?**  
Tidak.

**Versi Kustomer API yang didukung**  
Versi Kustomer API berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="kustomer-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Kustomer
<a name="kustomer-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Kustomer ke tujuan yang didukung, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="kustomer-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun dengan Kustomer yang berisi data yang ingin Anda transfer. 
+ Dalam pengaturan untuk akun Anda, Anda telah membuat kunci API. Untuk informasi selengkapnya, lihat [Membuat kunci API](#kustomer-configuring-creating-an-api-key).
+ Anda menyediakan kunci API AWS Glue saat membuat koneksi.

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Kustomer Anda.

## Membuat kunci API
<a name="kustomer-configuring-creating-an-api-key"></a>

Untuk membuat kunci API yang akan Anda gunakan untuk membuat koneksi untuk konektor Kustomer di AWS Glue Studio:

1. Masuk ke [dasbor Kustomer menggunakan kredensialmu](https://amazon-appflow.kustomerapp.com/login).

1. Pilih ikon **Pengaturan** dari menu kiri.

1. Perluas drop-down **Keamanan** dan pilih **API Keys**.

1. Di halaman pembuatan Kunci API pilih **Tambahkan Kunci API** dari sudut kanan atas.

1. Isi input wajib untuk kunci API yang sedang dibuat.
   + Nama: nama apa pun untuk Kunci API Anda.
   + Peran: 'org' harus dipilih agar Kustomer berfungsi APIs .
   + Kedaluwarsa (dalam hari): jumlah hari yang Anda inginkan agar kunci API valid. Anda dapat menyimpannya sebagai **Never kedaluwarsa**, jika sesuai dengan kasus penggunaan Anda.

1. Pilih **Buat**.

1. Simpan nilai kunci API (token) untuk penggunaan lebih lanjut guna membuat koneksi untuk konektor Kustomer di AWS Glue Studio.

# Mengkonfigurasi koneksi Kustomer
<a name="kustomer-configuring-connections"></a>

Untuk mengkonfigurasi koneksi Kustomer:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terkoneksi yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen `apiKey` sebagai kuncinya.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Di bawah **Koneksi**, pilih **Buat koneksi**.

   1. Saat memilih **Sumber Data**, pilih Kustomer.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Kustomer
<a name="kustomer-reading-from-entities"></a>

**Prasyarat**

Objek Kustomer yang ingin Anda baca. Anda akan memerlukan nama objek seperti Merek atau Kartu. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Merek | Tidak | Ya | Tidak | Ya | Tidak | 
| Kartu | Tidak | Ya | Tidak | Ya | Tidak | 
| Pengaturan Obrolan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Perusahaan | Ya | Ya | Ya | Ya | Ya | 
| Percakapan | Ya | Ya | Ya | Ya | Ya | 
| Pelanggan | Ya | Ya | Ya | Ya | Ya | 
| Pencarian Pelanggan Disematkan | Tidak | Ya | Tidak | Ya | Tidak | 
| Posisi Pencarian Pelanggan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Kait Email | Tidak | Ya | Tidak | Ya | Tidak | 
| Kait Web | Tidak | Ya | Tidak | Ya | Tidak | 
| Artikel KB | Tidak | Ya | Tidak | Ya | Tidak | 
| Kategori KB | Tidak | Ya | Tidak | Ya | Tidak | 
| Formulir KB | Tidak | Ya | Tidak | Ya | Tidak | 
| Rute KB | Tidak | Ya | Tidak | Ya | Tidak | 
| Tag KB | Tidak | Ya | Tidak | Ya | Tidak | 
| KB Template | Tidak | Ya | Tidak | Ya | Tidak | 
| Tema KB | Tidak | Ya | Tidak | Ya | Tidak | 
| Klase | Tidak | Ya | Tidak | Ya | Tidak | 
| KViews | Tidak | Ya | Tidak | Ya | Tidak | 
| Pesan | Ya | Ya | Ya | Ya | Ya | 
| Catatan | Ya | Ya | Ya | Ya | Ya | 
| Notifikasi | Tidak | Ya | Tidak | Ya | Tidak | 

**Contoh:**

```
Kustomer_read = glueContext.create_dynamic_frame.from_options(
    connection_type="kustomer",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "brands",
        "API_VERSION": "v1"
    }
```

## Entitas kustomer dan detail bidang
<a name="kustomer-reading-from-entities-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Merek](https://api.kustomerapp.com/v1/brands)
+ [Kartu](https://api.kustomerapp.com/v1/cards)
+ [Pengaturan Obrolan](https://api.kustomerapp.com/v1/chat/settings)
+ [Perusahaan](https://api.kustomerapp.com/v1/companies)
+ [Percakapan](https://api.kustomerapp.com/v1/conversations)
+ [Pelanggan](https://api.kustomerapp.com/v1/customers)
+ [Penelusuran Pelanggan Disematkan](https://api.kustomerapp.com/v1/customers/searches/pinned)
+ [Posisi Pencarian Pelanggan](https://api.kustomerapp.com/v1/customers/searches/positions)
+ [Email Hooks](https://api.kustomerapp.com/v1/hooks/email)
+ [Kait Web](https://api.kustomerapp.com/v1/hooks/web)
+ [Artikel KB](https://api.kustomerapp.com/v1/kb/articles)
+ [Kategori KB](https://api.kustomerapp.com/v1/kb/categories)
+ [Formulir KB]( https://api.kustomerapp.com/v1/kb/forms)
+ [Rute KB](https://api.kustomerapp.com/v1/kb/routes)
+ [Tag KB](https://api.kustomerapp.com/v1/kb/tags)
+ [KB Template](https://api.kustomerapp.com/v1/kb/templates)
+ [Tema KB](https://api.kustomerapp.com/v1/kb/themes)
+ [Klase](https://api.kustomerapp.com/v1/klasses)
+ [Kviews](https://api.kustomerapp.com/v1/kviews)
+ [Pesan](https://api.kustomerapp.com/v1/messages)
+ [Catatan](https://api.kustomerapp.com/v1/notes)
+ [Pemberitahuan](https://api.kustomerapp.com/v1/notifications)

Kustomer API v1

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/kustomer-reading-from-entities.html)

## Mempartisi kueri
<a name="kustomer-reading-from-partitioning"></a>

**Partisi berbasis lapangan**

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2023-01-15T11:18:39.205Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel berikut:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/kustomer-reading-from-entities.html)

Contoh:

```
Kustomer_read = glueContext.create_dynamic_frame.from_options(
    connection_type="kustomer",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversation",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "createdAt"
        "LOWER_BOUND": "2023-01-15T11:18:39.205Z"
        "UPPER_BOUND": "2023-02-15T11:18:39.205Z"
        "NUM_PARTITIONS": "2"
    }
```

# Opsi koneksi Kustomer
<a name="kustomer-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Kustomer:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Kustomer.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Kustomer Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk membaca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk membaca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk membaca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk membaca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL contoh Kustomer.

# Keterbatasan Kustomer
<a name="kustomer-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Kustomer:
+ `Customer Searches`Entitas tidak didukung karena dokumentasi Kustomer API belum mendeklarasikan titik akhir apa pun untuknya.
+ Dukungan filtrasi dan transfer inkremental pada `Klasses` entitas tidak didukung.
+ Pesanan oleh dapat didukung pada beberapa bidang yang berlaku dalam satu permintaan.

  Namun, urutan berdasarkan fungsionalitas pada beberapa bidang telah diamati berperilaku tidak konsisten dari ujung SaaS untuk beberapa kombinasi. Ini tidak dapat diprediksi karena mungkin ada kombinasi 'n' yang mungkin menunjukkan hasil penyortiran yang salah. Contoh:

  Untuk `Customers` entitas, order by `progressiveStatus desc, name asc` tidak menghasilkan hasil yang diurutkan dengan benar. Ini mengurutkan hanya berdasarkan `progressiveStatus` pesanan. Jika perilaku seperti itu diamati, Anda dapat menggunakan satu bidang untuk diurutkan.
+ Urutan berdasarkan pada bidang 'id' hanya didukung oleh `Messages` entitas `Conversations` dan sebagai parameter kueri. Misalnya: https://api.kustomerapp.com/v1/ percakapan? sort=desc (Ini mengurutkan hasil berdasarkan 'id' dalam urutan menurun.)

  Selain itu, filter atau pemesanan lain di bidang lain diterjemahkan ke dalam badan permintaan POST yang memiliki titik akhir API sebagai https://api.kustomerapp.com/v1/ pelanggan/pencarian POST Untuk mengizinkan dukungan pemesanan berdasarkan 'id' di `Conversations` dan`Messages`, hanya pesanan berdasarkan id yang harus ada atau and/or urutan filter lainnya di bidang lain yang berlaku.
+ Kustomer memungkinkan maksimum 10K record untuk diambil terlepas dari permintaan yang disaring atau tidak difilter. Karena batasan ini, akan ada kehilangan data untuk setiap entitas yang memegang lebih dari 10K catatan. Ada dua kemungkinan solusi yang dapat Anda lakukan untuk mengurangi sebagian ini:
  + Terapkan filter untuk mengambil kumpulan catatan tertentu.
  + Jika ada lebih dari 10K catatan dengan filter yang diterapkan, terapkan nilai filter berturut-turut dalam permintaan berikutnya yang baru atau terapkan rentang dalam filter. Contoh: 

    FilterExpression permintaan pertama: `modifiedAt >= 2022-03-15T05:26:23.000Z and modifiedAt < 2023-03-15T05:26:23.000Z`

    Asumsikan ini menghabiskan batas rekor 10K.

    Permintaan lain dapat dipicu dengan filterExpression: `modifiedAt >= 2023-03-15T05:26:23.000Z`
+ Sebagai perilaku SaaS, `CONTAINS` operator di Kustomer mendukung pencocokan hanya pada kata-kata lengkap dan bukan kecocokan sebagian dalam satu kata. Misalnya: “body CONTAINS 'test record'” akan cocok dengan record yang memiliki 'test' di bidang 'tubuh'. Namun, “body CONTAINS 'test'” tidak akan cocok dengan catatan yang memiliki testAnotherRecord '' di bidang 'tubuh'.

# Menghubungkan ke LinkedIn
<a name="connecting-to-linkedin"></a>

LinkedIn adalah alat pemasaran berbayar yang menawarkan akses ke jejaring LinkedIn sosial melalui berbagai posting bersponsor dan metode lainnya. LinkedIn adalah alat pemasaran yang kuat bagi perusahaan B2B untuk membangun prospek, pengakuan online, berbagi konten, dan banyak lagi.

**Topics**
+ [AWS Glue dukungan untuk LinkedIn](linkedin-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](linkedin-configuring-iam-permissions.md)
+ [Mengkonfigurasi LinkedIn](linkedin-configuring.md)
+ [Mengkonfigurasi koneksi LinkedIn](linkedin-configuring-connections.md)
+ [Membaca dari LinkedIn entitas](linkedin-reading-from-entities.md)
+ [LinkedIn opsi koneksi](linkedin-connection-options.md)
+ [Membuat LinkedIn akun](linkedin-create-account.md)
+ [Batasan](linkedin-connector-limitations.md)

# AWS Glue dukungan untuk LinkedIn
<a name="linkedin-support"></a>

AWS Glue mendukung LinkedIn sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari LinkedIn.

**Didukung sebagai target?**  
Tidak.

**Versi LinkedIn API yang didukung**  
**202406 (Juni 2024)**

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="linkedin-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi LinkedIn
<a name="linkedin-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari LinkedIn, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="linkedin-configuring-min-requirements"></a>
+ Anda memiliki LinkedIn akun. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat LinkedIn akun](linkedin-create-account.md). 
+  LinkedIn Akun Anda diaktifkan untuk akses API. 
+ Anda telah membuat `OAuth2 API` integrasi di LinkedIn akun Anda. Integrasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat LinkedIn akun](linkedin-create-account.md).

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke LinkedIn akun Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain LinkedIn.

# Mengkonfigurasi koneksi LinkedIn
<a name="linkedin-configuring-connections"></a>

 LinkedIn mendukung jenis `AUTHORIZATION_CODE` hibah untuk OAuth2. 

Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung LinkedIn dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke login dan memberi wewenang LinkedIn AWS Glue untuk mengakses sumber daya mereka. 

Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses kedaluwarsa 60 hari setelah pembuatan. Token akses baru dapat diperoleh dengan menggunakan token penyegaran.

Untuk LinkedIn dokumentasi publik tentang cara membuat aplikasi yang terhubung untuk `Authorization Code OAuth` alur, lihat Alur [Kode Otorisasi (berkaki 3 OAuth)](https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?toc=%2Flinkedin%2Fmarketing%2Ftoc.json&bc=%2Flinkedin%2Fbreadcrumb%2Ftoc.json&view=li-lms-2024-07&tabs=HTTPS1).

**Mengkonfigurasi koneksi LinkedIn**

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   + Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 
   + Untuk aplikasi terhubung AWS Terkelola — Kosongkan rahasia atau rahasia dengan beberapa nilai sementara.
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Dalam AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih **LinkedIn**.

   1. Menyediakan LinkedIn lingkungan.

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1. Pilih **opsi Jaringan** jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari LinkedIn entitas
<a name="linkedin-reading-from-entities"></a>

**Prasyarat** 

 LinkedIn Objek yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Akun Iklan | Ya | Ya | Ya | Ya | Tidak | 
| Kampanye | Ya | Ya | Ya | Ya | Tidak | 
| Grup Kampanye | Ya | Ya | Ya | Ya | Tidak | 
| Materi Iklan | Ya | Ya | Ya | Ya | Tidak | 
| Analisis Iklan | Ya | Tidak | Tidak | Ya | Tidak | 
| Analisis Iklan Semua AdAcocunts | Ya | Tidak | Tidak | Ya | Tidak | 
| Analisis Iklan Semua Kampanye | Ya | Tidak | Tidak | Ya | Tidak | 
| Analisis Iklan Semua CampaignGroups | Ya | Tidak | Tidak | Ya | Tidak | 
| Analisis Iklan Semua AdCreatives | Ya | Tidak | Tidak | Ya | Tidak | 
| Bagikan Statistik | Ya | Tidak | Tidak | Ya | Tidak | 
| Statistik Halaman | Ya | Tidak | Tidak | Ya | Tidak | 
| Statistik Pengikut | Ya | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="linkedin",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "adaccounts",
        "API_VERSION": "202406"
    }
)
```


**LinkedIn detail entitas dan bidang**  

|  **Tipe Data Bidang**  |  **Operator Filter yang Didukung**  | 
| --- | --- | 
|  String  |  =  | 
|  DateTime  |  ANTARA, =  | 
|  Numerik  |  =  | 
|  Boolean  |  =  | 

# LinkedIn opsi koneksi
<a name="linkedin-connection-options"></a>

Berikut ini adalah opsi koneksi untuk LinkedIn:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di LinkedIn. Misalnya, AdAccounts. 
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. LinkedIn Rest versi API yang ingin Anda gunakan. Nilainya akan menjadi 202406, karena LinkedIn saat ini hanya mendukung versi 202406.
+ `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk entitas yang dipilih. 
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat LinkedIn akun
<a name="linkedin-create-account"></a>

**Membuat LinkedIn Aplikasi dan OAuth kredensialnya**

1. Arahkan ke halaman **Jaringan LinkedIn Pengembang** Anda dan masuk dengan kredensi LinkedIn akun Anda. 

1. Arahkan ke halaman **Aplikasi Saya** dan pilih **Buat Aplikasi** untuk membuat LinkedIn Aplikasi baru.

1. Masukkan detail berikut ke dalam formulir pendaftaran aplikasi:
   + **Nama Perusahaan** — Pilih perusahaan yang sudah ada atau buat perusahaan baru.
   + **Nama** — Masukkan nama aplikasi.
   + **Deskripsi** — Masukkan deskripsi aplikasi.
   + **Logo Aplikasi** - Pilih file gambar sebagai logo aplikasi Anda.
   + **Penggunaan Aplikasi** — Pilih penggunaan aplikasi Anda.
   + **URL situs web** — Masukkan URL websiute yang berisi informasi rinci tentang aplikasi Anda.
   + **Email Bisnis** — Masukkan alamat email bisnis Anda.
   + **Telepon Bisnis** — Masukkan nomor telepon bisnis Anda.
   + **LinkedIn Ketentuan Penggunaan API** — Baca dan setujui.

1. Setelah mengisi formulir pendaftaran aplikasi, pilih **Kirim**.

   Anda akan diarahkan ke halaman **Otentikasi**, di mana Kunci Otentikasi (ID Klien dan Rahasia Klien) dan detail relevan lainnya akan ditampilkan.

1. Jika aplikasi web Anda memerlukan akses ke alamat email pengguna dari LinkedIn akun mereka, pilih `r_emailaddress` izin. Selain itu, Anda dapat menentukan Authorized Redirect URLs untuk LinkedIn aplikasi Anda. 

**Membuat halaman di LinkedIn akun**

1. Arahkan ke [Produk LinkedIn Pengembang](https://developer.linkedin.com/).

1. **Di sudut kanan atas halaman **Produk LinkedIn Pengembang**, pilih Aplikasi saya.**

1. **Di sudut kanan atas halaman **Aplikasi saya, pilih Buat aplikasi**.**

1. Pada halaman **Buat aplikasi**, masukkan nama aplikasi Anda di bidang **Nama aplikasi**.

1. Di bidang **LinkedIn Halaman**, masukkan nama atau URL halaman perusahaan Anda.
**catatan**  
Jika Anda tidak memiliki LinkedIn Halaman, Anda dapat membuatnya dengan memilih **Buat yang baru LinkedIn**. 

1. Di bidang **URL kebijakan privasi**, masukkan URL kebijakan privasi Anda.

1. Pilih **Unggah logo** untuk mengunggah gambar yang akan ditampilkan kepada pengguna saat mereka mengotorisasi dengan aplikasi Anda.

1. Di bagian **Perjanjian hukum**, pilih **Saya telah membaca dan menyetujui persyaratan ini**.

1. Pilih **Buat aplikasi**. 

   Aplikasi baru Anda akan dibuat dan akan tersedia di bawah tab **Aplikasi saya**.

**Menerbitkan iklan kampanye di LinkedIn**

1. Masuk ke **Manajer Kampanye**. 

1. Pilih **Grup Kampanye** yang ada, atau pilih **Buat** untuk membuat yang baru.

1. Pilih tujuan Anda.

1. Pilih grup, anggaran, dan jadwal Anda.

1. Bangun audiens target Anda.

1. Pilih format iklan Anda.

1. Pilih anggaran dan jadwal Anda.

1. Siapkan iklan Anda.

1. Tinjau dan Luncurkan.

# Batasan
<a name="linkedin-connector-limitations"></a>

Untuk bidang Analytics `ad_analytics_all_adAccounts` `ad_analytics_all_campaigns``ad_analytics_all_campaign_groups`,,, dan `ad_analytics_all_adCreatives` filter wajib untuk mengambil catatan.

# Menghubungkan ke Mailchimp
<a name="connecting-to-mailchimp"></a>

MailChimp adalah platform all-in-one pemasaran yang membantu Anda mengelola dan berbicara dengan klien, pelanggan, dan pihak lain yang berkepentingan. Pendekatan pemasaran mereka berfokus pada praktik manajemen kontak yang sehat, email yang dirancang dengan indah, alur kerja otomatis yang unik, dan analisis data yang kuat. Jika Anda pengguna Mailchimp, Anda dapat terhubung AWS Glue ke akun Mailchimp Anda. Kemudian, Anda dapat menggunakan Mailchimp sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara MailChimp dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Mailchimp](mailchimp-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](mailchimp-configuring-iam-permissions.md)
+ [Mengkonfigurasi MailChimp](mailchimp-configuring.md)
+ [Mengkonfigurasi koneksi MailChimp](mailchimp-configuring-connections.md)
+ [Membaca dari entitas MailChimp](mailchimp-reading-from-entities.md)
+ [Pilihan koneksi MailChimp](mailchimp-connection-options.md)
+ [Membuat akun MailChimp](mailchimp-create-account.md)
+ [Batasan](mailchimp-connector-limitations.md)

# AWS Glue dukungan untuk Mailchimp
<a name="mailchimp-support"></a>

AWS Glue mendukung MailChimp sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk kueri data dari MailChimp.

**Didukung sebagai target?**  
Tidak.

**Versi API Mailchimp yang didukung**  
 3.0 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="mailchimp-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi MailChimp
<a name="mailchimp-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari MailChimp, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="mailchimp-configuring-min-requirements"></a>
+ Anda memiliki akun Mailchimp dengan email dan kata sandi. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun MailChimp](mailchimp-create-account.md). 
+  Anda harus memiliki AWS Akun yang dibuat dengan akses layanan ke AWS Glue. 
+ Pastikan Anda telah membuat salah satu sumber daya berikut. Sumber daya ini menyediakan kredensional yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda:
  + Aplikasi Pengembang yang mendukung otentikasi OAuth 2.0. Untuk informasi selengkapnya tentang membuat Aplikasi Pengembang, lihat [Membuat akun MailChimp](mailchimp-create-account.md). 

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun MailChimp Anda. Untuk koneksi tipikal, Anda tidak perlu melakukan hal lain di MailChimp.

# Mengkonfigurasi koneksi MailChimp
<a name="mailchimp-configuring-connections"></a>

 MailChimp mendukung berikut dua jenis untuk mekanisme otentikasi: 
+ MailChimp mendukung jenis `AUTHORIZATION_CODE` hibah.
  + Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi `OAuth` terkait apa pun kecuali ID Klien Mailchimp dan Rahasia Klien mereka. AWS Glue Konsol akan mengarahkan pengguna ke Mailchimp di mana pengguna harus login dan mengizinkan izin yang diminta untuk mengakses AWS Glue instance Mailchimp mereka.
  + Pengguna masih dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Mailchimp dan memberikan ID Klien dan Rahasia Klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Mailchimp untuk login dan otorisasi AWS Glue untuk mengakses sumber daya mereka.
  + Untuk dokumentasi Mailchimp publik tentang membuat aplikasi yang terhubung untuk `AUTHORIZATION_CODE OAuth` alur, lihat [Mengakses Data atas Nama Pengguna Lain dengan OAuth 2](https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/?msockid=141ebf9ffb4d619525c3ad27fad660d6). 
+ **Auth Kustom** [- Untuk dokumentasi Mailchimp publik tentang membuat kunci API yang diperlukan untuk otorisasi kustom, lihat Tentang Kunci API.](https://mailchimp.com/en/help/about-api-keys/?msockid=310fd0fe09d16afe034fc5de08d76b01) 



Untuk mengkonfigurasi koneksi MailChimp:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   + `OAuth`auth — Untuk aplikasi terhubung yang dikelola pelanggan: Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci. 
   + Autentikasi khusus - Untuk aplikasi terhubung yang dikelola pelanggan: Rahasia harus berisi Rahasia Konsumen aplikasi yang terhubung dengan “api\$1key” sebagai kunci. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Di bawah **Koneksi**, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih MailChimp.

   1. Berikan Mailchimp`instanceUrl`.

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih Jenis Otentikasi untuk terhubung ke MailChimp:
      + Untuk `OAuth` autentikasi - Berikan URL Token, Aplikasi Klien Terkelola Pengguna ClientId dari MailChimp yang ingin Anda sambungkan.
      + Untuk autentikasi Kustom - Pilih Jenis Otentikasi CUSTOM untuk terhubung ke Mailchimp.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai koneksi jaringan tambahan.

# Membaca dari entitas MailChimp
<a name="mailchimp-reading-from-entities"></a>

 **Prasyarat** 

Objek MailChimp yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 
+ [Laporan penyalahgunaan](https://mailchimp.com/developer/marketing/api/campaign-abuse/)
+ [Otomatisasi](https://mailchimp.com/developer/marketing/api/automation/list-automations/)
+ [Kampanye](https://mailchimp.com/developer/marketing/api/campaigns/list-campaigns/)
+ [Detail klik-](https://mailchimp.com/developer/marketing/api/link-clickers/)
+ [Daftar](https://mailchimp.com/developer/marketing/api/link-clickers/)
+ [Anggota](https://mailchimp.com/developer/marketing/api/list-segment-members/)
+ [Detail terbuka](https://mailchimp.com/developer/marketing/api/list-members/)
+ [Segmen](https://mailchimp.com/developer/marketing/api/list-segments/)
+ [Toko](https://mailchimp.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [Berhenti berlangganan](https://mailchimp.com/developer/marketing/api/unsub-reports/)


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Otomatisasi | Ya | Ya | Ya | Ya | Ya | 
| Kampanye | Tidak | Tidak | Tidak | Tidak | Tidak | 
| Daftar | Ya | Ya | Tidak | Ya | Ya | 
| Laporan Penyalahgunaan | Tidak | Ya | Tidak | Ya | Ya | 
| Laporan Terbuka | Tidak | Ya | Tidak | Ya | Ya | 
| Laporan Klik | Ya | Ya | Tidak | Ya | Ya | 
| Laporan Berhenti Berlangganan | Tidak | Ya | Tidak | Ya | Ya | 
| Segment | Tidak | Ya | Tidak | Ya | Ya | 
| Anggota Segmen | Ya | Ya | Tidak | Ya | Tidak | 
| Toko | Ya | Ya | Ya | Ya | Tidak | 

 **Contoh** 

```
mailchimp_read = glueContext.create_dynamic_frame.from_options(                    
            connection_type="mailchimp",                                           
            connection_options={                                                        
                  "connectionName": "connectionName",                                   
                  "ENTITY_NAME": "stores",  
"INSTANCE_URL": "https://us14.api.mailchimp.com",                     
                  "API_VERSION": "3.0"                                                
               })
```

 **Entitas MailChimp dan rincian bidang** 
+ [Laporan penyalahgunaan](https://mailchimp.com/developer/marketing/api/campaign-abuse/)
+ [Otomatisasi](https://mailchimp.com/developer/marketing/api/automation/list-automations/)
+ [Kampanye](https://mailchimp.com/developer/marketing/api/campaigns/list-campaigns/)
+ [Detail klik-](https://mailchimp.com/developer/marketing/api/link-clickers/)
+ [Daftar](https://mailchimp.com/developer/marketing/api/link-clickers/)
+ [Anggota](https://mailchimp.com/developer/marketing/api/list-segment-members/)
+ [Detail terbuka](https://mailchimp.com/developer/marketing/api/list-members/)
+ [Segmen](https://mailchimp.com/developer/marketing/api/list-segments/)
+ [Toko](https://mailchimp.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [Berhenti berlangganan](https://mailchimp.com/developer/marketing/api/unsub-reports/)

## Mempartisi kueri
<a name="mailchimp-engage-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Tabel berikut menjelaskan rincian dukungan bidang partisi entitas:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/mailchimp-reading-from-entities.html)

Contoh:

```
read_read = glueContext.create_dynamic_frame.from_options(
    connection_type="mailchimp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "automations",
        "API_VERSION": "3.0",
        "INSTANCE_URL": "https://us14.api.mailchimp.com",
        "PARTITION_FIELD": "create_time",
        "LOWER_BOUND": "2024-02-05T14:09:30.115Z",
        "UPPER_BOUND": "2024-06-07T13:30:00.134Z",
        "NUM_PARTITIONS": "3"
    }
```

# Pilihan koneksi MailChimp
<a name="mailchimp-connection-options"></a>

Berikut ini adalah opsi koneksi untuk MailChimp:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di MailChimp. 
+ `INSTANCE_URL`(String) - (Diperlukan) URL Instance MailChimp yang valid.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. MailChimp Engage Rest API versi yang ingin Anda gunakan. Misalnya: 3.0.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Membuat akun MailChimp
<a name="mailchimp-create-account"></a>

1. Arahkan ke [halaman login Mailchimp](https://login.mailchimp.com/?locale=en), masukkan ID email dan kata sandi Anda, lalu pilih **Daftar**.

1. Buka email konfirmasi dari MailChimp, dan pilih tautan konfirmasi untuk memverifikasi akun Anda.
**catatan**  
Waktu yang diperlukan untuk menerima email aktivasi dapat bervariasi. Jika Anda belum menerima email aktivasi, periksa folder spam Anda, dan baca kiat pemecahan masalah email aktivasi kami. [mailto:admin@pottedplanter.com](mailto:admin@pottedplanter.com)  


   Pertama kali Anda masuk ke akun Anda, Mailchimp meminta informasi yang diperlukan. MailChimp menggunakan informasi ini untuk membantu memastikan akun Anda sesuai dengan Ketentuan Penggunaan mereka dan untuk memberikan panduan yang relevan dengan Anda dan kebutuhan perusahaan Anda.

1. Masukkan informasi Anda, ikuti petunjuk untuk menyelesaikan proses aktivasi, dan mulai di akun Mailchimp baru Anda.

**Mendaftarkan `OAuth2.0` aplikasi**

1. Arahkan ke [halaman login Mailchimp](https://login.mailchimp.com/?locale=en), masukkan ID email dan kata sandi Anda, dan pilih **Masuk**. 

1. Pilih ikon **Pengguna** di sudut kanan atas, lalu pilih **Akun dan penagihan** dari menu tarik-turun.

1. Pilih **Ekstra** dan pilih **Aplikasi terdaftar** dari menu tarik-turun.

1. Cari dan pilih **Daftarkan Aplikasi**.

1. Masukkan detail berikut:
   + **Nama aplikasi** — Nama aplikasi. 
   + **Perusahaan/Organisasi** — Nama Perusahaan atau Organisasi Anda.
   + **Situs web aplikasi** — Situs web aplikasi.
   + **Redirect URI** — Pola URI Redirect adalah jalur URI (atau daftar jalur yang dipisahkan koma) yang dapat dialihkan oleh Mailchimp (jika diminta) saat alur login selesai. Sebagai contoh, `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`.

1. Pilih **Buat**. 

1. **Client ID** dan **Client Secret** sekarang akan terlihat. Salin dan simpan di lokasi yang aman. Kemudian, pilih **Selesai**. 
**catatan**  
ID Klien dan string Rahasia Klien Anda adalah kredensil yang digunakan untuk membuat koneksi dengan konektor ini saat menggunakan atau. AppFlow AWS Glue

**Menghasilkan kunci API**

1. Arahkan ke [halaman login Mailchimp](https://login.mailchimp.com/?locale=en), masukkan ID email dan kata sandi Anda, dan pilih **Masuk**. 

1. Pilih ikon **Pengguna** di sudut kanan atas, lalu pilih **Akun dan penagihan** dari menu tarik-turun.

1. Pilih **Ekstra** dan pilih **kunci API** dari menu tarik-turun.

1. Pilih **Buat Kunci**.

1. Masukkan nama untuk kunci dan pilih **Generate Key**.

   Halaman berikutnya menampilkan kunci API yang dihasilkan. 

1. Salin kunci Anda, simpan dengan aman, dan pilih **Selesai**.

# Batasan
<a name="mailchimp-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Mailchimp:
+ Filtrasi hanya didukung oleh`Campaigns`,`Automations`,`Lists`,`Open Details`,`Members`, dan `Segments` entitas.
+ Saat menggunakan filter pada bidang `DateTime` tipe data, Anda harus meneruskan nilai dalam format ini: `yyyy-mm-ddThh:MM:ssZ`

# Menghubungkan ke Microsoft Dynamics 365 CRM
<a name="connecting-to-microsoft-dynamics-365"></a>

 Microsoft Dynamics 365 adalah lini produk perencanaan sumber daya perusahaan dan manajemen hubungan pelanggan aplikasi bisnis cerdas. 

**Topics**
+ [AWS Glue dukungan untuk Microsoft Dynamics 365](microsoft-dynamics-365-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](microsoft-dynamics-365-configuring-iam-permissions.md)
+ [Mengkonfigurasi Microsoft Dynamics 365 CRM](microsoft-dynamics-365-configuring.md)
+ [Mengkonfigurasi koneksi Microsoft Dynamics 365 CRM](microsoft-dynamics-365-configuring-connections.md)
+ [Membaca dari entitas Microsoft Dynamics 365 CRM](microsoft-dynamics-365-reading-from-entities.md)
+ [Referensi opsi koneksi Microsoft Dynamics 365 CRM](microsoft-dynamics-365-connection-options.md)
+ [Batasan](microsoft-dynamics-365-connector-limitations.md)

# AWS Glue dukungan untuk Microsoft Dynamics 365
<a name="microsoft-dynamics-365-support"></a>

AWS Glue mendukung Microsoft Dynamics 365 sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Microsoft Dynamics 365.

**Didukung sebagai target?**  
Tidak.

**Versi Microsoft Dynamics 365 CRM API yang didukung**  
 v9.2. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="microsoft-dynamics-365-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Microsoft Dynamics 365 CRM, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="microsoft-dynamics-365-configuring-min-requirements"></a>
+  Anda memiliki akun pengembang Microsoft Dynamics 365 CRM dengan ClientId dan Rahasia. 
+  Akun Microsoft Dynamics 365 CRM Anda memiliki akses API dengan lisensi yang valid. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Microsoft Dynamics 365 CRM Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Microsoft Dynamics 365 CRM. 

# Mengkonfigurasi koneksi Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-configuring-connections"></a>

 **Jenis Hibah AUTHORIZATION\$1CODE** 
+  Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Microsoft Dynamics 365 CRM di mana pengguna harus masuk dan mengizinkan izin yang diminta untuk AWS Glue mengakses instance Microsoft Dynamics 365 CRM mereka. 
+  Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Microsoft Dynamics 365 CRM dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Microsoft Dynamics 365 CRM untuk masuk dan mengotorisasi AWS Glue untuk mengakses sumber daya mereka. 
+  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
+  Untuk dokumentasi Microsoft Dynamics 365 CRM publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat \$1 Microsoft Learn. [Pendaftaran Aplikasi Microsoft](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/authenticate-oauth#app-registration). 

Microsoft Dynamics 365 CRM mendukung OAuth2 otentikasi 0.

Untuk mengonfigurasi koneksi Microsoft Dynamics 365 CRM:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 
   +  Untuk jenis AuthorizationCode hibah: 

      Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi Rahasia Klien aplikasi yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **Sumber Data**, pilih Microsoft Dynamics 365 CRM.

   1. Pilih **INSTANCE\$1URL dari** Microsoft Dynamics 365 CRM instance yang ingin Anda sambungkan.

   1.  Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih **URL Token dan URL** **Kode Otorisasi** untuk mengakses ruang kerja Microsoft Dynamics 365 CRM Anda. 

   1.  Menyediakan **Aplikasi Klien Terkelola Pengguna ClientId dari aplikasi** Microsoft Dynamics 365 CRM Anda. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. Pilih **Berikutnya**. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Microsoft Dynamics 365 CRM yang ingin Anda baca. Anda akan memerlukan nama objek seperti kontak atau akun. Tabel berikut menunjukkan entitas yang didukung. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Entitas dinamis | Ya | Ya | Ya | Ya | Ya | 

 **Contoh** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "INSTANCE_URL": "https://{tenantID}.api.crm.dynamics.com"
    }
```

## Microsoft Dynamics 365 CRM Entitas dan Detail Bidang
<a name="microsoft-dynamics-365-entity-and-field-details"></a>

 **Entitas dengan metadata dinamis:** 

Microsoft Dynamics 365 CRM menyediakan titik akhir untuk mengambil metadata secara dinamis. Oleh karena itu, untuk entitas dinamis, dukungan operator ditangkap pada tingkat tipe data.

<a name="microsoft-dynamics-365-metadata-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/microsoft-dynamics-365-reading-from-entities.html)

 **Mempartisi kueri** 

Microsoft Dynamics 365 CRM hanya mendukung partisi berbasis bidang.

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-01-30T06:47:51.000Z"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi yang bijaksana dari entitas ditangkap dalam tabel di bawah ini: 


| Nama Entitas | Bidang Partisi | DataType | 
| --- | --- | --- | 
| Entitas Dinamis (Entitas standar) |  DateTime Bidang dinamis yang dapat dikueri | createdon, modifiedon | 
| Entitas Dinamis (Entitas khusus) | createdon, modifiedon | createdon, modifiedon | 

 **Contoh** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "instanceUrl": "https://{tenantID}.api.crm.dynamics.com"
        "PARTITION_FIELD": "createdon"
        "LOWER_BOUND": "2024-01-30T06:47:51.000Z"
        "UPPER_BOUND": "2024-06-30T06:47:51.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Referensi opsi koneksi Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Microsoft Dynamics 365 CRM:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Microsoft Dynamics 365 CRM. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Microsoft Dynamics 365 CRM Rest API versi yang ingin Anda gunakan. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `INSTANCE_URL`(String) - (Diperlukan) URL Instans Microsoft Dynamics 365 CRM yang valid dengan format: `https://{tenantID}.api.crm.dynamics.com` 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. Contoh:`2024-01-30T06:47:51.000Z`. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. Contoh:`2024-06-30T06:47:51.000Z`. 

# Batasan
<a name="microsoft-dynamics-365-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Microsoft Dynamics 365 CRM:
+  Di Microsoft Dynamics 365 CRM, partisi berbasis rekaman tidak didukung karena tidak mendukung parameter offset, dan dengan demikian partisi berbasis rekaman tidak dapat didukung. 
+  Pagination diatur maksimal 500 record per halaman untuk menghindari pengecualian Server Internal dari SaaS karena kombinasi ukuran data dan keterbatasan tingkat. 
  + [Dokumentasi SaaS tentang pagination](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/query/page-results?view=dataverse-latest)
  + [Dokumentasi SaaS tentang batas tarif](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/api-limits?tabs=sdk)
+  Microsoft Dynamics 365 CRM hanya mendukung `order by` bidang induk untuk semua entitas. `order by`tidak didukung pada sub-bidang. 
  + Arah ASC dan DESC didukung.
  + `order by`pada beberapa bidang didukung.
+  Pemfilteran pada bidang “createddatetime” dari entitas `aadusers` standar menimbulkan kesalahan permintaan yang buruk dari SaaS meskipun mendukung filtrasi. Tidak ada identifikasi spesifik dari entitas lain yang memiliki masalah serupa karena sifat dinamis dari metadata dan akar penyebabnya tidak diketahui. Oleh karena itu, itu tidak dapat ditangani. 
+  Jenis objek yang kompleks, seperti Struct, List, dan Map tidak mendukung filtrasi. 
+  Banyak bidang yang dapat diambil dari respons telah `isRetrievable` ditandai sebagai `false` respons metadata dinamis. Untuk menghindari kehilangan data, `isRetrievable` diatur `true` untuk semua bidang. 
+  Partisi berbasis bidang akan didukung pada semua entitas ketika mematuhi kriteria berikut: 
  + DateTime bidang queryable harus ada di entitas standar atau `createdon` dan `modifiedon` bidang (yang dihasilkan sistem) di entitas khusus. 
  + Tidak ada identifikasi eksklusif bidang yang dihasilkan sistem atau properti nullable dari metadata SaaS apa pun APIs, namun merupakan praktik umum bahwa hanya bidang yang tersedia secara default, dapat difilter dan tidak dapat dibatalkan. Oleh karena itu, kriteria pemilihan lapangan di atas dianggap aman nol dan jika dapat disaring, itu akan memenuhi syarat untuk dipartisi.

# Menghubungkan ke Microsoft Teams
<a name="connecting-to-microsoft-teams"></a>

 Microsoft Teams adalah ruang kerja kolaboratif dalam Microsoft 365 yang bertindak sebagai pusat percakapan di tempat kerja, kerja tim kolaboratif, obrolan video, dan berbagi dokumen, semuanya dirancang untuk membantu produktivitas pekerja dalam rangkaian alat terpadu. 

**Topics**
+ [AWS Glue dukungan untuk Microsoft Teams](microsoft-teams-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](microsoft-teams-configuring-iam-permissions.md)
+ [Mengkonfigurasi Microsoft Teams](microsoft-teams-configuring.md)
+ [Mengkonfigurasi koneksi Microsoft Teams](microsoft-teams-configuring-connections.md)
+ [Membaca dari entitas Microsoft Teams](microsoft-teams-reading-from-entities.md)
+ [Referensi opsi koneksi Microsoft Teams](microsoft-teams-connection-options.md)
+ [Batasan](microsoft-teams-connector-limitations.md)
+ [Buat akun Microsoft Teams baru:](#microsoft-teams-account-creation)

# AWS Glue dukungan untuk Microsoft Teams
<a name="microsoft-teams-support"></a>

AWS Glue mendukung Microsoft Teams sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Microsoft Teams.

**Didukung sebagai target?**  
Tidak.

**Versi Microsoft Teams API yang didukung**  
 v1. Untuk dukungan entitas per versi tertentu, lihat Entitas yang didukung untuk sumber. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="microsoft-teams-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Microsoft Teams
<a name="microsoft-teams-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Microsoft Teams, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="microsoft-teams-configuring-min-requirements"></a>
+  Anda memiliki akun pengembang Microsoft Teams dengan Email dan Kata Sandi. Untuk informasi selengkapnya, lihat [Buat akun Microsoft Teams baru:](connecting-to-microsoft-teams.md#microsoft-teams-account-creation). 
+  Anda harus menyiapkan OAuth2 aplikasi di akun Microsoft Anda yang menyediakan ID klien dan kredenal rahasia yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan terautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Buat akun Microsoft Teams baru:](connecting-to-microsoft-teams.md#microsoft-teams-account-creation). 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Microsoft Teams Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Microsoft Teams. 

# Mengkonfigurasi koneksi Microsoft Teams
<a name="microsoft-teams-configuring-connections"></a>

Microsoft Teams mendukung dua jenis berikut untuk mekanisme otentikasi:

1.  OAuth Auth: Microsoft Teams mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 
   +  Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default bergantung pada aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk instanceurl Microsoft Teams. AWS Glue Konsol akan mengarahkan pengguna ke Microsoft Teams di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Microsoft Teams mereka. 
   +  Pengguna dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Microsoft Teams dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Microsoft Teams untuk login dan otorisasi AWS Glue untuk mengakses sumber daya mereka. 
   +  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses aktif selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
   +  Untuk dokumentasi Microsoft Teams publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat \$1 Microsoft Learn. [Daftarkan aplikasi dengan platform identitas Microsoft - Microsoft Graph](https://learn.microsoft.com/en-us/graph/auth-register-app-v2). 

Untuk mengonfigurasi koneksi Microsoft Teams:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk OAuth autentikasi: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET sebagai kunci. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1.  Di bawah Koneksi Data, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Microsoft Teams.

   1. Berikan **ID Penyewa** Microsoft Teams Anda.

   1.  Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Menyediakan Aplikasi Klien Terkelola Pengguna ClientId dari aplikasi Microsoft Teams. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. Pilih **Berikutnya**. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Microsoft Teams
<a name="microsoft-teams-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Microsoft Teams yang ingin Anda baca. Anda akan memerlukan nama objek seperti tim atau saluran-pesan. Tabel berikut menunjukkan entitas yang didukung. 

 **Entitas yang didukung untuk Sumber** 

 Semua entitas didukung dengan API versi 1.0. 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Tim | Tidak | Tidak | Tidak | Ya | Tidak | 
| Anggota Tim | Ya | Ya | Tidak | Ya | Ya | 
| Grup | Ya | Ya | Ya | Ya | Ya | 
| Anggota Grup | Ya | Ya | Tidak | Ya | Tidak | 
| Saluran | Ya | Tidak | Tidak | Ya | Ya | 
| Pesan Saluran | Tidak | Ya | Tidak | Ya | Tidak | 
| Balasan Pesan Saluran | Tidak | Ya | Tidak | Ya | Tidak | 
| Tab Saluran | Ya | Tidak | Tidak | Ya | Tidak | 
| Obrolan | Ya | Ya | Ya | Ya | Ya | 
| Kalender Acara | Ya | Ya | Ya | Ya | Ya | 

 **Contoh** 

```
MicrosoftTeams_read = glueContext.create_dynamic_frame.from_options(
    connection_type="MicrosoftTeams",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "company",
        "API_VERSION": "v1.0"
    }
```

## Detail Entitas dan Bidang Microsoft Teams
<a name="microsoft-teams-entity-and-field-details"></a>

 Daftar entitas: 
+  Tim: [https://docs.microsoft.com/en-us/graph/api/user-list-joinedteams? tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/user-list-joinedteams?view=graph-rest-1.0) 
+  [Tim-Anggota: -daftar-anggota? https://docs.microsoft.com/en-us/ graph/api/team tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/team-list-members?view=graph-rest-1.0) 
+  Grup: [https://docs.microsoft.com/en-us/graph/api/group-list? tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/group-list?view=graph-rest-1.0) 
+  [Grup-Anggota: -daftar-anggota? https://docs.microsoft.com/en-us/ graph/api/group tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/group-list-members?view=graph-rest-1.0) 
+  Saluran: [https://docs.microsoft.com/en-us/graph/api/channel-list? tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/channel-list?view=graph-rest-1.0) 
+  [Saluran-Pesan: -daftar-pesan? https://docs.microsoft.com/en-us/ graph/api/channel tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/channel-list-messages?view=graph-rest-1.0) 
+  [Saluran-Pesan-Balas: -daftar-balasan? https://docs.microsoft.com/en-us/ graph/api/chatmessage tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/chatmessage-list-replies?view=graph-rest-1.0) 
+  [Channel-Tab: -list-tabs? https://docs.microsoft.com/en-us/ graph/api/channel tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/channel-list-tabs?view=graph-rest-1.0) 
+  Obrolan: [https://docs.microsoft.com/en-us/graph/api/chat-list? tampilan=grafik-rest-1.0]( https://docs.microsoft.com/en-us/graph/api/chat-list?view=graph-rest-1.0) 
+  [Kalender-Acara: -daftar-acara? https://docs.microsoft.com/en-us/ graph/api/group tampilan=grafik-rest-1.0](https://docs.microsoft.com/en-us/graph/api/group-list-events?view=graph-rest-1.0) 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi yang bijaksana dari entitas ditangkap dalam tabel di bawah ini: 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| Anggota Tim | visibleHistoryStartDateTime | DateTime | 
| Grup | createdDateTime | DateTime | 
| Saluran | createdDateTime | DateTime | 
| Obrolan | createdDateTime, lastModifiedDate Waktu | DateTime | 
| Kalender Acara | createdDateTime, lastModifiedDate Waktu, Awal Asli | DateTime | 

 **Contoh** 

```
microsoftteams_read = glueContext.create_dynamic_frame.from_options(
    connection_type="MicrosoftTeams",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "group",
        "API_VERSION": "v1.0",
        "PARTITION_FIELD": "createdDateTime"
        "LOWER_BOUND": "2022-07-13T07:55:27.065Z"
        "UPPER_BOUND": "2022-08-12T07:55:27.065Z"
        "NUM_PARTITIONS": "2"
    }
```

# Referensi opsi koneksi Microsoft Teams
<a name="microsoft-teams-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Microsoft Teams:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama Objek Anda di Microsoft Teams. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Microsoft Teams Rest API versi yang ingin Anda gunakan. Contoh: v1.0. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Batasan
<a name="microsoft-teams-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Microsoft Teams:
+  Microsoft Teams API mengembalikan jumlah catatan yang lebih sedikit daripada yang ditentukan untuk entitas Obrolan dan Anggota Tim. Masalah ini dilaporkan ke Microsoft Teams Support dan sedang diselidiki. 

## Buat akun Microsoft Teams baru:
<a name="microsoft-teams-account-creation"></a>

1.  Arahkan ke beranda Microsoft Teams, [https://account.microsoft.com/account/](https://account.microsoft.com/account/)lalu pilih **Masuk**. 

1.  Pilih **Buat satu\$1** . 

1.  Masukkan informasi yang diperlukan untuk pembuatan akun dan buat akun baru. 

1.  Arahkan ke situs web Microsoft Teams di [https://www.microsoft.com/en-in/microsoft-teams/log-in](https://www.microsoft.com/en-in/microsoft-teams/log-in). 

1.  Daftar menggunakan Akun Microsoft yang baru saja Anda buat. 

1.  Setelah berhasil mendaftar di Teams, navigasikan ke [https://account.microsft.com/services](https://account.microsft.com/services). 

1.  Pilih **Coba Microsoft 365**. 

1.  Aktifkan salah satu langganan Microsoft 365 atau Microsoft Teams di bawah ini untuk mengakses semua fitur yang diperlukan dari konektor Microsoft Teams: 
   + Microsoft Teams Essentials
   + Microsoft 365 Bisnis
   + Dasar Bisnis Microsoft 365
   + Standar Bisnis Microsoft 365
   + Microsoft 365 Bisnis Premium

**Membuat aplikasi klien terkelola:**

1.  Untuk membuat aplikasi terkelola, Anda perlu mendaftarkan OAuth aplikasi baru di Microsoft Entra (sebelumnya Azure Active Directory): 

1.  Masuk ke [pusat admin Microsoft Entra](https://entra.microsoft.com). 

1.  Jika Anda memiliki akses ke beberapa penyewa, gunakan ikon Pengaturan di menu atas untuk beralih ke penyewa tempat Anda ingin mendaftarkan aplikasi dari menu langganan Direktori \$1. 

1.  Arahkan ke Identitas > Aplikasi > Pendaftaran aplikasi dan pilih **Pendaftaran baru**. 

1. Masukkan nama tampilan untuk aplikasi Anda.

1.  Tentukan siapa yang dapat menggunakan aplikasi di bagian Jenis akun yang didukung. Untuk membuat aplikasi ini global pilih “Akun di direktori organisasi apa pun” atau “Akun di direktori organisasi apa pun dan akun Microsoft pribadi”. 

1.  Masukkan URI `https://{region}.console.aws.amazon.com/appflow/oauth` Redirect. Misalnya, untuk`us-west-2 region`, tambahkan`https://us-west-2.console.aws.amazon.com/appflow/oauth`. Anda dapat menambahkan beberapa URLs untuk berbagai wilayah yang ingin Anda gunakan.

1.  Daftarkan aplikasinya. 

1.  Catat ID Klien untuk penggunaan di masa mendatang. 

1.  Pilih **Tambahkan sertifikat atau rahasia** di bagian Essentials. 

1.  Pilih **Rahasia Klien Baru**. 

1.  Masukkan Deskripsi dan Durasi kedaluwarsa. 

1.  Salin dan simpan rahasia klien untuk digunakan di masa mendatang. 

1.  Di daftar menu sebelah kiri, pilih **izin API**. 

1.  Pilih **Tambahkan izin**. 

1.  Pilih “Microsoft Graph”. 

1.  Pilih “Izin yang didelegasikan”. 

1.  Periksa semua izin berikut: 
   + Pengguna.Baca
   + Offline\$1Access
   + User.Read.All
   + Pengguna. ReadWrite.Semua
   + TeamsTab.ReadWriteForTeam
   + TeamsTab.ReadWriteForChat
   + TeamsTab. ReadWrite.Semua
   + TeamsTab.Baca.Semua
   + TeamSettings. ReadWrite.Semua
   + TeamSettings.Baca.Semua
   + TeamMember. ReadWrite.Semua
   + TeamMember.Baca.Semua
   + Tim. ReadBasic.Semua
   + GroupMember. ReadWrite.Semua
   + GroupMember.Baca.Semua
   + Kelompok. ReadWrite.Semua
   + Group.Read.All
   + Direktori. ReadWrite.Semua
   + Direktori.Baca.Semua
   + Direktori. AccessAsUser.Semua
   + Obrolan. ReadWrite
   + Obrolan. ReadBasic
   + Obrolan.Baca
   + ChannelSettings. ReadWrite.Semua
   + ChannelSettings.Baca.Semua
   + ChannelMessage.Baca.Semua
   + Saluran. ReadBasic.Semua

1.  Pilih **Tambahkan izin**. Aplikasi Anda sekarang berhasil disetel. Anda dapat menggunakan ID klien dan rahasia klien untuk membuat koneksi baru. Untuk informasi lebih lanjut, lihat [https://learn.microsoft.com/en-us/grafik/ auth-register-app-v 2](https://learn.microsoft.com/en-us/graph/auth-register-app-v2). 

# Menghubungkan ke Mixpanel
<a name="connecting-to-mixpanel"></a>

Mixpanel adalah platform analitik real-time yang kuat yang membantu perusahaan mengukur dan mengoptimalkan keterlibatan pengguna. Mixpanel adalah aplikasi yang digunakan untuk melacak perilaku pelanggan. Ini memungkinkan Anda untuk melacak bagaimana pengguna terlibat dengan produk Anda dan menganalisis data ini dengan laporan interaktif yang memungkinkan Anda menanyakan dan memvisualisasikan hasilnya hanya dengan beberapa klik. Sebagai pengguna Mixpanel, Anda dapat terhubung AWS Glue ke akun Mixpanel Anda. Kemudian, Anda dapat menggunakan Mixpanel sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Mixpanel dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Mixpanel](Mixpanel-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](mixpanel-configuring-iam-permissions.md)
+ [Mengkonfigurasi Mixpanel](mixpanel-configuring.md)
+ [Mengkonfigurasi koneksi Mixpanel](mixpanel-configuring-connections.md)
+ [Membaca dari entitas Mixpanel](mixpanel-reading-from-entities.md)
+ [Opsi koneksi Mixpanel](mixpanel-connection-options.md)
+ [Membuat akun Mixpanel dan mengonfigurasi aplikasi klien](mixpanel-create-account.md)
+ [Batasan](mixpanel-connector-limitations.md)

# AWS Glue dukungan untuk Mixpanel
<a name="Mixpanel-support"></a>

AWS Glue mendukung Mixpanel sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Mixpanel.

**Didukung sebagai target?**  
Tidak.

**Versi API Mixpanel yang didukung**  
 2.0 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="mixpanel-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Mixpanel
<a name="mixpanel-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Mixpanel, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="mixpanel-configuring-min-requirements"></a>
+  Anda memiliki akun Mixpanel. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Mixpanel](mixpanel-create-account.md). 
+  Akun Mixpanel Anda diaktifkan untuk akses API. Akses API diaktifkan secara default untuk edisi Enterprise, Unlimited, Developer, dan Performance. 

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Mixpanel Anda. Untuk koneksi tipikal, Anda tidak perlu melakukan hal lain di Mixpanel.

# Mengkonfigurasi koneksi Mixpanel
<a name="mixpanel-configuring-connections"></a>

Mixpanel mendukung nama pengguna dan kata sandi untuk`BasicAuth`. Basic Authentication adalah metode otentikasi sederhana di mana klien memberikan kredensi langsung untuk mengakses sumber daya yang dilindungi. AWS Glue dapat menggunakan nama pengguna dan kata sandi untuk mengautentikasi APIs Mixpanel. 

Untuk dokumentasi Mixpanel publik tentang `BasicAuth` alur, lihat Akun [Layanan Mixpanel](https://developer.mixpanel.com/reference/service-accounts). 

Untuk mengkonfigurasi koneksi Mixpanel:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   +  Untuk Otentikasi Dasar, Rahasia harus berisi Rahasia Konsumen aplikasi yang terhubung dengan `USERNAME` dan `PASSWORD` sebagai kunci. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Dalam AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih **Mixpanel**.

   1. Berikan Mixpanel yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih **opsi Jaringan** jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Mixpanel
<a name="mixpanel-reading-from-entities"></a>

 **Prasyarat** 

Anda harus memiliki objek Mixpanel, seperti`Funnels`,`Retention`, atau`Retention Funnels`, dari mana Anda ingin membaca data. Selain itu, Anda perlu mengetahui nama objek.

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Corong | Ya | Tidak | Tidak | Ya | Tidak | 
| Penyimpanan | Ya | Tidak | Tidak | Ya | Tidak | 
| Segmentasi | Ya | Tidak | Tidak | Ya | Tidak | 
| Jumlah Segmentasi | Ya | Tidak | Tidak | Ya | Tidak | 
| Rata-rata Segmentasi | Ya | Tidak | Tidak | Ya | Tidak | 
| Kohort | Ya | Tidak | Tidak | Ya | Tidak | 
| Terlibat | Tidak | Ya | Tidak | Ya | Tidak | 
| Peristiwa | Ya | Tidak | Tidak | Ya | Tidak | 
| Acara Top | Ya | Tidak | Tidak | Ya | Tidak | 
| Nama Acara | Ya | Tidak | Tidak | Ya | Tidak | 
| Properti Acara | Ya | Tidak | Tidak | Ya | Tidak | 
| Acara Properti Top | Ya | Tidak | Tidak | Ya | Tidak | 
| Nilai Properti Acara | Ya | Tidak | Tidak | Ya | Tidak | 
| Anotasi | Ya | Tidak | Tidak | Ya | Tidak | 
| Profil Kegiatan Acara | Ya | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
mixpanel_read = glueContext.create_dynamic_frame.from_options(
    connection_type="mixpanel",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/cohorts/list?project_id=2603353",
        "API_VERSION": "2.0",
        "INSTANCE_URL": "https://www.mixpanel.com/api/app/me"
    }
```

 **Entitas Mixpanel dan detail bidang** 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/mixpanel-reading-from-entities.html)

# Opsi koneksi Mixpanel
<a name="mixpanel-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Mixpanel:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Object Anda di Mixpanel. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Mixpanel Rest API yang ingin Anda gunakan. Misalnya: v2.0. 
+  `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat akun Mixpanel dan mengonfigurasi aplikasi klien
<a name="mixpanel-create-account"></a>

**Membuat akun Mixpanel**

1. Arahkan ke [halaman beranda Mixpanel/](https://mixpanel.com/). 

1. Pada halaman beranda **Mixpanel**, pilih **Daftar** di sudut kanan atas halaman. 

1. Pada halaman **Mari kita mulai**, selesaikan tindakan berikut: 
   + Masukkan alamat email Anda di bidang yang ditunjuk.
   + Pilih kotak centang yang diperlukan untuk menyetujui persyaratan.
   + Pilih **Memulai** untuk melanjutkan.

     Setelah berhasil diselesaikan, Anda akan menerima email verifikasi. 

1. Periksa kotak masuk email Anda untuk pesan verifikasi, buka email, dan ikuti petunjuk untuk memverifikasi alamat email Anda. 

1. Pada halaman verifikasi, pilih **Verifikasi Email** untuk menyelesaikan verifikasi email Anda. 

1. Pada halaman **Nama Organisasi Anda**, masukkan nama organisasi Anda dan pilih **Berikutnya**. 

1. Pada halaman **Proyek Pertama Anda**, masukkan detail proyek Anda dan pilih **Buat**.

1. Pada halaman berikutnya, pilih **Ayo Mulai** untuk menyelesaikan pembuatan akun Anda. 

**Masuk ke akun Mixpanel**

1. Arahkan ke [halaman login Mixpanel/](https://mixpanel.com/login/). 

1. Masukkan alamat email Anda dan pilih **Lanjutkan**. 

1. Periksa kotak masuk email Anda untuk pesan verifikasi, buka email, dan ikuti petunjuk untuk memverifikasi alamat email Anda. 

1. Pada halaman berikutnya, pilih **tombol Masuk** untuk masuk ke akun Anda. 

**Membeli paket Mixpanel**

1. Pada halaman Mixpanel, pilih ikon **Pengaturan** yang terletak di sudut kanan atas halaman.

1. Dari daftar opsi, pilih **Rincian Paket dan Penagihan**. 

1. Pada halaman **Rincian Paket dan Penagihan**, pilih **Tingkatkan atau Ubah**.

1. Di halaman berikutnya, pilih paket yang ingin Anda beli.

   Ini melengkapi pembuatan akun dan merencanakan proses pembelian.

**Membuat nama pengguna dan rahasia klien (Untuk mendaftarkan aplikasi Anda)**

1. Pada halaman Mixpanel, pilih ikon **Pengaturan** yang terletak di sudut kanan atas halaman. 

1. Dari daftar opsi, pilih **Pengaturan Proyek**. 

1. Pada halaman **Pengaturan Proyek**, pilih **Akun Layanan** dan kemudian pilih **Tambahkan Akun Layanan**.

1. **Dari daftar tarik-turun **Akun Layanan**, pilih **layanan Akun atau masukkan nama yang akan dibuat**, tambahkan **Peran Proyek**, tentukan **kedaluwarsa**, dan pilih Tambah.** 
**penting**  
Setelah menyelesaikan langkah sebelumnya, halaman berikut menampilkan kunci rahasia akun layanan. Pastikan untuk menyimpan kunci rahasia akun layanan. Anda tidak akan dapat mengaksesnya lagi setelah titik ini.

# Batasan
<a name="mixpanel-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Mixpanel:
+ Untuk `Segmentation Numeric` entitas, API Mixpanel menampilkan `400 (Bad Request)` kesalahan jika tidak ada data numerik yang ditemukan untuk filter wajib. Kami memperlakukan ini sebagai `OK` respons untuk mencegah kegagalan aliran.
+ Bidang queryable `limit` telah dihapus dari entitas yang didukung karena:
  + Itu menyebabkan kesalahan karena ditafsirkan sebagai fitur batas SDK
  + Filter tidak memiliki tujuan praktis
  + Fungsionalitas yang setara sekarang dicakup oleh implementasi fitur batas
+ Partisi berbasis lapangan tidak dapat didukung karena tidak adanya operator yang diperlukan (`>=`,,, `<=` `<``>`,`between`) untuk partisi dari platform SaaS. Meskipun mendukung `between` operator, bidang yang didukungnya operator ini tidak dapat diambil kembali. Oleh karena itu, kriteria untuk partisi berbasis lapangan tidak terpenuhi.
+  Karena tidak ada ketentuan untuk mendapatkan nilai 'offset' untuk entitas yang mendukung pagination, tidak mungkin untuk mendukung partisi berbasis rekaman untuk Mixpanel.
+ `Cohorts`entitas hanya mendukung `CreatedDate/Time` bidang dan tidak ada bidang untuk diidentifikasi `UpdatedDate/Time` sebagai hasilnya `DML_Status` tidak dapat diidentifikasi. Juga, tidak ada titik akhir untuk mengidentifikasi catatan yang dihapus. Oleh karena itu, CDC tidak dapat didukung.
+  Untuk menjalankan AWS Glue pekerjaan untuk entitas yang disebutkan di bawah ini, filter wajib diperlukan. Lihat tabel di bawah ini untuk nama entitas dan filter yang diperlukan.  
**Nama entitas dan filter yang diperlukan**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/mixpanel-connector-limitations.html)

# Menghubungkan ke Senin
<a name="connecting-to-monday"></a>

 Monday.com adalah sistem operasi kerja serbaguna yang merampingkan manajemen proyek dan kolaborasi tim. Ini fitur alur kerja yang dapat disesuaikan, dasbor visual, dan alat otomatisasi untuk meningkatkan produktivitas. Pengguna dapat melacak tugas, mengelola sumber daya, dan berkomunikasi secara efektif dalam satu platform terintegrasi. 

**Topics**
+ [AWS Glue dukungan untuk hari Senin](monday-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](monday-configuring-iam-permissions.md)
+ [Mengkonfigurasi Senin](monday-configuring.md)
+ [Mengkonfigurasi koneksi Senin](monday-configuring-connections.md)
+ [Membaca dari entitas Senin](monday-reading-from-entities.md)
+ [Referensi opsi koneksi Senin](monday-connection-options.md)
+ [Batasan](monday-connector-limitations.md)
+ [Buat akun Senin baru:](#monday-account-creation)

# AWS Glue dukungan untuk hari Senin
<a name="monday-support"></a>

AWS Glue mendukung hari Senin sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data mulai hari Senin.

**Didukung sebagai target?**  
Tidak.

**Versi API Senin yang didukung**  
 v2. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="monday-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Senin
<a name="monday-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari hari Senin, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="monday-configuring-min-requirements"></a>
+  Anda memiliki akun pengembang Senin dengan Email dan Kata Sandi. Untuk informasi selengkapnya, lihat [Buat akun Senin baru:](connecting-to-monday.md#monday-account-creation). 
+  Akun pengembang Senin Anda diaktifkan untuk akses API. Semua penggunaan hari Senin APIs tersedia tanpa biaya tambahan dalam masa percobaan. Setelah masa percobaan selesai, Anda perlu membeli langganan untuk membuat dan mengakses data. Untuk informasi lebih lanjut, lihat [halaman lisensi hari Senin](https://developer.monday.com/api-reference/reference/about-the-api-reference) untuk detail selengkapnya. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Senin Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di hari Senin. 

# Mengkonfigurasi koneksi Senin
<a name="monday-configuring-connections"></a>

Senin mendukung dua jenis berikut untuk mekanisme otentikasi:

1.  OAuth Auth: Senin mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 
   +  Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk instanceurl Senin. AWS Glue Konsol akan mengarahkan pengguna ke hari Senin di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Senin mereka. 
   +  Pengguna harus memilih untuk membuat aplikasi terhubung mereka sendiri pada hari Senin dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke hari Senin untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 
   +  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses aktif selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
   +  Untuk informasi selengkapnya, lihat [dokumentasi tentang membuat aplikasi yang terhubung untuk alur AUTHORIZATION\$1CODE OAuth ](https://developers.Monday.com/docs/api/v1/Oauth). 

1.  Auth Kustom: 
   +  Untuk dokumentasi hari Senin publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat [https://developer.monday.com/api-reference/api-token-permissionsdocs/authentication\$1](https://developer.monday.com/api-reference/docs/authentication#api-token-permissions). 

Untuk mengonfigurasi koneksi Senin:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk OAuth autentikasi: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET sebagai kunci. 

   1.  Untuk autentikasi khusus: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `personalAccessToken` sebagai. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1.  Di bawah Koneksi Data, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Senin.

   1. Berikan **InstanceURL** Senin Anda.

   1.  Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih Jenis Otentikasi untuk terhubung ke Senin 
      +  Untuk OAuth autentikasi: Berikan **URL Token** dan **Aplikasi ClientId Klien Terkelola Pengguna** pada hari Senin yang ingin Anda sambungkan. 
      +  Untuk autentikasi khusus: Pilih Jenis Otentikasi **KUSTOM** untuk terhubung ke Senin. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. Pilih **Berikutnya**. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Senin
<a name="monday-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Senin yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung untuk Sumber** 

 Daftar entitas: 
+  Akun: [https://developer.monday.com/api-reference/dokumen/akun](https://developer.monday.com/api-reference/docs/account#queries) \$1queries 
+  Papan: [https://developer.monday.com/api-reference/dokumen/papan](https://developer.monday.com/api-reference/docs/boards#queries) \$1queries 
+  Kolom: [https://developer.monday.com/api-reference/dokumen/kolom](https://developer.monday.com/api-reference/docs/columns#queries) \$1queries 
+  Dokumen: [https://developer.monday.com/api-reference/dokumen/dokumen \$1queries](https://developer.monday.com/api-reference/docs/docs#queries) 
+  Blok Dokumen: [https://developer.monday.com/api-reference/docs/blocks \$1queries](https://developer.monday.com/api-reference/docs/blocks#queries) 
+  File: [https://developer.monday.com/api-reference/docs/files](https://developer.monday.com/api-reference/docs/files#queries) \$1queries 
+  Folder: [https://developer.monday.com/api-reference/dokumen/folder](https://developer.monday.com/api-reference/docs/folders#queries) \$1queries 
+  Grup: [https://developer.monday.com/api-reference/docs/groups](https://developer.monday.com/api-reference/docs/groups#queries) \$1queries 
+  Barang: [https://developer.monday.com/api-reference/dokumen/item](https://developer.monday.com/api-reference/docs/items#queries) \$1queries 
+  Sub item: [https://developer.monday.com/api-reference/dokumen/subitem](https://developer.monday.com/api-reference/docs/subitems#queries) \$1queries 
+  Tag: [https://developer.monday.com/api-reference/dokumen/tag-kueri](https://developer.monday.com/api-reference/docs/tags-queries#queries) \$1queries 
+  Tim: [https://developer.monday.com/api-reference/dokumen/tim](https://developer.monday.com/api-reference/docs/teams#queries) \$1queries 
+  Pembaruan: [https://developer.monday.com/api-reference/dokumen/pembaruan](https://developer.monday.com/api-reference/docs/updates#queries) \$1queries 
+  Pengguna: [https://developer.monday.com/api-reference/dokumen/pengguna](https://developer.monday.com/api-reference/docs/users#queries) \$1queries 
+  Ruang kerja: [https://developer.monday.com/api-reference/dokumen/ruang](https://developer.monday.com/api-reference/docs/workspaces#queries) kerja \$1queries 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Akun | Tidak | Tidak | Tidak | Ya | Tidak | 
| Papan | Ya | Ya | Tidak | Ya | Tidak | 
| Kolom | Tidak | Tidak | Tidak | Ya | Tidak | 
| Dokumen | Ya | Ya | Tidak | Ya | Tidak | 
| Blok Dokumen | Tidak | Ya | Tidak | Ya | Tidak | 
| Berkas | Ya | Tidak | Tidak | Ya | Tidak | 
| Grup | Tidak | Tidak | Tidak | Ya | Tidak | 
| Item | Ya | Ya | Tidak | Ya | Tidak | 
| Sub item | Tidak | Tidak | Tidak | Ya | Tidak | 
| Tag | Ya | Tidak | Tidak | Ya | Ya | 
| Tim | Ya | Tidak | Tidak | Ya | Tidak | 
| Pembaruan | Tidak | Ya | Tidak | Ya | Tidak | 
| Pengguna | Ya | Ya | Tidak | Ya | Tidak | 
| Workspace | Ya | Ya | Tidak | Ya | Tidak | 
| Folder | Ya | Ya | Tidak | Ya | Tidak | 

 **Contoh** 

```
monday_read = glueContext.create_dynamic_frame.from_options(
     connection_type="monday",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "account",
         "API_VERSION": "v2"
     }
```

# Referensi opsi koneksi Senin
<a name="monday-connection-options"></a>

Berikut ini adalah opsi koneksi untuk hari Senin:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di hari Senin. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Monday Rest API yang ingin Anda gunakan. Contoh: v2. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Batasan
<a name="monday-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Senin:
+  Respons metadata dinamis memiliki konflik tertentu dengan dokumentasi seperti yang disebutkan di bawah ini: 
  +  Grup, entitas Kolom mendukung operasi filter, tetapi tidak ada di titik akhir metadata dinamis, oleh karena itu disimpan sebagai entitas yang tidak dapat difilter. 
  +  Titik akhir dinamis terdiri dari sekitar 15000\$1 baris dan mengembalikan metadata semua entitas dalam satu respons, karena ini bidang membutuhkan rata-rata 10 detik untuk dimuat karenanya, ini akan memerlukan waktu tambahan saat menjalankan pekerjaan. 
  +  Lihat tabel di bawah ini untuk batas tarif Senin. Ukuran signifikan dari data respons entitas dinamis menyebabkan penundaan yang nyata, dengan bidang yang membutuhkan rata-rata 10 detik untuk memuat.     
<a name="monday-rate-limit-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/monday-connector-limitations.html)

## Buat akun Senin baru:
<a name="monday-account-creation"></a>

1.  Arahkan ke beranda hari Senin, [https://monday.com/](https://monday.com/)dan pilih **Login**. 

1.  Anda akan diarahkan kembali ke halaman login. Di bagian bawah halaman, pilih **Daftar**. 

1.  Masukkan alamat email Anda dan pilih **Lanjutkan**. Sebagai alternatif, Anda dapat masuk dengan Google. 

1.  Masukkan detail yang diperlukan dan pilih **Lanjutkan**. 

1.  Lengkapi pertanyaan survei dan ikuti langkah-langkah untuk menyelesaikan proses pembuatan akun. 

**Daftarkan OAuth aplikasi:**

1.  Masuk ke akun monday.com Anda. Klik avatar Anda (ikon gambar) di sudut kiri bawah layar Anda. 

1.  Pilih **Pengembang**. 

1.  Pilih **Buat aplikasi**. 

1.  Lengkapi bidang yang diperlukan untuk nama dan deskripsi. 

1. Arahkan ke bagian “OAuth” yang ada di sisi kanan tambahkan cakupan dan pilih “Simpan Fitur”.

1.  Arahkan ke tab “Redirect URLS” di samping cakupan dan tambahkan URL pengalihan dan pilih “Simpan Fitur”. 

1.  Di bawah URLs tab **Redirect**, berikan URL aplikasi Anda. Ini harus https://\$1region-code\$1.console.aws.amazon.com/appflow/ oauth. Misalnya, jika Anda menggunakan, `us-east-1 ` Anda dapat menambahkan`https://us-east-1.console.aws.amazon.com/appflow/oauth`. 

1.  Aplikasi ini sekarang siap digunakan. Anda dapat menemukan kredensyal Anda, di bagian “Informasi Dasar”. Catat ID Klien dan string rahasia Klien Anda. String ini digunakan untuk membuat koneksi dengan aplikasi ini menggunakan AppFlow konektor. 

**Hasilkan token akses pribadi:**

 Saat ini, monday.com hanya menawarkan token API V2 kami, yang semuanya merupakan token pribadi. Untuk mengakses token API Anda, Anda dapat menggunakan salah satu dari dua metode tergantung pada tingkat pengguna Anda. Pengguna admin dapat menggunakan kedua metode untuk memperoleh token API mereka. Pengguna anggota dapat mengakses token API mereka dari tab Pengembang mereka. 

 Admin - Jika Anda adalah pengguna admin di akun monday.com Anda, Anda dapat mengakses token API Anda dari tab “Admin” dengan langkah-langkah berikut: 

1.  Masuk ke akun monday.com Anda. Klik avatar Anda (ikon gambar) di sudut kiri bawah layar Anda. 

1.  Pilih “Administrasi” dari menu yang dihasilkan (ini mengharuskan Anda memiliki izin admin). 

1.  Arahkan ke Bagian “API” dan buat “Token API V2”. Anda dapat menyalin token Anda dan menggunakannya. 

 Pengembang - Jika Anda adalah pengguna anggota di akun monday.com Anda, Anda dapat mengakses token API Anda dari tab Pengembang dengan langkah-langkah berikut: 

1.  Masuk ke akun monday.com Anda. Klik avatar Anda (ikon gambar) di sudut kiri bawah layar Anda. 

1.  Pilih “Pengembang” dari menu yang dihasilkan. 

1.  Di menu atas, pilih menu tarik-turun “Pengembang”. Pilih opsi pertama pada menu drop-down berjudul “My Access Tokens.” 

# Menghubungkan ke MongoDB di AWS Glue Studio
<a name="connecting-to-data-mongodb"></a>

 AWS Gluemenyediakan dukungan bawaan untuk MongoDB. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke MongoDB, membuat pekerjaan integrasi data, dan menjalankannya di AWS Glue Studio runtime Spark tanpa server. 

**Topics**
+ [Membuat koneksi MongoDB](creating-mongodb-connection.md)
+ [Membuat simpul sumber MongoDB](creating-mongodb-source-node.md)
+ [Membuat simpul target MongoDB](creating-mongodb-target-node.md)
+ [Opsi lanjutan](#creating-mongodb-connection-advanced-options)

# Membuat koneksi MongoDB
<a name="creating-mongodb-connection"></a>

**Prasyarat**:
+ Jika instans MongoDB Anda ada di VPC Amazon, konfigurasikan Amazon VPC untuk memungkinkan AWS Glue pekerjaan Anda berkomunikasi dengan instans MongoDB tanpa lalu lintas melintasi internet publik. 

  Di Amazon VPC, identifikasi atau buat **grup **VPC**, **Subnet**, dan Keamanan** yang AWS Glue akan digunakan saat menjalankan pekerjaan. Selain itu, Anda perlu memastikan Amazon VPC dikonfigurasi untuk mengizinkan lalu lintas jaringan antara instans MongoDB Anda dan lokasi ini. Berdasarkan tata letak jaringan Anda, ini mungkin memerlukan perubahan pada aturan grup keamanan, Jaringan, Gateway NAT ACLs, dan koneksi Peering.

**Untuk mengkonfigurasi koneksi ke MongoDB:**

1. Secara opsional, di AWS Secrets Manager, buat rahasia menggunakan kredenal MongoDB Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `username` dengan nilainya. *mongodbUser*

     Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `password` dengan nilainya. *mongodbPass*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk penggunaan masa depan di AWS Glue. 
   + Saat memilih **jenis Koneksi**, pilih **MongoDB **atau** MongoDB** Atlas.
   + Saat memilih URL **MongoDB atau URL MongoDB** **Atlas, berikan nama host instance MongoDB Anda**.

     URL MongoDB disediakan dalam format. `mongodb://mongoHost:mongoPort/mongoDBname`

     URL Atlas MongoDB disediakan dalam format. `mongodb+srv://mongoHost/mongoDBname`
   + Jika Anda memilih untuk membuat rahasia Secrets Manager, pilih **jenis AWS Secrets Manager Credential**.

     Kemudian, dalam **AWS Rahasia** sediakan*secretName*.
   + Jika Anda memilih untuk memberikan **Nama Pengguna dan kata sandi**, berikan *mongodbUser* dan*mongodbPass*.

1. Dalam situasi berikut, Anda mungkin memerlukan konfigurasi tambahan:
   + 

     Untuk instance MongoDB yang dihosting di VPC Amazon AWS 
     + Anda harus memberikan informasi koneksi Amazon VPC ke AWS Glue koneksi yang menentukan kredenal keamanan MongoDB Anda. **Saat membuat atau memperbarui koneksi Anda, atur **grup **VPC**, **Subnet**, dan Keamanan** dalam opsi Jaringan.**

Setelah membuat koneksi AWS Glue MongoDB, Anda harus melakukan langkah-langkah berikut sebelum menjalankan pekerjaan Anda: AWS Glue 
+ Saat bekerja dengan AWS Glue pekerjaan di editor visual, Anda harus memberikan informasi koneksi Amazon VPC agar pekerjaan Anda dapat terhubung ke MongoDB. Identifikasi lokasi yang sesuai di Amazon VPC dan berikan ke koneksi AWS Glue MongoDB Anda.
+ Jika Anda memilih untuk membuat rahasia Secrets Manager, berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca*secretName*.

# Membuat simpul sumber MongoDB
<a name="creating-mongodb-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-mongodb-source-node-prerequisites"></a>
+ Koneksi AWS Glue MongoDB, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi MongoDB](creating-mongodb-connection.md)
+ Jika Anda memilih untuk membuat rahasia Secrets Manager, izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Koleksi MongoDB yang ingin Anda baca. Anda akan memerlukan informasi identifikasi untuk koleksi.

  Koleksi MongoDB diidentifikasi dengan nama database dan nama koleksi,,. *mongodbName* *mongodbCollection*

## Menambahkan sumber data MongoDB
<a name="creating-mongodb-source-node-add"></a>

**Untuk menambahkan **sumber Data — simpul MongoDB**:**

1.  Pilih koneksi untuk sumber data MongoDB Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi MongoDB**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi MongoDB](creating-mongodb-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Database**. Masukkan *mongodbName*.

1. Pilih **Koleksi**. Masukkan *mongodbCollection*.

1. Pilih **Partitioner**, **Partition size (MB)** dan **Partition** key. Untuk informasi selengkapnya tentang parameter partisi, lihat[“ConnectionType”: “mongodb” sebagai sumber](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source).

1.  Di properti **MongoDB Kustom**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat simpul target MongoDB
<a name="creating-mongodb-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-mongodb-target-node-prerequisites"></a>
+ Koneksi AWS Glue MongoDB, dikonfigurasi dengan rahasia, seperti AWS Secrets Manager yang dijelaskan di bagian sebelumnya,. [Membuat koneksi MongoDB](creating-mongodb-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel MongoDB yang ingin Anda tulis,. *tableName*

## Menambahkan target data MongoDB
<a name="creating-mongodb-target-node-add"></a>

**Untuk menambahkan **target Data - simpul MongoDB**:**

1.  Pilih koneksi untuk sumber data MongoDB Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi MongoDB**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi MongoDB](creating-mongodb-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Database**. Masukkan *mongodbName*.

1. Pilih **Koleksi**. Masukkan *mongodbCollection*.

1. Pilih **Partitioner**, **Partition size (MB)** dan **Partition** key. Untuk informasi selengkapnya tentang parameter partisi, lihat[“ConnectionType”: “mongodb” sebagai sumber](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source).

1. Pilih **Coba Ulang Menulis** jika diinginkan.

1.  Di properti **MongoDB Kustom**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-mongodb-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat simpul MongoDB. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Referensi opsi koneksi MongoDB](aws-glue-programming-etl-connect-mongodb-home.md#aws-glue-programming-etl-connect-mongodb). 

# Menghubungkan ke Oracle NetSuite
<a name="connecting-to-data-oracle-netsuite"></a>

Oracle NetSuite adalah solusi manajemen bisnis all-in-one cloud yang membantu organisasi beroperasi lebih efektif dengan mengotomatiskan proses inti dan memberikan visibilitas real-time ke kinerja operasional dan keuangan. Dengan satu rangkaian aplikasi terintegrasi untuk mengelola akuntansi, pemrosesan pesanan, manajemen inventaris, produksi, rantai pasokan, dan operasi gudang, Oracle NetSuite memberi perusahaan visibilitas yang jelas ke dalam data mereka dan kontrol yang lebih ketat atas bisnis mereka.

**Topics**
+ [AWS Glue Dukungan untuk Oracle NetSuite](oracle-netsuite-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](oracle-netsuite-configuring-iam-permissions.md)
+ [Mengkonfigurasi Oracle NetSuite](oracle-netsuite-configuring.md)
+ [Mengkonfigurasi koneksi Oracle NetSuite](oracle-netsuite-configuring-connections.md)
+ [Membaca dari entitas Oracle NetSuite](oracle-netsuite-reading-from-entities.md)
+ [Opsi NetSuite koneksi Oracle](oracle-netsuite-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Oracle NetSuite](oracle-netsuite-connector-limitations.md)

# AWS Glue Dukungan untuk Oracle NetSuite
<a name="oracle-netsuite-support"></a>

AWS Glue mendukung Oracle NetSuite sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari NetSuite Oracle.

**Didukung sebagai target?**  
Tidak.

**Versi Oracle NetSuite API yang didukung**  
Versi NetSuite API Oracle berikut didukung:
+ v1

Untuk dukungan entitas per versi tertentu, lihat Entitas yang didukung untuk Sumber.

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="oracle-netsuite-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Oracle NetSuite
<a name="oracle-netsuite-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Oracle NetSuite, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="oracle-netsuite-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki NetSuite akun Oracle. Untuk informasi selengkapnya, lihat [Membuat akun Oracle NetSuite](#oracle-netsuite-configuring-creating-oracle-netsuite-account).
+  NetSuite Akun Oracle Anda diaktifkan untuk akses API.
+ Anda telah membuat integrasi OAuth 2.0 API di akun NetSuite pengembang Oracle Anda. Integrasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat aplikasi NetSuite klien Oracle dan kredensi OAuth 2.0](#oracle-netsuite-configuring-creating-oracle-netsuite-client-app).

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke NetSuite akun Oracle Anda.

## Membuat akun Oracle NetSuite
<a name="oracle-netsuite-configuring-creating-oracle-netsuite-account"></a>

Arahkan ke [Oracle NetSuite](https://www.netsuite.com/portal/home.shtml), dan pilih **Tur Produk Gratis**. Isi detail yang diperlukan untuk mendapatkan tur produk gratis, di mana Anda dapat menghubungi vendor. Proses pengadaan akun adalah sebagai berikut:
+ Pengadaan NetSuite akun dilakukan melalui vendor, yang menyediakan form/quote yang harus ditinjau secara hukum.
+ Akun yang akan dibeli untuk NetSuite konektor Oracle adalah Layanan **Cloud Standar**.
+ Akun ini dibuat oleh vendor dan kredensi sementara dibagikan oleh mereka. Anda akan menerima surat selamat datang dari NetSuite < billing@notification.netsuite.com > < system@sent-via.netsuite.com > dengan rincian seperti nama pengguna Anda, dan tautan untuk mengatur kata sandi Anda.
+ Gunakan tautan **Atur kata sandi Anda** untuk mengatur kata sandi untuk nama pengguna yang disediakan oleh vendor.

## Membuat aplikasi NetSuite klien Oracle dan kredensi OAuth 2.0
<a name="oracle-netsuite-configuring-creating-oracle-netsuite-client-app"></a>

Untuk mendapatkan Client ID dan Client Secret Anda membuat aplikasi NetSuite klien Oracle:

1. Masuk ke NetSuite akun Anda melalui [login NetSuite pelanggan](https://system.netsuite.com/pages/customerlogin.jsp).

1. Pilih **Pengaturan** > **Perusahaan** > **Aktifkan fitur**.

1. Arahkan ke **SuiteCloud**bagian dan pilih kotak centang **REST WEB SERVICES** di bawah **SuiteTalk (Layanan Web)**.

1. **Pilih kotak centang **OAUTH 2.0** di bawah Kelola Otentikasi.** Klik **Simpan**.

1. Buka **Setup** > **Integration** > **Manage Integrations** dan pilih **New** untuk membuat OAuth2 aplikasi.0.

1. Masukkan nama pilihan Anda dan pertahankan **STATE** sebagai Diaktifkan.

1. **Jika dicentang, hapus centang pada kotak centang **TBA: AUTHORIZATION FLOW dan TOKEN-BASED AUTHENTICATION** **yang ditampilkan di bawah Otentikasi Berbasis Token**.**

1. **Pilih kotak centang **PEMBERIAN KODE OTORISASI** dan **KLIEN PUBLIK** di bawah OAuth 2.0.**

1. Di bawah Auth, catat ID Klien dan Rahasia Klien.

1. Masukkan **URI REDIRECT**. Misalnya, https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Pilih kotak centang **REST WEB SERVICES** di bawah **SCOPE**.

1. **Pilih kotak centang **USER CREDENTIALS di bawah User Credentials**.** Pilih **Simpan**.

1. Perhatikan KEY/CLIENT ID KONSUMEN dan SECRET/CLIENT RAHASIA KONSUMEN di bawah **Kredensial Klien**. Nilai-nilai ini hanya ditampilkan sekali.

1. **Buat peran ADMINISTRATOR jika diperlukan dengan menavigasi ke **Pengguna/Peran > **Kelola** Peran** > Baru.**

1. Saat membuat peran khusus, tambahkan akses penuh di bawah tab **Izin** untuk entitas/fungsi berikut:
   + “Setoran”, “Item”, “Pemenuhan Item”, “Buat Entri Jurnal”, “Pesanan Pembelian”, “Anak Perusahaan”, “Vendor”, “Tagihan”, “Otorisasi Pengembalian Vendor”, “Waktu Lacak”, “Pembayaran Pelanggan”, “Entri Catatan Kustom”, “Jenis Catatan Kustom”, “Layanan Web REST”, “Manajemen Aplikasi Resmi OAuth 2.0”, “Bidang Entitas Kustom”, “Masuk menggunakan 2.0 Token Akses”. OAuth 

Untuk informasi selengkapnya lihat [OAuth 2.0](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_157769826287.html) di dokumentasi NetSuite Applications Suite.

# Mengkonfigurasi koneksi Oracle NetSuite
<a name="oracle-netsuite-configuring-connections"></a>

Oracle NetSuite mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Oracle NetSuite untuk meminta akses ke data Anda.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki (aplikasi klien AWS Glue terkelola) di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk URL instance Oracle NetSuite mereka. AWS Glue Konsol akan mengarahkan pengguna ke Oracle NetSuite di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Oracle mereka. NetSuite 
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Oracle NetSuite dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Oracle untuk masuk dan memberi wewenang NetSuite AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk NetSuite dokumentasi Oracle publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat Aplikasi [publik](https://developers.oracle-netsuite.com/docs/api/creating-an-app).

Untuk mengkonfigurasi NetSuite koneksi Oracle:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Oracle NetSuite.

   1. Menyediakan NetSuite lingkungan Oracle.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Oracle NetSuite
<a name="oracle-netsuite-reading-from-entities"></a>

**Prasyarat**

 NetSuite Objek Oracle yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `deposit` atau`timebill`. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung Order By | Mendukung Batas | Mendukung SELECT \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Setoran | Ya | Tidak | Ya | Ya | Ya | 
| Keterangan Barang | Ya | Tidak | Ya | Ya | Ya | 
| Barang Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Pemenuhan Item | Ya | Tidak | Ya | Ya | Ya | 
| Grup Barang | Ya | Tidak | Ya | Ya | Ya | 
| Entri Jurnal | Ya | Tidak | Ya | Ya | Ya | 
| Item Pembelian Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Barang Penjualan Kembali Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Barang Penjualan Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Pesanan Pembelian | Ya | Tidak | Ya | Ya | Ya | 
| Anak Perusahaan | Ya | Tidak | Ya | Ya | Ya | 
| Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Tagihan Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Otorisasi Pengembalian Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Tagihan Waktu | Ya | Tidak | Ya | Ya | Ya | 
| Pembayaran Pelanggan | Ya | Tidak | Ya | Ya | Ya | 
| Permintaan Pemenuhan | Ya | Tidak | Ya | Ya | Ya | 
| Item | Ya | Ya | Ya | Ya | Ya | 
| Jalur Transaksi | Ya | Ya | Ya | Ya | Ya | 
| Jalur Akuntansi Transaksi | Ya | Ya | Ya | Ya | Ya | 
| Jenis Rekaman Kustom (Dinamis) | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="netsuiteerp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deposit",
        "API_VERSION": "v1"
    }
)
```

** NetSuite Entitas Oracle dan detail bidang**:

Oracle NetSuite secara dinamis memuat bidang yang tersedia di bawah entitas yang dipilih. Tergantung pada tipe data bidang, ini mendukung operator filter berikut.


| Tipe data bidang | Operator filter yang didukung | 
| --- | --- | 
| String | SEPERTI, =,\$1 = | 
| Date | ANTARA, =, <, <=, >, >= | 
| DateTime | ANTARA, <, <=, >, >= | 
| Numerik |  =, \$1=, <, <=, >, >= | 
| Boolean |  =, \$1= | 

**Format input yang diharapkan untuk nilai Boolean di Ekspresi Filter**:


| Entitas | Format nilai “benar” Boolean | Format nilai “palsu” Boolean | Contoh | 
| --- | --- | --- | --- | 
| Barang, Jalur Transaksi, Jalur Akuntansi Transaksi, dan entitas Jenis Rekaman Kustom | T atau t | F atau f | isinactive = “T” atau isinactive = “t” | 
| Semua entitas lainnya | true | SALAH | isinaktif = benar | 

## Mempartisi kueri
<a name="oracle-netsuite-reading-partitioning-queries"></a>

**Partisi berbasis lapangan**

 NetSuite Konektor Oracle memiliki metadata dinamis sehingga bidang yang didukung untuk partisi berbasis bidang dipilih secara dinamis. Partisi berbasis bidang didukung pada bidang yang memiliki tipe data Integer, BigInteger, Tanggal atau. DateTime

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang timestamp, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai yang valid:

  ```
  "TIMESTAMP \"1707256978123\""
  "TIMESTAMP \"1702600882\""
  "TIMESTAMP '2024-02-06T22:00:00:00.000Z'"
  "TIMESTAMP '2024-02-06T22:00:00:00Z'"
  "TIMESTAMP '2024-02-06'"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="netsuiteerp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deposit",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "id",
        "LOWER_BOUND": "1",
        "UPPER_BOUND": "10000",
        "NUM_PARTITIONS": "10"
    }
```

**Partisi berbasis rekaman**

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis rekaman, jumlah total catatan yang ada ditanyakan dari Oracle NetSuite API, dan dibagi dengan jumlah yang disediakan, `NUM_PARTITIONS` jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="netsuiteerp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deposit",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "3"
    }
```

# Opsi NetSuite koneksi Oracle
<a name="oracle-netsuite-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Oracle NetSuite:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama NetSuite entitas Oracle. Contoh: setoran.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Oracle NetSuite Rest API yang ingin Anda gunakan. Nilainya akan menjadi v1, karena Oracle NetSuite saat ini hanya mendukung versi v1.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Daftar kolom yang dipisahkan koma yang ingin Anda pilih untuk entitas yang dipilih.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri (partisi berbasis bidang).
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih, digunakan dalam partisi berbasis lapangan.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih, digunakan dalam partisi berbasis lapangan. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Digunakan dalam partisi berbasis bidang dan catatan.
+ `INSTANCEE_URL`(String) - Sebuah NetSuite contoh URL yang valid dengan format https://\$1account-id\$1.suitetalk.api.netsuite.com.

# Keterbatasan dan catatan untuk konektor Oracle NetSuite
<a name="oracle-netsuite-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk NetSuite konektor Oracle:
+ Nilai parameter access\$1token dan refresh\$1token dalam format JSON Web Token (JWT). Token akses berlaku selama 60 menit sedangkan refresh\$1token berlaku selama tujuh hari.
+ Selama pembuatan ID klien dan rahasia klien, jika Anda memilih “KLIEN PUBLIK” bersama dengan “PEMBERIAN KODE OTORISASI”, maka token penyegaran hanya berlaku selama tiga jam dan hanya untuk penggunaan satu kali.
+ Anda dapat mengambil paling banyak 1.00.000 catatan menggunakan konektor. Untuk informasi selengkapnya, lihat [Mengeksekusi Kueri SuiteQL Melalui Layanan Web](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_157909186990.html) REST.
+ Partisi dibuat sedemikian rupa sehingga setiap partisi akan mengambil catatan dalam kelipatan 1000, kecuali mungkin yang terakhir yang akan mengambil catatan yang tersisa.
+ Untuk objek Item, Jalur Transaksi dan Jalur Akuntansi Transaksi, konektor tidak akan mendukung beberapa operator karena alasan berikut:
  + Menerapkan`EQUAL_TO`, `NOT_EQUAL_TO` filter operator ke bidang jenis Tanggal memberikan hasil yang tidak dapat diandalkan.
  + Menerapkan operator `LESS_THAN_OR_EQUAL_TO` filter ke bidang tipe Tanggal memberikan hasil yang tidak dapat diandalkan dan berperilaku mirip dengan operator. `LESS_THAN`
  + Menerapkan operator `GREATER_THAN` filter ke bidang tipe Date= memberikan hasil yang tidak dapat diandalkan dan berperilaku mirip dengan operator. `GREATER_THAN_OR_EQUAL_TO`
+ Untuk objek Item, Transaction Line, Transaction Accounting Line, dan Custom Record Type, nilai boolean datang dalam format T/F bukan standar true/false. The connector maps the t/f values to true/false untuk memastikan konsistensi dalam data.

# Menghubungkan ke OpenSearch Layanan di AWS Glue Studio
<a name="connecting-to-data-opensearch"></a>

 AWS Gluemenyediakan dukungan bawaan untuk Amazon OpenSearch Service. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Amazon OpenSearch Service, membuat pekerjaan integrasi data, dan menjalankannya di runtime Spark AWS Glue Studio tanpa server. Fitur ini tidak kompatibel dengan OpenSearch Layanan tanpa server. 

 AWS Glue Studio membuat koneksi terpadu untuk Amazon OpenSearch Service. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Membuat koneksi OpenSearch Layanan](creating-opensearch-connection.md)
+ [Membuat node sumber OpenSearch Layanan](creating-opensearch-source-node.md)
+ [Membuat node target OpenSearch Service](creating-opensearch-target-node.md)
+ [Opsi lanjutan](#creating-opensearch-connection-advanced-options)

# Membuat koneksi OpenSearch Layanan
<a name="creating-opensearch-connection"></a>

**Prasyarat**:
+ Identifikasi titik akhir domain, *aosEndpoint* dan port, yang ingin *aosPort* Anda baca, atau buat sumber daya dengan mengikuti petunjuk dalam dokumentasi OpenSearch Layanan Amazon. Untuk informasi selengkapnya tentang membuat domain, lihat [Membuat dan mengelola domain OpenSearch Layanan Amazon](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/createupdatedomains.html) di dokumentasi OpenSearch Layanan Amazon.

  Titik akhir domain OpenSearch Layanan Amazon akan memiliki formulir default berikut, https://search - *domainName* -*unstructuredIdContent*. *region*.es.amazonaws.com. Untuk informasi selengkapnya tentang mengidentifikasi titik akhir domain Anda, lihat [Membuat dan mengelola domain OpenSearch Layanan Amazon](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/createupdatedomains.html) di dokumentasi OpenSearch Layanan Amazon. 

  Identifikasi atau hasilkan kredensyal otentikasi dasar HTTP, *aosUser* dan *aosPassword* untuk domain Anda.

**Untuk mengkonfigurasi koneksi ke OpenSearch Layanan:**

1. Di AWS Secrets Manager, buat rahasia menggunakan kredensyal OpenSearch Layanan Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `USERNAME` dengan nilainya. *aosUser*
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `PASSWORD` dengan nilainya. *aosPassword*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk penggunaan masa depan di AWS Glue. 
   + Saat memilih **jenis Koneksi**, pilih OpenSearch Layanan.
   + Saat memilih titik akhir Domain, berikan*aosEndpoint*.
   + Saat memilih port, sediakan*aosPort*.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

# Membuat node sumber OpenSearch Layanan
<a name="creating-opensearch-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-opensearch-source-node-prerequisites"></a>
+ Koneksi AWS Glue OpenSearch layanan, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,[Membuat koneksi OpenSearch Layanan](creating-opensearch-connection.md).
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Indeks OpenSearch Layanan yang ingin Anda baca,*aosIndex*.

## Menambahkan sumber data OpenSearch Layanan
<a name="creating-opensearch-source-node-add"></a>

**Untuk menambahkan **sumber Data — Node OpenSearch layanan**:**

1.  Pilih sambungan untuk sumber data OpenSearch Layanan Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi OpenSearch Layanan**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi OpenSearch Layanan](creating-opensearch-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Berikan **Indeks**, indeks yang ingin Anda baca.

1. Secara opsional, berikan **Query**, OpenSearch kueri untuk memberikan hasil yang lebih spesifik. Untuk informasi lebih lanjut tentang menulis OpenSearch pertanyaan, konsultasikan[Membaca dari indeks OpenSearch Layanan](aws-glue-programming-etl-connect-opensearch-home.md#aws-glue-programming-etl-connect-opensearch-read).

1.  Di **properti OpenSearch Layanan Kustom**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat node target OpenSearch Service
<a name="creating-opensearch-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-opensearch-target-node-prerequisites"></a>
+ Koneksi AWS Glue OpenSearch layanan, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,[Membuat koneksi OpenSearch Layanan](creating-opensearch-connection.md).
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Indeks OpenSearch Layanan yang ingin Anda tulis,*aosIndex*.

## Menambahkan target data OpenSearch Layanan
<a name="creating-opensearch-target-node-add"></a>

**Untuk menambahkan **target Data — Node OpenSearch layanan**:**

1.  Pilih sambungan untuk sumber data OpenSearch Layanan Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi OpenSearch Layanan**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi OpenSearch Layanan](creating-opensearch-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Berikan **Indeks**, indeks yang ingin Anda baca.

1.  Di **properti OpenSearch Layanan Kustom**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-opensearch-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat node OpenSearch Layanan. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [OpenSearch Koneksi layanan](aws-glue-programming-etl-connect-opensearch-home.md). 

# Menghubungkan ke Okta
<a name="connecting-to-okta"></a>

 Okta API adalah antarmuka terprogram untuk Okta, digunakan untuk mengelola akun dan kampanye Okta yang besar atau kompleks. Jika Anda pengguna Okta, Anda dapat terhubung AWS Glue ke akun Okta Anda. Kemudian, Anda dapat menggunakan Okta sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Okta dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Okta](okta-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](okta-configuring-iam-permissions.md)
+ [Mengkonfigurasi Okta](okta-configuring.md)
+ [Mengkonfigurasi koneksi Okta](okta-configuring-connections.md)
+ [Membaca dari entitas Okta](okta-reading-from-entities.md)
+ [Referensi opsi koneksi Okta](okta-connection-options.md)
+ [Langkah pembuatan Akun Baru dan Aplikasi Pengembang Okta](okta-create-account.md)
+ [Batasan](okta-connector-limitations.md)

# AWS Glue dukungan untuk Okta
<a name="okta-support"></a>

AWS Glue mendukung Okta sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Okta.

**Didukung sebagai target?**  
Tidak.

**Versi Okta API yang didukung**  
 v1. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="okta-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Okta
<a name="okta-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data ke atau dari Okta, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="okta-configuring-min-requirements"></a>
+  Anda memiliki akun Okta. Untuk informasi selengkapnya tentang membuat akun, lihat[Langkah pembuatan Akun Baru dan Aplikasi Pengembang Okta](okta-create-account.md). 
+  Akun Okta Anda diaktifkan untuk akses API. 
+  Anda telah membuat integrasi OAuth2 API di akun Okta Anda. Integrasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat Langkah-langkah Membuat aplikasi Klien dan OAuth2 kredensial.0: Langkah Pembuatan Akun Baru dan Aplikasi Pengembang Okta 
+  Anda memiliki akun Okta dengan file. OktaApiToken Lihat [dokumentasi Okta](https://developer.okta.com/docs/guides/create-an-api-token/main/#create-the-token). 

 Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Okta Anda. Untuk koneksi tipikal, Anda tidak perlu melakukan hal lain di Okta. 

# Mengkonfigurasi koneksi Okta
<a name="okta-configuring-connections"></a>

 Okta mendukung dua jenis mekanisme otentikasi: 
+  OAuth auth: Okta mendukung jenis `AUTHORIZATION_CODE` hibah. 
  +  Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Okta di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Okta mereka. 
  +  Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Okta dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Okta untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 
  +  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
  +  Untuk informasi selengkapnya, lihat [dokumentasi Okta publik tentang cara membuat aplikasi yang terhubung untuk alur Kode OAuth Otorisasi](https://developers.google.com/workspace/guides/create-credentials). 
+  Autentikasi kustom: 
  +  Untuk dokumentasi Okta publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat dokumentasi [Okta](https://developer.okta.com/docs/guides/create-an-api-token/main/#create-the-token). 

Untuk mengkonfigurasi koneksi Okta:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk OAuth autentikasi: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

   1.  Untuk autentikasi khusus: 
      +  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `OktaApiToken` sebagai. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1.  Di bawah Koneksi, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Okta.

   1. Berikan subdomain Okta Anda.

   1. Pilih URL Domain Okta dari akun Okta Anda.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih Jenis Otentikasi untuk terhubung ke sumber data. 

   1.  Untuk jenis OAuth2 otentikasi, berikan **Aplikasi Klien Terkelola Pengguna ClientId dari aplikasi** Okta. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Okta
<a name="okta-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Okta yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Aplikasi | Ya | Ya | Tidak | Ya | Tidak | 
| Perangkat | Ya | Ya | Tidak | Ya | Ya | 
| Grup | Ya | Ya | Ya | Ya | Ya | 
| Pengguna | Ya | Ya | Ya | Ya | Ya | 
| Jenis Pengguna | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
okta_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Okta",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "applications",
        "API_VERSION": "v1"
    }
```

 **Entitas Okta dan detail bidang** 

 Daftar entitas: 
+  Aplikasi: [https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Application/](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Application/) 
+  Perangkat: [https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Device/](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Device/) 
+  Grup: [https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Group/](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Group/) 
+  Pengguna: [https://developer.okta.com/docs/api/openapi/okta-management/management/tag/User/](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/User/) 
+  Tipe Pengguna: [https://developer.okta.com/docs/api/openapi/okta-management/management/tag/UserType/](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/UserType/) 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 **Contoh** 

```
okta_read = glueContext.create_dynamic_frame.from_options(
    connection_type="okta",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "lastUpdated",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "lastMembershipUpdated"
        "LOWER_BOUND": "2022-08-10T10:28:46.000Z"
        "UPPER_BOUND": "2024-08-10T10:28:46.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Referensi opsi koneksi Okta
<a name="okta-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Okta:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Okta. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Okta Rest API yang ingin Anda gunakan. Contoh: v1. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Langkah pembuatan Akun Baru dan Aplikasi Pengembang Okta
<a name="okta-create-account"></a>

 Buat akun pengembang di Okta untuk mendapatkan akses ke Okta API. Akun pengembang Okta gratis memberikan akses ke sebagian besar fitur pengembang utama yang diperlukan untuk mengakses Okt API. 

**Untuk membuat akun pengembang di Okta**

1.  Navigasi ke [https://developer.okta.com/signup/](https://console.cloud.google.com). 

1.  Masukkan email informasi akun, nama depan, nama belakang, dan negara/wilayah. Pilih **saya bukan robot** dan kemudian, **Daftar**. 

1.  Email verifikasi dikirim ke id email terdaftar Anda. Anda akan menerima tautan di email Anda untuk mengaktifkan akun pengembang Okta Anda. Pilih **Aktifkan**. 

1.  Anda akan diarahkan ke halaman reset kata sandi. Masukkan kata sandi baru dua kali dan pilih **Reset kata sandi**. 

1.  Anda akan dialihkan ke dasbor akun pengembang Okta Anda. 

**Untuk membuat aplikasi klien dan kredensi OAuth 2.0**

1.  Di dasbor pengembang, pilih buat integrasi aplikasi.   
![\[Tangkapan layar menunjukkan halaman Buat ID OAuth klien dan bagian Pengalihan URIs Resmi. Di sini, tambahkan URIs dan pilih ADD URI jika diperlukan. Setelah selesai, pilih CREATE.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/create-client-app-step-1.png)

1.  Jendela **Create a new app Integration** akan muncul dan menyajikan berbagai metode login. Pilih **OIDC —OpenID** Connect. 

1.  Gulir ke bawah ke bagian Jenis aplikasi. Pilih sebagai **Aplikasi Web** dan pilih **Berikutnya**. 

1.  Pada layar “Integrasi Aplikasi Web Baru”, isi informasi berikut: 
   + Nama integrasi aplikasi - Masukkan nama aplikasi. 
   + Jenis hibah - Pilih **Kode Otorisasi** dan **Segarkan Token** dari daftar.
   + Pengalihan masuk URIs - Pilih **Tambah URI dan tambahkan**. `https://{regioncode}.console.aws.amazon.com/appflow/oauth` Misalnya, jika Anda menggunakan, `us-west-2 (Oregon)` Anda dapat menambahkan`https://us-east-1.console.aws.amazon.com/appflow/oauth`.
   + Akses Terkendali - Tetapkan aplikasi ke grup pengguna sesuai kebutuhan dan pilih **Simpan**.

1. ID Klien dan Rahasia Klien Anda dihasilkan.

# Batasan
<a name="okta-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Okta:
+  Untuk entitas 'Aplikasi' hanya satu filter yang dapat diterapkan. Jika lebih dari 1 filter diterapkan maka 400 Permintaan Buruk dikembalikan dengan ringkasan kesalahan —'Kriteria Pencarian Tidak Valid'. 
+  Order by dapat didukung hanya dengan permintaan pencarian. Sebagai contoh, ` http://dev-15940405.okta.com/api/v1/groups?search=type e.q. "OKTA_GROUP"&sortBy=lastUpdated&sortOrder=asc `. 

# Menghubungkan ke PayPal
<a name="connecting-to-data-paypal"></a>

PayPal adalah sistem pembayaran yang memfasilitasi transfer uang secara online antar pihak, seperti transfer antara pelanggan dan vendor online. Jika Anda PayPal pengguna, akun Anda berisi data tentang transaksi Anda, seperti pembayar, tanggal, dan status mereka. Anda dapat menggunakan AWS Glue untuk mentransfer data dari PayPal ke AWS layanan tertentu atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk PayPal](paypal-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](paypal-configuring-iam-permissions.md)
+ [Mengkonfigurasi PayPal](paypal-configuring.md)
+ [Mengkonfigurasi koneksi PayPal](paypal-configuring-connections.md)
+ [Membaca dari PayPal entitas](paypal-reading-from-entities.md)
+ [PayPal opsi koneksi](paypal-connection-options.md)
+ [Keterbatasan dan catatan untuk PayPal konektor](paypal-connector-limitations.md)

# AWS Glue dukungan untuk PayPal
<a name="paypal-support"></a>

AWS Glue mendukung PayPal sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari PayPal.

**Didukung sebagai target?**  
Tidak.

**Versi PayPal API yang didukung**  
Versi PayPal API berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="paypal-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi PayPal
<a name="paypal-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari PayPal, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="paypal-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki PayPal akun dengan kredensi klien.
+  PayPal Akun Anda memiliki akses API dengan lisensi yang valid.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke PayPal akun Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain PayPal.

# Mengkonfigurasi koneksi PayPal
<a name="paypal-configuring-connections"></a>

PayPal mendukung jenis hibah KREDENSIAL KLIEN untuk. OAuth2
+ Jenis hibah ini dianggap OAuth 2.0 berkaki 2 karena digunakan oleh klien untuk mendapatkan token akses di luar konteks pengguna. AWS Glue dapat menggunakan ID klien dan rahasia klien untuk mengautentikasi PayPal APIs yang disediakan oleh layanan khusus yang Anda tentukan.
+ Setiap layanan kustom dimiliki oleh pengguna khusus API yang memiliki serangkaian peran dan izin yang mengizinkan layanan untuk melakukan tindakan tertentu. Token akses dikaitkan dengan satu layanan kustom.
+ Jenis hibah ini menghasilkan token akses yang berumur pendek, dan dapat diperbarui dengan memanggil `/v2/oauth2/token` titik akhir lagi.
+ [Untuk PayPal dokumentasi publik untuk OAuth 2.0 dengan kredensi klien, lihat Otentikasi.](https://developer.paypal.com/api/rest/authentication/)

Untuk mengkonfigurasi PayPal koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih PayPal.

   1. Berikan PayPal contoh `INSTANCE_URL` yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

## Mendapatkan kredensi OAuth 2.0
<a name="paypal-getting-oauth-20-credentials"></a>

Untuk memanggil API Istirahat, Anda harus menukar ID klien dan rahasia klien Anda dengan token akses. Untuk informasi selengkapnya, lihat [Memulai PayPal REST APIs](https://developer.paypal.com/api/rest/).

# Membaca dari PayPal entitas
<a name="paypal-reading-from-entities"></a>

**Prasyarat**

 PayPal Objek yang ingin Anda baca. Anda akan membutuhkan nama objek,`transaction`.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| transaksi | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "INSTANCE_URL": "https://api-m.paypal.com"
    }
```

**PayPal detail entitas dan bidang**:

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/paypal-reading-from-entities.html)

## Mempartisi kueri
<a name="paypal-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Bidang berikut didukung untuk partisi berdasarkan entitas:


| Nama entitas | Bidang partisi | Jenis data | 
| --- | --- | --- | 
| transaksi | transaction\$1initiation\$1date | DateTime | 

Contoh:

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "transaction_initiation_date"
        "LOWER_BOUND": "2024-07-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-07-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# PayPal opsi koneksi
<a name="paypal-connection-options"></a>

Berikut ini adalah opsi koneksi untuk PayPal:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di PayPal.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. PayPal Rest versi API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk PayPal konektor
<a name="paypal-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk PayPal konektor:
+ [Dokumentasi PayPal transaksi](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get) menyebutkan bahwa dibutuhkan maksimal tiga jam agar transaksi yang dieksekusi muncul dalam daftar panggilan transaksi. Namun, telah diamati untuk mengambil lebih banyak waktu daripada itu tergantung [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime). Di sini, `last_refreshed_datetime` adalah jumlah waktu sampai Anda memiliki data yang tersedia dari APIs.
+ Jika `last_refreshed_datetime` kurang dari yang diminta `end_date` maka, `end_date` menjadi sama dengan `last_refreshed_datetime` karena kita hanya memiliki data sampai titik itu.
+ `transaction_initiation_date`Kolom adalah filter wajib yang akan disediakan untuk `transaction` entitas dan rentang tanggal [maksimum yang didukung](https://developer.paypal.com/docs/transaction-search/#:~:text=The%20maximum%20supported%20date%20range%20is%2031%20days.) untuk bidang ini adalah 31 hari.
+ Saat Anda memanggil permintaan API `transaction` entitas dengan filter (parameter kueri) selain `transaction_initiation_date` bidang, diharapkan nilai [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.)bidang tidak akan diambil dalam respons.

# Menghubungkan ke Pendo
<a name="connecting-to-pendo"></a>

Pendo menyediakan penyimpanan data yang kaya untuk data interaksi pengguna. Pelanggan akan mentransfer data ini AWS sehingga mereka dapat bergabung dengan data produk lain, melakukan analisis tambahan dan dash-boarding dan menetapkan peringatan jika mereka mau.

**Topics**
+ [AWS Glue dukungan untuk Pendo](pendo-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](pendo-configuring-iam-permissions.md)
+ [Mengkonfigurasi Pendo](pendo-configuring.md)
+ [Mengkonfigurasi koneksi Pendo](pendo-configuring-connections.md)
+ [Membaca dari entitas Pendo](pendo-reading-from-entities.md)
+ [Opsi koneksi Pendo](pendo-connection-options.md)
+ [Batasan](pendo-connector-limitations.md)

# AWS Glue dukungan untuk Pendo
<a name="pendo-support"></a>

AWS Glue mendukung Pendo sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Pendo.

**Didukung sebagai target?**  
Tidak.

**Versi API Pendo yang didukung**  
 v1 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="pendo-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Pendo
<a name="pendo-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk transfer dari Pendo, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="pendo-configuring-min-requirements"></a>
+ Anda memiliki akun Pendo dengan `apiKey` dengan `write access` diaktifkan.
+  Akun Pendo Anda memiliki akses API dengan lisensi yang valid. 

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Pendo Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Pendo.

# Mengkonfigurasi koneksi Pendo
<a name="pendo-configuring-connections"></a>

Pendo mendukung otentikasi kustom.

Untuk dokumentasi Pendo publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat [Authentication — Pendo](https://engageapi.pendo.io/?bash#getting-started) REST API Documentation 

Untuk mengkonfigurasi koneksi Pendo:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   + Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan `apiKey` sebagai kuncinya. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih Pendo.

   1. Berikan contoh `instanceUrl` Pendo yang ingin Anda sambungkan.

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai koneksi jaringan tambahan.

# Membaca dari entitas Pendo
<a name="pendo-reading-from-entities"></a>

 **Prasyarat** 

Objek Pendo yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 
+ [Fitur](https://developers.pendo.io/docs/?bash#feature)
+ [Panduan](https://developers.pendo.io/docs/?bash#guide)
+ [Halaman](https://developers.pendo.io/docs/?bash#page)
+ [Laporkan](https://developers.pendo.io/docs/?bash#report)
+ [Laporkan Data](https://developers.pendo.io/docs/?bash#return-report-contents-as-array-of-json-objects)
+ [Pengunjung](https://developers.pendo.io/docs/?bash#visitor)
+ [Akun](https://developers.pendo.io/docs/?bash#entities)
+ [Peristiwa](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Acara Fitur](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Panduan Acara](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Halaman Acara](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Acara Polling](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Lacak Acara](https://developers.pendo.io/docs/?bash#events-grouped)


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Fitur | Tidak | Tidak | Tidak | Ya | Tidak | 
| Panduan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Halaman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Laporan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Laporkan Data | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pengunjung (API Agregasi) | Ya | Tidak | Ya | Ya | Tidak | 
| Akun (API Agregasi) | Ya | Tidak | Ya | Ya | Tidak | 
| Acara (API Agregasi) | Ya | Tidak | Ya | Ya | Tidak | 
| Acara Fitur (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 
| Panduan Acara (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 
| Akun (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 
| Halaman Acara (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 
| Acara Polling (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 
| Lacak Acara (API Agregasi) | Ya | Tidak | Ya | Ya | Ya | 

 **Contoh** 

```
Pendo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.Pendo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "feature",
        "API_VERSION": "v1",
        "INSTANCE_URL": "instanceUrl"
    }
```

## Mempartisi kueri
<a name="adobe-marketo-engage-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk DateTime bidang, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Tabel berikut menjelaskan rincian dukungan bidang partisi entitas:


| Nama entitas | 
| --- | 
| Peristiwa | 
|  Acara Fitur  | 
| Panduan Acara | 
| Halaman Acara | 
| Acara Polling | 
| Lacak Acara | 

Contoh:

```
pendo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.pendo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "event",
        "API_VERSION": "v1",
        "INSTANCE_URL": "instanceUrl"
        "NUM_PARTITIONS": "10",
        "PARTITION_FIELD": "appId"
        "LOWER_BOUND": "4656"
        "UPPER_BOUND": "7788"
    }
```

# Opsi koneksi Pendo
<a name="pendo-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Pendo:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Pendo. 
+ `INSTANCE_URL`(String) - (Diperlukan) URL Instance Pendo yang valid dengan nilai yang diizinkan sebagai berikut:
  + [Default](https://app.pendo.io/)
  + [Eropa](https://app.eu.pendo.io/)
  + [US1](https://us1.app.pendo.io/)
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Pendo Engage Rest API versi yang ingin Anda gunakan. Misalnya: 3.0.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Batasan
<a name="pendo-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Pendo:
+ Pagination tidak didukung di Pendo.
+ Filtrasi hanya didukung oleh objek API Agregat (`Account`,`Event`,`Feature Event`,`Guide Events`,`Page Event`, `Poll Event``Track Event`, dan`Visitor`)
+ DateTimeRange adalah parameter filter wajib untuk objek API Agregat (`Event`,,`Feature Event`, `Guide Events``Page Event`, `Poll Event,``Track Event`)
+ Periode DayRange akan dibulatkan ke awal periode di zona waktu. Misalnya, jika filter disediakan `2023-01-12T07:55:27.065Z` maka periode waktu ini akan dibulatkan ke awal periode, yaitu`2023-01-12T00:00:00Z`. 

# Menghubungkan ke Pipedrive
<a name="connecting-to-pipedrive"></a>

 Pipedrive adalah saluran penjualan CRM yang dirancang untuk membantu usaha kecil mengelola prospek, melacak aktivitas penjualan, dan menutup lebih banyak penawaran. Pipedrive memungkinkan tim penjualan di bisnis kecil untuk: Merampingkan proses dan mengkonsolidasikan data penjualan dalam satu alat penjualan CRM terpadu. Jika Anda pengguna Pipedrive, Anda dapat terhubung AWS Glue ke akun Pipedrive Anda. Kemudian, Anda dapat menggunakan Pipedrive sebagai sumber data dalam Pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Pipedrive dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Pipedrive](pipedrive-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](pipedrive-configuring-iam-permissions.md)
+ [Mengkonfigurasi Pipedrive](pipedrive-configuring.md)
+ [Mengkonfigurasi koneksi Pipedrive](pipedrive-configuring-connections.md)
+ [Membaca dari entitas Pipedrive](pipedrive-reading-from-entities.md)
+ [Referensi opsi koneksi Pipedrive](pipedrive-connection-options.md)
+ [Batasan](pipedrive-connector-limitations.md)

# AWS Glue dukungan untuk Pipedrive
<a name="pipedrive-support"></a>

AWS Glue mendukung Pipedrive sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Pipedrive.

**Didukung sebagai target?**  
Tidak.

**Versi Pipedrive API yang didukung**  
 v1. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="pipedrive-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Pipedrive
<a name="pipedrive-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Pipedrive, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="pipedrive-configuring-min-requirements"></a>
+  Anda memiliki akun Pipedrive. 
+  Akun Pipedrive Anda diaktifkan untuk akses API. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Pipedrive Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Pipedrive. 

# Mengkonfigurasi koneksi Pipedrive
<a name="pipedrive-configuring-connections"></a>

 Pipedrive mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 
+  Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk instanceurl Pipedrive. AWS Glue Konsol akan mengarahkan pengguna ke Pipedrive di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance PipeDrive mereka. 
+  Pengguna harus memilih untuk membuat aplikasi mereka sendiri yang terhubung di Pipedrive dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Pipedrive untuk masuk dan mengotorisasi AWS Glue untuk mengakses sumber daya mereka. 
+  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses aktif selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
+  Untuk informasi selengkapnya, lihat [dokumentasi tentang membuat aplikasi yang terhubung untuk alur AUTHORIZATION\$1CODE OAuth ](https://developers.pipedrive.com/docs/api/v1/Oauth). 

Untuk mengkonfigurasi koneksi Pipedrive:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET sebagai kunci. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1.  Di bawah Koneksi Data, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Pipedrive.

   1. **Berikan InstanceURL PipeDrive Anda.**

   1.  Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Berikan Aplikasi Klien Terkelola Pengguna ClientId dari Pipedrive yang ingin Anda sambungkan. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. Pilih **Berikutnya**. 

1.  **Berikan **ConnectionName** dan pilih Next.** 

1.  Pada halaman berikutnya pilih **Buat koneksi**. Anda akan diminta untuk masuk ke Pipedrive. Berikan nama pengguna dan kata sandi Anda dan pilih **Masuk**. 

1.  Setelah Anda masuk, pilih **Lanjutkan ke Aplikasi**. Sekarang koneksi Anda siap digunakan. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Pipedrive
<a name="pipedrive-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Pipedrive yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Aktivitas | Ya | Ya | Tidak | Ya | Ya | 
| Jenis Aktivitas | Tidak | Tidak | Tidak | Ya | Tidak | 
| Log Panggilan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Mata Uang | Ya | Ya | Tidak | Ya | Tidak | 
| Penawaran | Ya | Ya | Ya | Ya | Ya | 
| Prospek | Ya | Ya | Ya | Ya | Tidak | 
| Sumber Timbal | Tidak | Ya | Tidak | Ya | Tidak | 
| Label Timbal | Tidak | Tidak | Tidak | Tidak | Tidak | 
| Catatan | Ya | Ya | Ya | Ya | Ya | 
| Organisasi | Ya | Ya | Tidak | Ya | Ya | 
| Set Izin | Ya | Tidak | Tidak | Ya | Tidak | 
| Orang | Ya | Ya | Ya | Ya | Ya | 
| Alur | Tidak | Ya | Tidak | Ya | Tidak | 
| Produk | Ya | Ya | Tidak | Ya | Ya | 
| Peran | Tidak | Ya | Tidak | Ya | Tidak | 
| Tahapan | Ya | Ya | Tidak | Ya | Tidak | 
| Pengguna | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
pipedrive_read= glueContext.create_dynamic_frame.from_options(
    connection_type="PIPEDRIVE",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "activites",
        "API_VERSION": "v1"
    }
```

 **Detail entitas dan bidang Pipedrive** 

 Daftar entitas: 
+  Kegiatan: [https://developers.pipedrive.com/docs/api/v1/Activities](https://developers.pipedrive.com/docs/api/v1/Activities) 
+  Jenis Kegiatan: [https://developers.pipedrive.com/docs/api/v1/ActivityTypes](https://developers.pipedrive.com/docs/api/v1/ActivityTypes) 
+  Log Panggilan: [https://developers.pipedrive.com/docs/api/v1/CallLogs](https://developers.pipedrive.com/docs/api/v1/CallLogs) 
+  Mata uang: [https://developers.pipedrive.com/docs/api/v1/Currencies](https://developers.pipedrive.com/docs/api/v1/Currencies) 
+  Penawaran: [https://developers.pipedrive.com/docs/api/v1/Deals](https://developers.pipedrive.com/docs/api/v1/Deals) 
+  Memimpin: [https://developers.pipedrive.com/docs/api/v1/Leads](https://developers.pipedrive.com/docs/api/v1/Leads) 
+  Sumber Utama: [https://developers.pipedrive.com/docs/api/v1/LeadSources](https://developers.pipedrive.com/docs/api/v1/LeadSources) 
+  Label Timbal: [https://developers.pipedrive.com/docs/api/v1/LeadLabels](https://developers.pipedrive.com/docs/api/v1/LeadLabels) 
+  Catatan: [https://developers.pipedrive.com/docs/api/v1/Notes](https://developers.pipedrive.com/docs/api/v1/Notes) 
+  Organizations: [https://developers.pipedrive.com/docs/api/v1/Organizations](https://developers.pipedrive.com/docs/api/v1/Organizations) 
+  Set Izin: [https://developers.pipedrive.com/docs/api/v1/PermissionSets](https://developers.pipedrive.com/docs/api/v1/PermissionSets) 
+  Orang: [https://developers.pipedrive.com/docs/api/v1/Persons](https://developers.pipedrive.com/docs/api/v1/Persons) 
+  Pipa: [https://developers.pipedrive.com/docs/api/v1/Pipelines](https://developers.pipedrive.com/docs/api/v1/Pipelines) 
+  Produk: [https://developers.pipedrive.com/docs/api/v1/Products](https://developers.pipedrive.com/docs/api/v1/Products) 
+  Peran: [https://developers.pipedrive.com/docs/api/v1/Roles](https://developers.pipedrive.com/docs/api/v1/Roles) 
+  Tahapan: [https://developers.pipedrive.com/docs/api/v1/Stages](https://developers.pipedrive.com/docs/api/v1/Stages) 
+  Pengguna: [https://developers.pipedrive.com/docs/api/v1/Users](https://developers.pipedrive.com/docs/api/v1/Users) 


| Entitas | Tipe data | Operator yang Didukung | 
| --- | --- | --- | 
| Aktivitas, Penawaran, Catatan, Organisasi, Orang dan Produk. | Date | '=' | 
|  | Bilangan Bulat | '=' | 
|  | String | '=' | 
|  | Boolean | '=' | 

## Mempartisi kueri
<a name="pipedrive-partitioning-queries"></a>

 Di Pipedrive, hanya satu bidang (due\$1date) dari entitas Aktivitas yang mendukung partisi berbasis lapangan. Ini adalah bidang Tanggal. 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 **Contoh** 

```
pipedrive_read = glueContext.create_dynamic_frame.from_options(
    connection_type="PIPEDRIVE",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "activites",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "due_date"
        "LOWER_BOUND": "2023-09-07T02:03:00.000Z"
        "UPPER_BOUND": "2024-05-07T02:03:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Referensi opsi koneksi Pipedrive
<a name="pipedrive-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Pipedrive:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Pipedrive. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Pipedrive Rest API yang ingin Anda gunakan. Contoh: v1. 
+  `INSTANCE_URL`(String) - (Diperlukan) URL dari contoh di mana pengguna ingin menjalankan operasi. Contoh: v1. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Batasan
<a name="pipedrive-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Pipedrive:
+ Pipedrive mendukung partisi berbasis bidang hanya untuk satu entitas (Aktivitas).
+ Pipedrive mendukung partisi berbasis rekaman untuk entitas Aktivitas, Penawaran, Catatan, Orang, Organizations, dan Produk.
+ Di entitas Penawaran, bidang status sebagai filter akan mengembalikan semua catatan jika nilai filter nilai tidak valid digunakan.
+ Di entitas Deals, pemesanan dengan beberapa bidang tidak didukung.
+ Untuk mendapatkan data kinerja, kami menggunakan AWS akun lokal. Namun, karena keterbatasan menyegarkan token akses secara lokal, AWS Glue pekerjaan untuk memproses 1 GB data gagal. Akibatnya, kami telah mengoptimalkan uji kinerja dengan 179 MB data, dan hasil di atas didasarkan pada pengoptimalan ini. Namun demikian, kami telah mengamati bahwa dengan meningkatnya jumlah partisi, titik akhir SaaS membutuhkan lebih banyak waktu dibandingkan dengan satu partisi. Kami telah berkonsultasi dengan tim dukungan Pipedrive mengenai perilaku ini, dan mereka memberi tahu kami bahwa Pipedrive diam-diam membatasi permintaan dan menunda respons. Oleh karena itu, saat menjalankan AWS Glue pekerjaan dengan kumpulan data besar atau memanggil titik akhir API yang sama beberapa kali, ini dapat mengakibatkan masalah batas waktu karena implementasi Pipedrive API. Namun, waktu respons konektor dan shim menurun seperti yang diharapkan dengan peningkatan jumlah partisi.

# Menghubungkan ke Productboard
<a name="connecting-to-productboard"></a>

Productboard adalah sistem manajemen produk yang membantu tim produk mendapatkan produk yang tepat ke pasar, lebih cepat. Lebih dari 3.000 perusahaan modern yang dipimpin oleh produk, seperti Zendesk, UiPath dan Microsoft, menggunakan Productboard untuk memahami apa yang benar-benar dibutuhkan pengguna, memprioritaskan apa yang akan dibangun selanjutnya, dan menggalang semua orang di sekitar peta jalan mereka.

**Topics**
+ [AWS Glue dukungan untuk Productboard](productboard-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](productboard-configuring-iam-permissions.md)
+ [Mengkonfigurasi Productboard](productboard-configuring.md)
+ [Mengkonfigurasi koneksi Productboard](productboard-configuring-connections.md)
+ [Membaca dari entitas Productboard](productboard-reading-from-entities.md)
+ [Opsi koneksi productboard](productboard-connection-options.md)
+ [Membuat akun Productboard](productboard-create-account.md)
+ [Batasan](productboard-connector-limitations.md)

# AWS Glue dukungan untuk Productboard
<a name="productboard-support"></a>

AWS Glue mendukung Productboard sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Productboard.

**Didukung sebagai target?**  
Tidak.

**Versi API Productboard yang didukung**  
 v1 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="productboard-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Productboard
<a name="productboard-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Productboard, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="productboard-configuring-min-requirements"></a>
+ Anda memiliki akun Productboard dengan email dan kata sandi. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Productboard](productboard-create-account.md). 
+  Anda harus memiliki AWS Akun yang dibuat dengan akses layanan ke AWS Glue. 
+ Anda memiliki detail otentikasi akun Productboard - baik Token JWT jika seseorang ingin menggunakan Custom Auth atau Client ID dan rahasia jika ingin menggunakan .0. OAuth2
+ Jika pengguna ingin menggunakan`OAuth2.0`, [Daftarkan aplikasi Anda dengan Productboard](https://app.productboard.com/oauth2/applications/new) dan atur aplikasi dengan mengikuti petunjuk di, [Cara mengintegrasikan dengan Productboard via OAuth2 ](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation) - dokumentasi pengembang.

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Productboard Anda. Untuk koneksi tipikal, Anda tidak perlu melakukan hal lain di Productboard.

# Mengkonfigurasi koneksi Productboard
<a name="productboard-configuring-connections"></a>

 

Productboard mendukung otentikasi khusus dan. `OAuth2.0` Untuk `OAuth2.0` Productboard mendukung jenis `AUTHORIZATION_CODE` hibah.
+ Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi `OAuth` terkait apa pun kecuali ID Klien Productboard dan Rahasia Klien mereka. AWS Glue Konsol akan mengarahkan pengguna ke Productboard tempat pengguna harus masuk dan mengizinkan izin yang diminta untuk mengakses AWS Glue instance Productboard mereka.
+ Pengguna masih dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Productboard dan memberikan ID Klien dan Rahasia Klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Productboard untuk login dan otorisasi AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk dokumentasi Productboard publik tentang cara membuat aplikasi yang terhubung untuk `AUTHORIZATION_CODE OAuth` alur, lihat [Cara mengintegrasikan dengan Productboard melalui OAuth2 ](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation) - dokumentasi pengembang. 

Untuk mengkonfigurasi koneksi Productboard:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 
   + Untuk `OAuth` autentikasi — Untuk aplikasi terhubung yang dikelola pelanggan: Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 
   + Untuk `Custom auth` — Untuk aplikasi terhubung yang dikelola pelanggan: Rahasia harus berisi aplikasi yang terhubung `JWT token` dengan `access_token` sebagai kunci. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **Sumber Data**, pilih Productboard. 

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih Jenis Otentikasi untuk terhubung ke sumber data:
      + Untuk `OAuth` autentikasi — Menyediakan`Token URL`, dan `User Managed Client Application ClientId` dari aplikasi Productboard.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai koneksi jaringan tambahan.

# Membaca dari entitas Productboard
<a name="productboard-reading-from-entities"></a>

 **Prasyarat** 

Objek Productboard yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 
+ [Laporan penyalahgunaan](https://productboard.com/developer/marketing/api/campaign-abuse/)
+ [Otomatisasi](https://productboard.com/developer/marketing/api/automation/list-automations/)
+ [Kampanye](https://productboard.com/developer/marketing/api/campaigns/list-campaigns/)
+ [Detail klik-](https://productboard.com/developer/marketing/api/link-clickers/)
+ [Daftar](https://productboard.com/developer/marketing/api/link-clickers/)
+ [Anggota](https://productboard.com/developer/marketing/api/list-segment-members/)
+ [Detail terbuka](https://productboard.com/developer/marketing/api/list-members/)
+ [Segmen](https://productboard.com/developer/marketing/api/list-segments/)
+ [Toko](https://productboard.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [Berhenti berlangganan](https://productboard.com/developer/marketing/api/unsub-reports/)


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
|  Fitur  | Ya | Ya | Tidak | Ya | Ya | 
|  Komponen-komponen  | Tidak | Ya | Tidak | Ya | Tidak | 
|  Produk  | Tidak | Ya | Tidak | Ya | Tidak | 
|  Status Fitur  | Tidak | Ya | Tidak | Ya | Ya | 
|  Definisi Bidang Kustom  | Tidak | Ya | Tidak | Ya | Tidak | 
|  Nilai Bidang Kustom  | Ya | Ya | Tidak | Ya | Tidak | 

 **Contoh** 

```
Productboard_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Productboard",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "feature",
        "API_VERSION": "1"
    }
```

 **Entitas papan produk dan detail bidang** 
+ [Fitur](https://developer.productboard.com/#tag/features)
+ [Komponen](https://developer.productboard.com/#tag/components)
+ [Status fitur](https://developer.productboard.com/#tag/statuses)
+ [Produk](https://developer.productboard.com/#tag/products)
+ [Definisi bidang khusus](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFields)
+ [Nilai bidang kustom](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFieldsValues)

# Opsi koneksi productboard
<a name="productboard-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Productboard:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Productboard. 
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Productboard Engage Rest API versi yang ingin Anda gunakan. Misalnya: 3.0.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

# Membuat akun Productboard
<a name="productboard-create-account"></a>

1. Arahkan ke [halaman pendaftaran Productboard](https://app.productboard.com/), masukkan ID email dan kata sandi Anda, lalu pilih **Masuk saya**.

1. Di bidang **Nama Akun**, masukkan nama akun Productboard Anda, lalu pilih kotak **centang Saya setuju dengan Kebijakan Privasi**.

1. Pada halaman **Sekarang buat ruang kerja Anda**, di bidang **URL Workspace, masukkan URL** untuk ruang kerja baru Anda. Kemudian pilih **Lanjutkan** untuk melanjutkan ke halaman berikutnya dan berikan detail yang tersisa.

   Ini membuat akun uji coba Anda. Akun uji coba gratis selama 15 hari. Setelah masa uji coba berakhir, Anda dapat membeli paket berbayar. Catat alamat email, kata sandi, dan URL ruang kerja Anda. Anda akan memerlukan informasi ini untuk mengakses akun Anda di masa depan.”

**Mendaftarkan `OAuth2.0` aplikasi**

1. Arahkan ke [halaman login Productboard](https://login.productboard.com/?locale=en), masukkan ID email dan kata sandi Anda, dan pilih **Masuk**. 

1. Pilih ikon **Pengguna** di sudut kanan atas, lalu pilih **Akun dan penagihan** dari menu tarik-turun.

1. Pilih **Ekstra** dan pilih **Aplikasi terdaftar** dari menu tarik-turun.

1. Cari dan pilih **Daftarkan Aplikasi**.

1. Masukkan detail berikut:
   + **Nama aplikasi** — Nama aplikasi. 
   + **Perusahaan/Organisasi** — Nama Perusahaan atau Organisasi Anda.
   + **Situs web aplikasi** — Situs web aplikasi.
   + **URI Pengalihan** — Pola URI Pengalihan adalah jalur URI (atau daftar jalur yang dipisahkan koma) yang dapat dialihkan oleh Productboard (jika diminta) saat alur masuk selesai. Sebagai contoh, `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`.

1. Pilih **Buat**. 

1. **Client ID** dan **Client Secret** sekarang akan terlihat. Salin dan simpan di lokasi yang aman. Kemudian, pilih **Selesai**. 
**catatan**  
ID Klien dan string Rahasia Klien Anda adalah kredensil yang digunakan untuk membuat koneksi dengan konektor ini saat menggunakan atau. AppFlow AWS Glue

**Mengambil CustomAuth Kredensial**

1. Arahkan ke [halaman login Productboard](https://app.productboard.com/), masukkan ID email dan kata sandi Anda, dan pilih **Masuk saya**.

   Anda akan diarahkan ke halaman rumah.

1. Di halaman beranda, navigasikan ke **Pengaturan Ruang Kerja** > **Integrasi** > **Publik APIs** > Token **Akses**.
**catatan**  
Jika APIs bagian **Publik** tidak terlihat, akun Anda mungkin ada di paket Essentials. Akses ke token API membutuhkan setidaknya paket Pro. Fitur dan nama paket dapat berubah sewaktu-waktu. Untuk informasi selengkapnya tentang paket, lihat Harga [Productboard](https://www.productboard.com/pricing/).

1. Pilih **\$1** untuk menghasilkan token baru, dan pastikan untuk menyimpannya dengan aman untuk referensi di masa mendatang.

**Membuat `OAuth2.0` kredensil**

Untuk menggunakan `OAuth2.0` otentikasi dengan konektor Productboard, Anda perlu mendaftarkan aplikasi Anda di platform Productboard dan menghasilkan dan. `Client ID` `Client Secret`

1. Arahkan ke [halaman login Productboard](https://app.productboard.com/), masukkan ID email dan kata sandi Anda, dan pilih **Masuk saya**.

1. Untuk mendaftarkan OAuth2 aplikasi baru dengan akun Productboard Anda, navigasikan ke halaman [Producboard](to register new OAuth2 application with your Productboard account).

1. Lengkapi bidang yang diperlukan dan pilih cakupan yang diperlukan untuk setiap entitas yang ingin Anda akses. 
**catatan**  
Anda telah memilih empat cakupan berikut, yang diperlukan untuk enam entitas yang didukung.

1. **URL pengalihan** harus memiliki format berikut: `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`
**catatan**  
Pengalihan Appflow dapat berubah URLs sewaktu-waktu. Setelah tersedia, perbarui pengalihan URLs untuk AWS Glue platform.

1. **Client ID** dan **Client Secret** sekarang akan terlihat. Salin dan simpan di lokasi yang aman. 

1. Anda dapat mengatur dan memverifikasi `OAuth2` dengan mengikuti langkah-langkah di [Cara Mengintegrasikan dengan Productboard melalui dokumentasi OAuth2 pengembang](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation).

# Batasan
<a name="productboard-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Productboard:
+ Productboard tidak mendukung partisi berbasis bidang atau berbasis rekaman.

# Menghubungkan ke QuickBooks
<a name="connecting-to-data-quickbooks"></a>

QuickBooks adalah aplikasi akuntansi terkemuka untuk usaha kecil dan menengah. QuickBooks Aplikasi akuntansi berasal dari tahun 1980-an sebagai salah satu produk pertama oleh Intuit, dan karenanya awalnya perangkat lunak desktop. Saat ini, QuickBooks menawarkan beberapa aplikasi akuntansi dan keuangan bisnis sebagai perangkat lunak yang dapat diinstal dan perangkat lunak SaaS berbasis cloud. Sebagai QuickBooks pengguna, Anda dapat terhubung AWS Glue ke QuickBooks akun Anda. Kemudian, Anda dapat menggunakan QuickBooks sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara QuickBooks dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk QuickBooks](quickbooks-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](quickbooks-configuring-iam-permissions.md)
+ [Mengkonfigurasi QuickBooks](quickbooks-configuring.md)
+ [Mengkonfigurasi koneksi QuickBooks](quickbooks-configuring-connections.md)
+ [Membaca dari QuickBooks entitas](quickbooks-reading-from-entities.md)
+ [QuickBooks opsi koneksi](quickbooks-connection-options.md)
+ [Keterbatasan dan catatan untuk QuickBooks konektor](quickbooks-connector-limitations.md)

# AWS Glue dukungan untuk QuickBooks
<a name="quickbooks-support"></a>

AWS Glue mendukung QuickBooks sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari QuickBooks.

**Didukung sebagai target?**  
Tidak.

**Versi QuickBooks API yang didukung**  
Versi QuickBooks API berikut didukung:
+ v3

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="quickbooks-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi QuickBooks
<a name="quickbooks-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari QuickBooks, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="quickbooks-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki QuickBooks akun.
+  QuickBooks Akun Anda diaktifkan untuk akses API.

Untuk informasi selengkapnya, lihat topik berikut dalam QuickBooks dokumentasi:
+ [Buat Akun Intuit](https://quickbooks.intuit.com/learn-support/en-us/help-article/account-management/create-intuit-user-account/L62kSFEOM_US_en_US)
+ [Membuat dan mulai mengembangkan aplikasi Anda](https://developer.intuit.com/app/developer/qbo/docs/get-started/start-developing-your-app)

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke QuickBooks akun Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain QuickBooks.

# Mengkonfigurasi koneksi QuickBooks
<a name="quickbooks-configuring-connections"></a>

QuickBooks mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan QuickBooks meminta akses ke data Anda.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri QuickBooks dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke login dan memberi wewenang QuickBooks AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk QuickBooks dokumentasi publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Menyiapkan OAuth 2.0](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0).

Untuk mengkonfigurasi QuickBooks koneksi:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih QuickBooks.

   1. Berikan URL instance dan ID perusahaan dari QuickBooks instance yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari QuickBooks entitas
<a name="quickbooks-reading-from-entities"></a>

**Prasyarat**

 QuickBooks Objek yang ingin Anda baca.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Akun | Ya | Ya | Ya | Ya | Ya | 
| Tagihan | Ya | Ya | Ya | Ya | Ya | 
| Info Perusahaan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pelanggan | Ya | Ya | Ya | Ya | Ya | 
| Karyawan | Ya | Ya | Ya | Ya | Ya | 
| Estimasi | Ya | Ya | Ya | Ya | Ya | 
| Faktur | Ya | Ya | Ya | Ya | Ya | 
| Item | Ya | Ya | Ya | Ya | Ya | 
| Pembayaran | Ya | Ya | Ya | Ya | Ya | 
| Preferensi | Tidak | Tidak | Tidak | Ya | Tidak | 
| Untung dan Rugi | Ya | Tidak | Tidak | Ya | Tidak | 
| Agen Pajak | Ya | Ya | Ya | Ya | Ya | 
| Vendor | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v3"
    }
```

**QuickBooks detail entitas dan bidang**:

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Akun](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Tagihan](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/bill)
+ [CompanyInfo](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/companyinfo)
+ [Pelanggan](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer)
+ [Karyawan](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Estimasi](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Faktur](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice)
+ [Barang](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item)
+ [Pembayaran](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Preferensi](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/preferences)
+ [ProfitAndLoss](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss)
+ [TaxAgency](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/taxagency)
+ [Vendor](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor)

## Mempartisi kueri
<a name="quickbooks-reading-partitioning-queries"></a>

**Partisi berbasis lapangan**:

Di QuickBooks, bidang Integer dan DateTime tipe data mendukung partisi berbasis bidang.

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "12345678690123456789",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v3",
        "PARTITION_FIELD": "MetaData_CreateTime"
        "LOWER_BOUND": "2023-09-07T02:03:00.000Z"
        "UPPER_BOUND": "2024-05-07T02:03:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

Partisi **berbasis rekaman**:

Kueri asli dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan:
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "1234567890123456789",
        "ENTITY_NAME": "Bill",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```

# QuickBooks opsi koneksi
<a name="quickbooks-connection-options"></a>

Berikut ini adalah opsi koneksi untuk QuickBooks:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di QuickBooks.
+ `INSTANCE_URL`(String) - (Diperlukan) URL QuickBooks contoh yang valid.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. QuickBooks Rest versi API yang ingin Anda gunakan.
+ `REALM_ID`(String) - ID yang mengidentifikasi perusahaan QuickBooks Online individu tempat Anda mengirim permintaan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk QuickBooks konektor
<a name="quickbooks-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk QuickBooks konektor:
+ Di `taxAgency` API, urutan berdasarkan pemfilteran tidak berfungsi seperti yang diharapkan.

# Menghubungkan ke REST API
<a name="connecting-to-data-rest-api"></a>

 AWS Glue memungkinkan Anda untuk mengkonfigurasi AWS Glue ConnectionType yang dapat digunakan untuk terhubung AWS Glue ke sumber data berbasis REST API. Ini dapat digunakan sebagai sumber data dalam Pekerjaan ETL Anda. Anda dapat menjalankan pekerjaan ini untuk mentransfer data antara sumber data berbasis REST API dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk REST API](rest-api-support.md)
+ [Kebijakan yang berisi operasi API untuk mendaftarkan jenis dan creating/using koneksi koneksi](rest-api-configuring-iam-permissions.md)
+ [Mengonfigurasi REST API ConnectionType](rest-api-configuring.md)
+ [Mengonfigurasi koneksi REST API](rest-api-configuring-connections.md)
+ [Tutorial: Membuat REST API ConnectionType dan Koneksi](rest-api-example.md)
+ [Batasan](rest-api-limitations.md)

# AWS Glue dukungan untuk REST API
<a name="rest-api-support"></a>

AWS Glue mendukung REST API sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari sumber data berbasis REST API.

**Didukung sebagai target?**  
Tidak.

# Kebijakan yang berisi operasi API untuk mendaftarkan jenis dan creating/using koneksi koneksi
<a name="rest-api-configuring-iam-permissions"></a>

 Contoh kebijakan IAM berikut menjelaskan izin yang diperlukan untuk mendaftar, membuat, mengelola, dan menggunakan koneksi REST API dalam pekerjaan AWS Glue ETL. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:RegisterConnectionType",
                "glue:ListConnectionTypes",
                "glue:DescribeConnectionType",
                "glue:CreateConnection",
                "glue:RefreshOAuth2Tokens",
                "glue:ListEntities",
                "glue:DescribeEntity"
            ],
            "Resource": "*"
        }
    ]
}
```

Anda juga dapat menggunakan kebijakan IAM berikut untuk mengizinkan akses:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

Jika menyediakan Opsi Jaringan saat membuat koneksi REST API, tindakan berikut juga harus disertakan dalam peran IAM:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        }
    ]
}
```

# Mengonfigurasi REST API ConnectionType
<a name="rest-api-configuring"></a>

 Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari sumber data berbasis REST API, Anda harus memenuhi persyaratan ini: 

## Persyaratan minimum
<a name="rest-api-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+  Anda telah mengonfigurasi dan mendaftarkan jenis koneksi AWS Glue REST API. Lihat [Menghubungkan ke ISTIRAHAT APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html). 
+  Jika menggunakan OAuth2 Client Client Client, Authorization Code atau JWT, konfigurasikan aplikasi klien yang sesuai. 

 Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke sumber data berbasis REST API Anda. Biasanya, tidak ada konfigurasi lebih lanjut yang diperlukan di sisi REST API. 

# Mengonfigurasi koneksi REST API
<a name="rest-api-configuring-connections"></a>

 Untuk mengonfigurasi konektor AWS Glue REST API, Anda perlu mengonfigurasi jenis AWS Glue koneksi. Jenis koneksi ini berisi rincian tentang properti bagaimana sumber data REST beroperasi dan menafsirkan hal-hal seperti otentikasi, permintaan, tanggapan, pagination, validasi, dan entitas/metadata. Untuk daftar lengkap properti yang diperlukan untuk jenis koneksi AWS Glue REST, lihat [ RegisterConnectionType](https://docs.aws.amazon.com/glue/latest/webapi/API_DescribeConnectionType.html)API dan langkah-langkah untuk [Menyambung ke REST APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html). 

 Saat membuat konektor REST API, kebijakan berikut diperlukan untuk mengizinkan tindakan yang relevan: 

```
{
    "Version":"2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:RegisterConnectionType",
                "glue:ListConnectionTypes",
                "glue:DescribeConnectionType",
                "glue:CreateConnection",
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        }
    ]
}
```

# Tutorial: Membuat REST API ConnectionType dan Koneksi
<a name="rest-api-example"></a>

**Menghubungkan ke Foo REST API**

 Kami akan membuat AWS Glue REST API ConnectionType dan AWS Glue koneksi yang sesuai untuk Foo REST API. API ini memiliki properti berikut (yang dapat diambil dari dokumentasi REST API). 
+  **URL Contoh**: https://foo.cloud.com/rest/ v1. 
+  **Jenis otentikasi**: OAuth2 (Kredensial Klien). 
+  **Metode REST**: GET. 
+  **Jenis pagination**: Offset dengan properti “limit” dan “offset” ditempatkan dalam parameter permintaan permintaan. 
+ **Entitas yang didukung**:
  +  **Bilah**: jalur relatif [/bar.json]. 
  +  **Baz**: jalur relatif [/baz.json]. 

 Setelah semua detail diperoleh, kita dapat mulai membuat AWS Glue koneksi ke Foo REST API. 

**Untuk membuat koneksi REST API**:

1.  Buat tipe koneksi REST API AWS Glue dengan memanggil RegisterConnectionType API menggunakan AWS API, CLI, atau SDK. Ini akan menciptakan ConnectionType sumber daya baru di AWS Glue. 

   ```
   {
       "ConnectionType": "REST-FOO-CONNECTOR",
       "IntegrationType": "REST",
       "Description": "AWS Glue Connection Type for the FOO REST API",
       "ConnectionProperties": {
           "Url": {
               "Name": "Url",
               "Required": true,
               "DefaultValue": "https://foo.cloud.com/rest/v1",
               "PropertyType": "USER_INPUT"
           }
       },
       "ConnectorAuthenticationConfiguration": {
           "AuthenticationTypes": ["OAUTH2"],
           "OAuth2Properties": {
               "OAuth2GrantType": "CLIENT_CREDENTIALS"
           }
       },
       "RestConfiguration": {
           "GlobalSourceConfiguration": {
           "RequestMethod": "GET",
           "ResponseConfiguration": {
               "ResultPath": "$.result",
               "ErrorPath": "$.error.message"
           },
           "PaginationConfiguration": {
               "OffsetConfiguration": {
                   "OffsetParameter": {
                       "Key": "offset",
                       "PropertyLocation": "QUERY_PARAM"
                   },
                   "LimitParameter": {
                       "Key": "limit",
                       "PropertyLocation": "QUERY_PARAM",
                       "DefaultValue": "50"
                   }
               }
           }
       },
       "ValidationEndpointConfiguration": {
           "RequestMethod": "GET",
           "RequestPath": "/bar.json?offset=1&limit=10"
       },
       "EntityConfigurations": {
           "bar": {
               "SourceConfiguration": {
                   "RequestMethod": "GET",
                   "RequestPath": "/bar.json",
                   "ResponseConfiguration": {
                       "ResultPath": "$.result",
                       "ErrorPath": "$.error.message"
                   }
               },
               "Schema": {
                   "name": {
                       "Name": "name",
                       "FieldDataType": "STRING"
                   },
                   "description": {
                       "Name": "description",
                       "FieldDataType": "STRING"
                   },
                   "id": {
                       "Name": "id",
                       "FieldDataType": "STRING"
                   },
                   "status": {
                       "Name": "status",
                       "FieldDataType": "STRING"
                   }
               }
           }
       }
   }
   }
   ```

1.  Di AWS Secrets Manager, buat rahasia. Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci. 
**catatan**  
Anda harus membuat rahasia per koneksi di AWS Glue

1.  Buat AWS Glue koneksi dengan memanggil CreateConnection API menggunakan AWS API, CLI, atau SDK. 

   1.  Referensikan nama jenis koneksi REST dari Langkah 1 sebagai “ConnectionType”. 

   1.  Berikan InstanceUrl dan ConnectionProperties yang lainnya yang ditentukan selama proses AWS Glue ConnectionType pendaftaran. 

   1.  Pilih dari Jenis Otentikasi yang dikonfigurasi. REST API Foo menggunakan OAuth2 dengan tipe ClientCredentials hibah. 

   1.  Berikan **SecretArn**dan lainnya **AuthenticationProperties**yang dikonfigurasi. Sebagai contoh, kita telah mengkonfigurasi `OAUTH2` sebagai AuthenticationType sehingga kita akan mengatur “OAuth2Properties” di CreateConnectionInput. Ini akan membutuhkan properti seperti “OAuth2GrantType”, “TokenUrl”, dan “OAuth2ClientApplication”. 

1.  Buat CreateConnection permintaan yang akan membuat AWS Glue koneksi. 

   ```
   {
       "ConnectionInput": {
           "Name": "ConnectionFooREST",
           "ConnectionType": "REST-FOO-CONNECTOR",
           "ConnectionProperties": {},
           "ValidateCredentials": true,
           "AuthenticationConfiguration": {
               "AuthenticationType": "OAUTH2",
               "SecretArn": "arn:aws:secretsmanager:<region>:<accountId>:secret:<secretId>",
               "OAuth2Properties": {
                   "OAuth2GrantType": "CLIENT_CREDENTIALS",
                   "TokenUrl": "https://foo.cloud.com/oauth/token",
                   "OAuth2ClientApplication": {
                       "UserManagedClientApplicationClientId": "your-managed-client-id"
                   }
               }
           }
       }
   }
   ```

# Batasan
<a name="rest-api-limitations"></a>

Berikut ini adalah batasan untuk konektor REST API
+  Konektor REST API hanya tersedia melalui AWS API, CLI, atau SDK. Anda tidak dapat mengkonfigurasi konektor REST melalui konsol. 
+  AWS Glue REST hanya ConnectionType dapat dikonfigurasi untuk MEMBACA data dari sumber data berbasis REST API. Koneksi hanya dapat digunakan sebagai SUMBER dalam pekerjaan AWS Glue ETL. 
+  Pemfilteran dan partisi tidak didukung. 
+  Pemilihan bidang tidak didukung. 

# Menghubungkan ke Salesforce
<a name="connecting-to-data-salesforce"></a>

Salesforce menyediakan perangkat lunak manajemen hubungan pelanggan (CRM) yang membantu Anda dengan penjualan, layanan pelanggan, e-commerce, dan banyak lagi. Jika Anda pengguna Salesforce, Anda dapat terhubung AWS Glue ke akun Salesforce Anda. Kemudian, Anda dapat menggunakan Salesforce sebagai sumber data atau tujuan dalam Pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Salesforce dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue Dukungan untuk Salesforce](salesforce-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](salesforce-configuring-iam-permissions.md)
+ [Mengkonfigurasi Salesforce](salesforce-configuring.md)
+ [Terapkan profil Admin Sistem](#salesforce-configuring-apply-system-admin-profile)
+ [Mengkonfigurasi koneksi Salesforce](salesforce-configuring-connections.md)
+ [Membaca dari Salesforce](salesforce-reading-from-entities.md)
+ [Menulis ke Salesforce](salesforce-writing-to.md)
+ [Opsi koneksi Salesforce](salesforce-connection-options.md)
+ [Keterbatasan untuk konektor Salesforce](salesforce-connector-limitations.md)
+ [Siapkan alur Kode Otorisasi untuk Salesforce](salesforce-setup-authorization-code-flow.md)
+ [Siapkan aliran pembawa JWT untuk Salesforce OAuth](salesforce-setup-jwt-bearer-oauth.md)

# AWS Glue Dukungan untuk Salesforce
<a name="salesforce-support"></a>

AWS Glue mendukung Salesforce sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Salesforce.

**Didukung sebagai target?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menulis catatan ke Salesforce.

**Versi API Salesforce yang didukung**  
Versi API Salesforce berikut didukung
+ v58.0
+ v59.0
+ v60.0

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="salesforce-configuring-iam-permissions"></a>

Contoh kebijakan IAM berikut menjelaskan izin yang diperlukan untuk membuat, mengelola, dan menggunakan koneksi Salesforce dalam pekerjaan ETL. AWS Glue Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutSecretValue",
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM berikut untuk mengizinkan akses:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

Jika menyediakan Opsi Jaringan saat membuat koneksi Salesforce, tindakan berikut juga harus disertakan dalam peran IAM:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}
```

------

 [Untuk koneksi Salesforce nol-ETL, lihat Prasyarat nol-ETL.](https://docs.aws.amazon.com/glue/latest/dg/zero-etl-prerequisites.html) 

 [Untuk koneksi Salesforce nol-ETL, lihat Prasyarat nol-ETL.](https://docs.aws.amazon.com/glue/latest/dg/zero-etl-prerequisites.html) 

# Mengkonfigurasi Salesforce
<a name="salesforce-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data ke atau dari Salesforce, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="salesforce-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Salesforce.
+ Akun Salesforce Anda diaktifkan untuk akses API. Akses API diaktifkan secara default untuk edisi Enterprise, Unlimited, Developer, dan Performance.

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Salesforce Anda. AWS Glue menangani persyaratan yang tersisa dengan aplikasi terhubung AWS terkelola.

## Aplikasi terhubung AWS terkelola untuk Salesforce
<a name="salesforce-configuring-connected-app"></a>

Aplikasi tersambung AWS terkelola membantu Anda membuat koneksi Salesforce dalam langkah yang lebih sedikit. Di Salesforce, aplikasi yang terhubung adalah kerangka kerja yang mengotorisasi aplikasi eksternal, seperti AWS Glue, untuk mengakses data Salesforce Anda menggunakan 2.0. OAuth Untuk menggunakan aplikasi tersambung AWS terkelola, buat koneksi Salesforce dengan menggunakan konsule. AWS Glue Saat Anda mengonfigurasi koneksi, atur **jenis OAuth hibah** ke **kode Otorisasi** dan biarkan kotak dicentang untuk **Gunakan aplikasi klien AWS terkelola**.

Saat menyimpan koneksi, Anda akan diarahkan ke Salesforce untuk masuk dan menyetujui AWS Glue akses ke akun Salesforce Anda.

## Terapkan profil Admin Sistem
<a name="salesforce-configuring-apply-system-admin-profile"></a>

 Di Salesforce, ikuti langkah-langkah untuk menerapkan profil Admin Sistem: 

1.  Di Salesforce, navigasikan ke **Pengaturan> Aplikasi Terhubung> Penggunaan Aplikasi OAuth Terhubung**. 

1.  Dalam daftar aplikasi yang terhubung, temukan AWS Glue dan pilih **Instal**. Jika perlu, pilih **Buka Blokir**. 

1.  Arahkan ke **Pengaturan > Kelola Aplikasi Terhubung lalu pilih AWS Glue**. Di bawah OAuth Kebijakan, pilih **Pengguna yang disetujui admin sudah diotorisasi sebelumnya** dan pilih profil **Admin Sistem**. Tindakan ini membatasi akses AWS Glue hanya ke pengguna dengan profil Admin Sistem. 

## Terapkan profil Admin Sistem
<a name="salesforce-configuring-apply-system-admin-profile"></a>

 Di Salesforce, ikuti langkah-langkah untuk menerapkan profil Admin Sistem: 

1.  Di Salesforce, navigasikan ke **Pengaturan> Aplikasi Terhubung> Penggunaan Aplikasi OAuth Terhubung**. 

1.  Dalam daftar aplikasi yang terhubung, temukan AWS Glue dan pilih **Instal**. Jika perlu, pilih **Buka Blokir**. 

1.  Arahkan ke **Settings > Manage Connected Apps lalu pilih AWS Glue**. Di bawah OAuth Kebijakan, pilih **Pengguna yang disetujui admin sudah diotorisasi sebelumnya** dan pilih profil **Admin Sistem**. Tindakan ini membatasi akses AWS Glue hanya ke pengguna dengan profil Admin Sistem. 

# Mengkonfigurasi koneksi Salesforce
<a name="salesforce-configuring-connections"></a>

Untuk mengonfigurasi koneksi Salesforce:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk jenis hibah JWT\$1TOKEN - rahasia harus berisi kunci JWT\$1TOKEN dengan nilainya.

   1. Untuk jenis AuthorizationCode hibah:

      1. Untuk aplikasi yang terhubung AWS Terkelola, rahasia kosong atau rahasia dengan beberapa nilai sementara harus disediakan.

      1. Untuk aplikasi terhubung yang dikelola pelanggan, rahasia harus berisi aplikasi yang terhubung `Consumer Secret` dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kuncinya.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Salesforce.

   1. Berikan INSTANCE\$1URL instance Salesforce yang ingin Anda sambungkan.

   1. Menyediakan lingkungan Salesforce.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih jenis OAuth2 hibah yang ingin Anda gunakan untuk koneksi. Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Salesforce untuk meminta akses ke data Anda. Pilihan Anda memengaruhi persyaratan yang harus Anda penuhi sebelum membuat koneksi. Anda dapat memilih salah satu dari jenis ini:
      + Jenis Hibah **JWT\$1BEARER: Jenis hibah** ini berfungsi dengan baik untuk skenario otomatisasi karena memungkinkan Token Web JSON (JWT) dibuat di depan dengan izin pengguna tertentu dalam instance Salesforce. Pembuat memiliki kendali atas berapa lama JWT berlaku. AWS Glue dapat menggunakan JWT untuk mendapatkan token akses yang digunakan untuk memanggil Salesforce. APIs

        Alur ini mengharuskan pengguna telah membuat aplikasi yang terhubung dalam instance Salesforce mereka yang memungkinkan penerbitan token akses berbasis JWT untuk pengguna.

        Untuk informasi tentang cara membuat aplikasi yang terhubung untuk alur pembawa JWT, lihat OAuth alur pembawa [JWT OAuth 2.0](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_jwt_flow.htm) untuk integrasi. server-to-server Untuk mengatur aliran pembawa JWT dengan aplikasi yang terhubung dengan Salesforce, lihat. [Siapkan aliran pembawa JWT untuk Salesforce OAuth](salesforce-setup-jwt-bearer-oauth.md)
      + Jenis Hibah **AUTHORIZATION\$1CODE: Jenis hibah** ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi yang AWS Glue terhubung (aplikasi klien AWS Glue terkelola) di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali URL instance Salesforce mereka. AWS Glue Konsol akan mengarahkan pengguna ke Salesforce di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Salesforce mereka.

        Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Salesforce dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Salesforce untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.

        Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.

        Untuk informasi tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat[Siapkan alur Kode Otorisasi untuk Salesforce](salesforce-setup-authorization-code-flow.md).

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk menyimpan token OAuth 2.0.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

1. Jika menyediakan opsi jaringan, berikan juga izin berikut kepada peran IAM:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CreateNetworkInterface",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DeleteNetworkInterface"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

## Mengkonfigurasi koneksi Salesforce dengan CLI AWS
<a name="salesforce-configuring-connections-cli"></a>

Anda dapat membuat koneksi Salesforce menggunakan CLI AWS :

```
aws glue create-connection --connection-input \
"{\"Name\": \"salesforce-conn1\",\"ConnectionType\": \"SALESFORCE\",\"ConnectionProperties\": {\"ROLE_ARN\": \"arn:aws:iam::123456789012:role/glue-role\",\"INSTANCE_URL\": \"https://example.my.salesforce.com\"},\"ValidateCredentials\": true,\"AuthenticationConfiguration\": {\"AuthenticationType\": \"OAUTH2\",\"SecretArn\": \"arn:aws:secretsmanager:us-east-1:123456789012:secret:salesforce-conn1-secret-IAmcdk\",\"OAuth2Properties\": {\"OAuth2GrantType\": \"JWT_BEARER\",\"TokenUrl\": \"https://login.salesforce.com/services/oauth2/token\"}}}" \
--endpoint-url https://glue.us-east-1.amazonaws.com \
--region us-east-1
```

# Membaca dari Salesforce
<a name="salesforce-reading-from-entities"></a>

**Prasyarat**

Salesforce SoBject yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `Account` atau `Case` atau`Opportunity`.

**Contoh:**

```
salesforce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0"
    }
)
```

## Mempartisi kueri
<a name="salesforce-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Tanggal atau Timestamp, konektor menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai yang valid:

  ```
  "TIMESTAMP \"1707256978123\""
  "TIMESTAMP '2018-01-01 00:00:00.000 UTC'"
  "TIMESTAMP \"2018-01-01 00:00:00 Pacific/Tahiti\"" 
  "TIMESTAMP \"2018-01-01 00:00:00\""
  "TIMESTAMP \"-123456789\" Pacific/Tahiti"
  "TIMESTAMP \"1702600882\""
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.
+  `TRANSFER_MODE`: mendukung dua mode: `SYNC` dan`ASYNC`. Default-nya adalah `SYNC`. Ketika diatur ke`ASYNC`, Bulk API 2.0 Query akan digunakan untuk pemrosesan. 

Contoh:

```
salesforce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0",
        "PARTITION_FIELD": "SystemModstamp",
        "LOWER_BOUND": "TIMESTAMP '2021-01-01 00:00:00 Pacific/Tahiti'",
        "UPPER_BOUND": "TIMESTAMP '2023-01-10 00:00:00 Pacific/Tahiti'",
        "NUM_PARTITIONS": "10",
        "TRANSFER_MODE": "ASYNC" 
    }
)
```

## Opsi FILTER\$1PREDICATE
<a name="salesforce-filter-predicate"></a>

**FILTER\$1PREDICATE**: Ini adalah parameter opsional. Opsi ini digunakan untuk filter kueri.

Contoh **FILTER\$1PREDICATE**:

```
     Case 1: FILTER_PREDICATE with single criterion
     Examples: 	
       LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti'
       LastModifiedDate <= TIMESTAMP "2025-04-01 00:00:00"
       LastModifiedDate >= TIMESTAMP '2018-01-01 00:00:00.000 UTC'
       LastModifiedDate <= TIMESTAMP "-123456789 Pacific/Tahiti"
       LastModifiedDate <= TIMESTAMP "1702600882"

     Case 2: FILTER_PREDICATE with multiple criteria
     Examples: 
       LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti' AND Id = "0012w00001CotGiAAJ"
       LastModifiedDate >= TIMESTAMP "1702600882" AND Id = "001gL000002i26MQAQ"

     Case 3: FILTER_PREDICATE single criterion with LIMIT
     Examples: 
       LastModifiedDate >= TIMESTAMP "1702600882" LIMIT 2

     Case 4: FILTER_PREDICATE with LIMIT
     Examples: 
       LIMIT 2
```

# Menulis ke Salesforce
<a name="salesforce-writing-to"></a>

**Prasyarat**

Salesforce SoBject yang ingin Anda tulis. Anda akan membutuhkan nama objek seperti `Account` atau `Case` atau`Opportunity`.

Konektor Salesforce mendukung empat operasi tulis:
+ INSERT
+ MENEGAKKAN
+ UPDATE
+ DELETE

Saat menggunakan operasi `UPSERT` tulis, `ID_FIELD_NAMES` opsi harus disediakan untuk menentukan bidang ID eksternal untuk catatan.

 Anda juga dapat menambahkan opsi koneksi: 
+  `TRANSFER_MODE`: Mendukung dua mode: `SYNC` dan`ASYNC`. Default-nya adalah `SYNC`. Ketika diatur ke`ASYNC`, Bulk API 2.0 Ingest akan digunakan untuk pemrosesan. 
+  `FAIL_ON_FIRST_ERROR`: Nilai defaultnya adalah`FALSE`, yang berarti AWS Glue pekerjaan akan terus memproses semua data meskipun ada beberapa catatan tulis yang gagal. Ketika disetel ke`TRUE`, AWS Glue pekerjaan akan gagal jika ada catatan tulis yang gagal, dan itu tidak akan melanjutkan pemrosesan. 

**Contoh**

```
salesforce_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0",
        "WRITE_OPERATION": "INSERT",
        "TRANSFER_MODE": "ASYNC",
        "FAIL_ON_FIRST_ERROR": "true"
    }
)
```

# Opsi koneksi Salesforce
<a name="salesforce-connection-options"></a>

Opsi koneksi berikut didukung untuk konektor Salesforce:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Salesforce.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Salesforce Rest API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.

  Saat menyediakan predikat filter, hanya `AND` operator yang didukung. Operator lain seperti `OR` dan `IN` saat ini tidak didukung.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `IMPORT_DELETED_RECORDS`(String) - Default: FALSE. Digunakan untuk membaca. Untuk mendapatkan catatan hapus saat melakukan kueri.
+ `WRITE_OPERATION`(String) - Default: SISIPKAN. Digunakan untuk menulis. Nilai harus INSERT, UPDATE, UPSERT, DELETE.
+ `ID_FIELD_NAMES`(String) - Default: null. Diperlukan untuk UPDATE dan UPSERT.

# Keterbatasan untuk konektor Salesforce
<a name="salesforce-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Salesforce:
+ Kami hanya mendukung Spark SQL dan Salesforce SOQL tidak didukung.
+ Bookmark Job tidak didukung.
+ Nama bidang Salesforce peka huruf besar/kecil. Saat menulis ke Salesforce, data harus sesuai dengan casing bidang yang ditentukan dalam Salesforce.

# Siapkan alur Kode Otorisasi untuk Salesforce
<a name="salesforce-setup-authorization-code-flow"></a>

Lihat dokumentasi publik Salesforce untuk mengaktifkan alur Kode Otorisasi OAuth 2.0.

Untuk mengonfigurasi aplikasi yang terhubung:

1. Aktifkan kotak centang **Aktifkan OAuth Pengaturan**.

1. Di bidang teks **URL Callback**, masukkan satu atau beberapa pengalihan URLs untuk. AWS Glue

   Redirect URLs memiliki format berikut:

   https://*region*.console.aws.amazon. com/gluestudio/oauth

   Di URL ini, *wilayah* adalah kode untuk AWS Wilayah tempat Anda gunakan AWS Glue untuk mentransfer data dari Salesforce. Misalnya, kode untuk Wilayah AS Timur (Virginia N.) adalah`us-east-1`. Untuk Wilayah itu, URL-nya adalah sebagai berikut:

   https://us-east-1.console.aws.amazon.com/gluestudio/oauth

   Untuk AWS Wilayah yang AWS Glue mendukung, dan kodenya, lihat [AWS Glue titik akhir dan kuota di Referensi AWS](https://docs.aws.amazon.com/general/latest/gr/glue.html) *Umum*.

1. Aktifkan kotak centang **Require Secret for Web Server Flow**.

1. Dalam daftar ** OAuth Cakupan yang Tersedia**, tambahkan cakupan berikut:
   + Mengelola data pengguna melalui APIs (api)
   + Akses izin khusus (custom\$1permissions)
   + Akses layanan URL identitas (id, profil, email, alamat, telepon)
   + Akses pengenal pengguna unik (openid)
   + Lakukan permintaan kapan saja (refresh\$1token, offline\$1access)

1. Setel kebijakan penyegaran token untuk aplikasi yang terhubung ke **Refresh token valid hingga dicabut**. Jika tidak, pekerjaan Anda akan gagal saat token penyegaran Anda kedaluwarsa. Untuk informasi selengkapnya tentang cara memeriksa dan mengedit kebijakan penyegaran token, lihat [Mengelola Kebijakan OAuth Akses untuk Aplikasi Terhubung](https://help.salesforce.com/articleView?id=connected_app_manage_oauth.htm) di dokumentasi Salesforce.

# Siapkan aliran pembawa JWT untuk Salesforce OAuth
<a name="salesforce-setup-jwt-bearer-oauth"></a>

Lihat dokumentasi publik Salesforce untuk mengaktifkan server-to-server integrasi dengan [OAuth 2.0 JSON](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_jwt_flow.htm) Web Tokens.

Setelah Anda membuat JWT dan mengonfigurasi aplikasi yang terhubung dengan tepat di Salesforce, Anda dapat membuat koneksi Salesforce baru dengan set kunci `JWT_TOKEN` di Secrets Manager Secret Anda. Setel jenis OAuth hibah ke **JWT Bearer Token** saat membuat koneksi.

# Menghubungkan ke Salesforce Marketing Cloud
<a name="connecting-to-data-salesforce-marketing-cloud"></a>

Salesforce Marketing Cloud adalah penyedia otomatisasi pemasaran dan perangkat lunak analitik untuk pemasaran email, seluler, sosial, dan online. Ini juga menawarkan layanan konsultasi dan implementasi. Sebagai pengguna Salesforce Marketing Cloud, Anda dapat terhubung AWS Glue ke akun Salesforce Marketing Cloud Anda. Kemudian, Anda dapat menggunakan Salesforce Marketing Cloud sebagai sumber data atau tujuan dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Salesforce Marketing Cloud dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Salesforce Marketing Cloud](salesforce-marketing-cloud-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](salesforce-marketing-cloud-configuring-iam-permissions.md)
+ [Mengkonfigurasi Cloud Pemasaran Salesforce](salesforce-marketing-cloud-configuring.md)
+ [Mengkonfigurasi koneksi Cloud Pemasaran Salesforce](salesforce-marketing-cloud-configuring-connections.md)
+ [Membaca dari entitas Salesforce Marketing Cloud](salesforce-marketing-cloud-reading-from-entities.md)
+ [Menulis ke entitas Cloud Pemasaran Salesforce](salesforce-marketing-cloud-writing-to-entities.md)
+ [Opsi koneksi Cloud Pemasaran Salesforce](salesforce-marketing-cloud-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Cloud Pemasaran Salesforce](salesforce-marketing-cloud-connector-limitations.md)

# AWS Glue dukungan untuk Salesforce Marketing Cloud
<a name="salesforce-marketing-cloud-support"></a>

AWS Glue mendukung Salesforce Marketing Cloud sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Salesforce Marketing Cloud.

**Didukung sebagai target?**  
Tidak.

**Versi Salesforce Marketing Cloud API yang didukung**  
Versi Salesforce Marketing Cloud API berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="salesforce-marketing-cloud-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Salesforce Marketing Cloud, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="salesforce-marketing-cloud-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Salesforce Marketing Cloud. Untuk informasi selengkapnya, lihat [Membuat akun Cloud Pemasaran Salesforce](#salesforce-marketing-cloud-configuring-creating-salesforce-marketing-cloud-account).
+ Akun Salesforce Marketing Cloud Anda diaktifkan untuk akses API. Akses API diaktifkan secara default untuk edisi Enterprise, Unlimited, Developer, dan Performance.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Salesforce Marketing Cloud Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Salesforce Marketing Cloud.

## Membuat akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-configuring-creating-salesforce-marketing-cloud-account"></a>

Untuk cloud Pemasaran Salesforce, Anda perlu menghubungi vendor untuk pembuatan akun. Jika Anda atau perusahaan Anda memiliki asosiasi dengan Salesforce, hubungi manajer akun Salesforce Anda untuk meminta lisensi Salesforce Marketing Cloud. Jika tidak, Anda dapat meminta kontak dari perwakilan Salesforce sebagai berikut: 

1. Buka https://www.salesforce.com/in/products/marketing-cloud/overview/dan pilih **Daftar**.

1. Pilih tautan **Hubungi Kami** di kanan atas halaman.

1. Masukkan informasi yang diperlukan dalam formulir dan pilih **Hubungi Saya**.

Perwakilan Salesforce akan menghubungi Anda untuk mendiskusikan kebutuhan Anda.

## Membuat proyek dan kredensi OAuth 2.0
<a name="salesforce-marketing-cloud-configuring-creating-salesforce-marketing-cloud-project-oauth"></a>

Untuk mendapatkan proyek dan kredensi OAuth 2.0:

1. Masuk ke [instans Salesforce Marketing Cloud](https://mc.login.exacttarget.com/hub-cas/login) Anda dengan nama pengguna dan kata sandi Anda dan autentikasi menggunakan nomor ponsel terdaftar Anda.

1. Klik pada profil Anda di pojok kanan atas dan kemudian pergi ke **Pengaturan**.

1. Di bawah **Platform Tools** pilih **Apps** dan kemudian pilih **Paket Terinstal**.  
![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/sfmc-platform-tools.png)

1. Pada halaman **Paket Terinstal**, klik **Baru** di sudut kanan atas. Berikan nama dan deskripsi paket.

   Simpan paketnya. Setelah paket disimpan, Anda dapat melihat detail paket.

1. Pada halaman **Detail** paket, di bawah bagian **Component**, pilih **Add Component**.   
![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/sfmc-add-component.png)

1. **Pilih **Component Type** sebagai 'API Integration' dan klik Next.**

1. **Pilih **Jenis Integrasi** sebagai 'Server-to-Server' (yang memiliki jenis OAuth hibah kredensial klien) dan klik Berikutnya.**

1. Tambahkan cakupan berdasarkan kebutuhan Anda dan klik **Simpan**.

# Mengkonfigurasi koneksi Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-configuring-connections"></a>

Salesforce Marketing Cloud mendukung jenis hibah KREDENSIAL KLIEN untuk. OAuth2
+ Jenis hibah ini dianggap OAuth 2.0 berkaki 2 karena digunakan oleh klien untuk mendapatkan token akses di luar konteks pengguna. AWS Glue dapat menggunakan ID klien dan rahasia klien untuk mengautentikasi Salesforce Marketing Cloud APIs yang disediakan oleh layanan khusus yang Anda tentukan.
+ Setiap layanan kustom dimiliki oleh pengguna khusus API yang memiliki serangkaian peran dan izin yang mengizinkan layanan untuk melakukan tindakan tertentu. Token akses dikaitkan dengan satu layanan kustom.
+ Jenis hibah ini menghasilkan token akses yang berumur pendek, dan dapat diperbarui dengan memanggil titik akhir identitas.
+ Untuk dokumentasi Cloud Pemasaran Salesforce publik untuk OAuth 2.0 dengan kredensional klien, lihat [Mengatur Lingkungan Pengembangan Anda untuk Paket](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/mc-dev-setup-enhanced.html) yang Ditingkatkan.

Untuk mengonfigurasi koneksi Salesforce Marketing Cloud:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Salesforce Marketing Cloud.

   1. Berikan Salesforce Marketing Cloud yang ingin Anda sambungkan. `Subdomain Endpoint`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Salesforce Marketing Cloud
<a name="salesforce-marketing-cloud-reading-from-entities"></a>

**Prasyarat**

Objek Salesforce Marketing Cloud yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `Activity` atau`Campaigns`. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Antarmuka | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung SELECT \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | --- | 
| Panggilan Balik Pemberitahuan Acara | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Daftar Benih | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Pengaturan | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Verifikasi Domain | REST | Ya | Ya | Ya | Ya | Tidak | 
| Tag Bersarang Objek | REST | Ya | Tidak | Tidak | Ya | Tidak | 
| Kontak | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Langganan Pemberitahuan Acara | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Perpesanan | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Aktifitas | SOAP | Tidak | Tidak | Tidak | Ya | Ya | 
| Acara Bounce | SOAP | Tidak | Tidak | Tidak | Ya | Ya | 
| Klik Acara | SOAP | Tidak | Tidak | Tidak | Ya | Ya | 
| Area Konten | SOAP | Tidak | Tidak | Tidak | Ya | Ya | 
| Ekstensi Data | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Email | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Email yang Diteruskan | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Teruskan Email OptInEvent | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Tautan | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Tautan Kirim | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Daftar | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Daftar Pelanggan | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Tidak Terkirim | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Terbuka | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Kirim | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Terkirim | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Pelanggan | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Survei | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Unsub | SOAP | Tidak | Ya | Tidak | Ya | Ya | 
| Acara Audit | REST | Tidak | Ya | Ya | Ya | Tidak | 
| Kampanye | REST | Tidak | Ya | Ya | Ya | Tidak | 
| Interaksi | REST | Tidak | Ya | Ya | Ya | Tidak | 
| Aset Konten | REST | Tidak | Ya | Ya | Ya | Tidak | 

**Contoh untuk REST**:

```
salesforcemarketingcloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Campaigns",
        "API_VERSION": "v1",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

**Contoh untuk SOAP**:

```
salesforcemarketingcloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Activity",
        "API_VERSION": "v1",
        "INSTANCE_URL": "https://**********************.soap.marketingcloudapis.com"
    }
)
```

**Entitas dan detail bidang Salesforce Marketing Cloud**:

Tabel berikut menjelaskan entitas Salesforce Marketing Cloud. Ada entitas REST dengan metadata statis dan entitas SOAP dengan metadata dinamis.

**Entitas REST dengan metadata statis**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/salesforce-marketing-cloud-reading-from-entities.html)

**Entitas SOAP dengan metadata dinamis**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/salesforce-marketing-cloud-reading-from-entities.html)

## Mempartisi kueri
<a name="salesforce-marketing-cloud-reading-partitioning-queries"></a>

Di Salesforce Marketing Cloud, bidang Integer dan DateTime tipe data mendukung partisi berbasis lapangan.

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang timestamp, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  “2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
salesforcemarketingcloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "ListSubscriber",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "CreatedDate",
        "LOWER_BOUND": "2023-09-07T02:03:00.000Z",
        "UPPER_BOUND": "2024-05-07T02:03:00.000Z",
        "NUM_PARTITIONS": "10"
    }
)
```

# Menulis ke entitas Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-writing-to-entities"></a>

**Prasyarat**
+ Objek Pemasaran Salesforce yang ingin Anda tulis. Anda perlu menentukan nama objek seperti `List` atau `Campaigns` atau entitas lain yang diuraikan dalam tabel di bawah ini.
+ Konektor Salesforce Marketing Cloud mendukung tiga operasi penulisan:
  + INSERT
  + MENEGAKKAN
  + UPDATE

  Saat menggunakan operasi `UPDATE` dan `UPSERT` tulis, Anda harus memberikan `ID_FIELD_NAMES` opsi untuk menentukan bidang ID eksternal untuk catatan. 

**Entitas yang didukung untuk tujuan**:


| Entitas | Prioritas | Antarmuka (REST, SOAP, dll) | Dapat Dimasukkan | Dapat Diperbarui | Dapat Ditambah | 
| --- | --- | --- | --- | --- | --- | 
| Kampanye | P0 | REST | Y- Tunggal | Y- Tunggal | T | 
| Aset Konten | P0 | REST | Y- Tunggal, Massal | Y- Tunggal | T | 
| Kontak | P1 | REST | Y- Tunggal | Y- Tunggal | T | 
| Verifikasi Domain | P1 | REST | Y- Tunggal | Y- Tunggal, Massal | T | 
| Callback Pemberitahuan Acara | P1 | REST | Y- Tunggal | Y- Tunggal | T | 
| Langganan Pemberitahuan Acara | P1 | REST | Y- Tunggal | Y- Tunggal | T | 
| Perpesanan | P1 | REST | Y- Tunggal | T | T | 
| Tag Bersarang Objek | P2 | REST | Y- Tunggal | Y- Tunggal | T | 
| Daftar Benih | P1 | REST | Y- Tunggal | Y- Tunggal | T | 
| Pengaturan | P1 | REST | Y- Tunggal | Y- Tunggal | T | 
| Ekstensi Data | P0 | SOAP | Y- Tunggal | Y- Tunggal | Y- Tunggal | 
| Email | P0 | SOAP | Y- Tunggal | Y- Tunggal | T | 
| Daftar | P0 | SOAP | Y- Tunggal | Y- Tunggal | T | 
| Kirim | P0 | SOAP | Y- Tunggal | T | T | 
| Pelanggan | P0 | SOAP | Y- Tunggal | Y- Tunggal | T | 

**Contoh untuk operasi INSERT untuk REST**:

```
salesforcemarketingcloud_write = glueContext.write_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Campaigns",
        "API_VERSION": "v1",
        "writeOperation" : "INSERT",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

**Contoh untuk operasi INSERT untuk SOAP**:

```
salesforcemarketingcloud_write = glueContext.write_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "List",
        "API_VERSION": "v1",
        "writeOperation" : "INSERT",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

**Contoh untuk operasi UPDATE untuk REST**:

```
salesforcemarketingcloud_write = glueContext.write_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Campaigns",
        "API_VERSION": "v1",
        "writeOperation" : "UPDATE",
         "ID_FIELD_NAMES": "id",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

**Contoh untuk operasi UPDATE untuk SOAP**:

```
salesforcemarketingcloud_write = glueContext.write_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "List",
        "API_VERSION": "v1",
        "writeOperation" : "UPDATE",
         "ID_FIELD_NAMES": "id",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

**Contoh untuk operasi UPSERT untuk SOAP**:

```
salesforcemarketingcloud_write = glueContext.write_dynamic_frame.from_options(
    connection_type="salesforcemarketingcloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "DataExtension/Insert-***E/6*******3",
        "API_VERSION": "v1",
        "writeOperation" : "UPSERT",
        "INSTANCE_URL": "https://**********************.rest.marketingcloudapis.com"
    }
)
```

# Opsi koneksi Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Salesforce Marketing Cloud:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Salesforce Marketing Cloud.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Salesforce Marketing Cloud Rest dan SOAP API versi yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `WRITE_OPERATION`(String) - Default: SISIPKAN. Digunakan untuk menulis. Nilai harus INSERT, UPDATE, UPSERT.
+ `ID_FIELD_NAMES`(String) - Default: null. Diperlukan untuk UPDATE/UPSERT.

# Keterbatasan dan catatan untuk konektor Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Salesforce Marketing Cloud:
+ Saat menggunakan filter pada bidang DateTime tipe data, Anda harus meneruskan nilai dalam format "yyyy-mm-ddTHH: mm: SSZ”.
+ Dalam Data Preview, nilai Boolean Datatype datang sebagai Blank.
+ Untuk entitas SOAP, Anda dapat menentukan maksimal dua filter, dan untuk entitas REST, Anda hanya dapat menentukan satu filter, yang membatasi pengujian partisi dengan filter.
+ Beberapa perilaku tak terduga telah diamati dari sisi SaaS: `Link.Alias` bidang di entitas `linksend` tidak mendukung operator CONTAINS (misalnya,`Link.Alias CONTAINS "ViewPrivacyPolicy"`), dan operator filter untuk entitas Ekstensi Data (seperti EQUALS dan GREATER THAN) tidak mengembalikan hasil yang diharapkan.
+ SFMC ClickEvent SOAP API memiliki penundaan dalam mencerminkan catatan yang baru dibuat sehingga, catatan yang dibuat baru-baru ini mungkin tidak segera tersedia dalam respons API.

  Contoh: Jika Anda membuat 5 ClickEvent catatan baru pada **2025-01-10T 14:30:00** dan segera mengambilnya menggunakan SOAP API, responsnya mungkin tidak menyertakan semua 5 catatan. Diperlukan waktu hingga 5 menit agar catatan yang baru dibuat muncul dalam respons API. Penundaan ini dapat memengaruhi pengambilan data dan jadwal berjalan juga.
+ Dua DateTime format berbeda: **2025-03-11T 04:46:00 (tanpa milidetik) dan **2025-03-11T 04:46:00.000**** Z didukung saat melakukan operasi penulisan dalam (dengan milidetik). AWS Glue 
+ Untuk entitas Langganan Pemberitahuan Acara, langganan hanya dapat dibuat untuk URL panggilan balik terverifikasi, dan Anda dapat memiliki hingga 200 langganan per panggilan balik.
+ Untuk entitas Callback Pemberitahuan Peristiwa, maksimal 50 catatan dapat dibuat per akun.

# Menghubungkan ke Salesforce Commerce Cloud
<a name="connecting-to-salesforce-commerce-cloud"></a>

 B2C Commerce API adalah kumpulan RESTful APIs untuk berinteraksi dengan instans B2C Commerce. Ini berjalan dengan beberapa nama yang berbeda: Salesforce Commerce API, singkatan SCAPI, atau hanya Commerce API.

 API memungkinkan pengembang untuk membangun berbagai aplikasi: dari etalase lengkap hingga alat pedagang khusus untuk menambah Manajer Bisnis. Untuk semua pelanggan B2C Commerce, API tersedia tanpa biaya tambahan. 

 API dibagi menjadi dua kelompok utama APIs: Shopper APIs dan Admin APIs. Dan dalam setiap grup, mereka dibagi menjadi keluarga API dan menjadi kelompok yang lebih kecil yang berfokus pada fungsionalitas terkait. 

**Topics**
+ [AWS Glue dukungan untuk Salesforce Commerce Cloud](salesforce-commerce-cloud-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](salesforce-commerce-cloud-configuring-iam-permissions.md)
+ [Mengkonfigurasi Salesforce Commerce Cloud](salesforce-commerce-cloud-configuring.md)
+ [Mengkonfigurasi koneksi Cloud Salesforce Commerce](salesforce-commerce-cloud-configuring-connections.md)
+ [Membaca dari entitas Salesforce Commerce Cloud](salesforce-commerce-cloud-reading-from-entities.md)
+ [Referensi opsi koneksi Salesforce Commerce Cloud](salesforce-commerce-cloud-connection-options.md)
+ [Batasan](salesforce-commerce-cloud-connector-limitations.md)

# AWS Glue dukungan untuk Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-support"></a>

AWS Glue mendukung Salesforce Commerce Cloud sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Salesforce Commerce Cloud.

**Didukung sebagai target?**  
Tidak.

**Versi Salesforce Commerce Cloud API yang didukung**  
 v1. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="salesforce-commerce-cloud-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Salesforce Commerce Cloud, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="salesforce-commerce-cloud-configuring-min-requirements"></a>
+  Anda memiliki aplikasi klien Salesforce Commerce Cloud dengan ClientID dan ClientSecret. 
+  Akun Salesforce Commerce Cloud Anda diaktifkan untuk akses API. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Salesforce Commerce Cloud Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Salesforce Commerce Cloud. 

# Mengkonfigurasi koneksi Cloud Salesforce Commerce
<a name="salesforce-commerce-cloud-configuring-connections"></a>

 Salesforce Commerce Cloud mendukung jenis hibah KREDENSIAL KLIEN untuk. OAuth2 
+  Jenis hibah ini dianggap OAuth 2.0 berkaki 2 karena digunakan oleh klien untuk mendapatkan token akses di luar konteks pengguna. AWS Glue dapat menggunakan ID klien dan rahasia klien untuk mengautentikasi Salesforce Commerce Cloud APIs yang disediakan oleh layanan khusus yang Anda tentukan. 
+  Setiap layanan kustom dimiliki oleh pengguna khusus API yang memiliki serangkaian peran dan izin yang mengizinkan layanan untuk melakukan tindakan tertentu. Token akses dikaitkan dengan satu layanan kustom. 
+  Jenis hibah ini menghasilkan token akses yang berumur pendek, dan dapat diperbarui dengan memanggil titik akhir identitas. 
+  [Untuk informasi selengkapnya tentang dokumentasi Salesforce Commerce Cloud tentang pembuatan kredensil Klien, lihat Dokumentasi Salesforce.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization.html) 

Untuk mengonfigurasi koneksi Salesforce Commerce Cloud:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET sebagai kunci. 

1. Di AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1.  Di bawah Koneksi Data, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Salesforce Commerce Cloud.

   1. Berikan Salesforce Commerce Cloud **Short Code**, **ID Organisasi, dan ID** **Situs Anda**.

   1. Pilih URL Domain Cloud Salesforce Commerce dari akun Salesforce Commerce Cloud Anda.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Berikan OAuth cakupan - opsional, Aplikasi Klien yang Dikelola Pengguna ClientId dari Salesforce Commerce Cloud yang ingin Anda sambungkan. 

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

1.  Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**. 

# Membaca dari entitas Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Cloud Salesforce Commerce yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Tugas | Ya | Ya | Ya | Ya | Ya | 
| Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Katalog | Ya | Ya | Ya | Ya | Ya | 
| Kategori | Ya | Ya | Ya | Ya | Ya | 
| Kupon | Ya | Ya | Ya | Ya | Ya | 
| Sertifikat Hadiah | Ya | Ya | Ya | Ya | Ya | 
| Produk | Ya | Ya | Ya | Ya | Ya | 
| Promosi | Ya | Ya | Ya | Ya | Ya | 
| Grup Kode Sumber | Ya | Ya | Ya | Ya | Ya | 

 **Contoh** 

```
salesforce_commerce_cloud_read = glueContext.create_dynamic_frame.from_options(
     connection_type="SalesforceCommerceCloud",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "campaign",
         "API_VERSION": "v1"      
     }
)
```

 **Entitas Salesforce Commerce Cloud dan detail bidang** 

 Daftar entitas: 
+  Tugas: [https://developer.salesforce.com/docs/commerce/commerce-api/references/assignments]( https://developer.salesforce.com/docs/commerce/commerce-api/references/assignments) 
+  Kampanye: [https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns](https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns) 
+  Katalog: [https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs](https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs) 
+  Kategori: [https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs? meta=PencarianKategori](https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs?meta=searchCategories) 
+  Sertifikat Hadiah: [https://developer.salesforce.com/docs/commerce/commerce-api/references/gift-sertifikat](https://developer.salesforce.com/docs/commerce/commerce-api/references/gift-certificates) 
+  Produk: [https://developer.salesforce.com/docs/commerce/commerce-api/references/products](https://developer.salesforce.com/docs/commerce/commerce-api/references/products) 
+  Promosi: [https://developer.salesforce.com/docs/commerce/commerce-api/references/promotions](https://developer.salesforce.com/docs/commerce/commerce-api/references/promotions) 
+  Grup Kode Sumber: [https://developer.salesforce.com/docs/commerce/commerce-api/references/source-code-groups](https://developer.salesforce.com/docs/commerce/commerce-api/references/source-code-groups) 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi berdasarkan entitas ditangkap dalam tabel di bawah ini: 


| Entitas | Bidang Partisi | DataType | 
| --- | --- | --- | 
| Kampanye | Terakhir Dimodifikasi | DateTime | 
| Kampanye | StartDate | DateTime | 
| Kampanye | EndDate | DateTime | 
| Katalog | creationDate | DateTime | 
| Kategori | CreatiionDate | DateTime | 
| Sertifikat Hadiah | Merchantid | String | 
| Sertifikat Hadiah | CreatiionDate | DateTime | 
| Produk | CreatiionDate | DateTime | 
| Produk | Terakhir Dimodifikasi | DateTime | 
| Grup Kode Sumber | creationDate | DateTime | 
| Grup Kode Sumber | startTime | DateTime | 
| Grup Kode Sumber | endTime | DateTime | 

 **Contoh** 

```
 salesforceCommerceCloud_read = glueContext.create_dynamic_frame.from_options(
     connection_type="SalesforceCommerceCloud",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "coupons",
         "API_VERSION": "v1",
         "PARTITION_FIELD": "creationDate",
         "LOWER_BOUND": "2020-05-01T20:55:02.000Z",
         "UPPER_BOUND": "2024-07-11T20:55:02.000Z",
         "NUM_PARTITIONS": "10"
     }
)
```

# Referensi opsi koneksi Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Salesforce Commerce Cloud:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama Objek Anda di Salesforce Commerce Cloud. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Salesforce Commerce Cloud Rest API versi yang ingin Anda gunakan. Contoh: v1. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Batasan
<a name="salesforce-commerce-cloud-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Cloud Salesforce Commerce:
+ Filter Berisi tidak berfungsi seperti yang diharapkan saat mempartisi.
+ Entitas CDN Zones tidak mendukung instance sandbox, dan hanya mendukung jenis instance Pengembangan dan produksi. Untuk informasi selengkapnya, lihat [https://help.salesforce.com/s/ArticleView? id=cc.b2c\$1embedded\$1cdn\$1overview.htm](https://help.salesforce.com/s/articleView?id=cc.b2c_embedded_cdn_overview.htm).
+ Di Salesforce Commerce Cloud, tidak ada titik akhir API untuk mengambil Metadata Dinamis. Akibatnya, tidak ada ketentuan untuk mendukung bidang kustom di entitas Produk dan Kategori.
+ Id situs adalah parameter kueri wajib. Anda harus meneruskan nilai Id Situs melalui Pengaturan Konektor Kustom. Untuk informasi selengkapnya, lihat [URL Dasar dan Formasi Permintaan](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html).
+ Anda dapat menerapkan filter pada maksimal dua bidang (tidak termasuk Level jika ada) dalam permintaan API tunggal dengan kombinasi operator yang berbeda seperti yang disebutkan dalam tabel di bawah ini:    
<a name="salesforce-commerce-cloud-limitations-filters"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/salesforce-commerce-cloud-connector-limitations.html)
+ Di beberapa entitas, tipe data untuk bidang saat mengambil berbeda dari saat digunakan sebagai bidang yang dapat dicari. Akibatnya, tidak ada ketentuan fitur filter untuk bidang ini. Tabel berikut memberikan rincian tentang bidang tersebut.     
<a name="salesforce-commerce-cloud-limitations-filters-provision"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/salesforce-commerce-cloud-connector-limitations.html)

# Menghubungkan ke Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="connecting-to-data-salesforce-marketing-cloud-account-engagement"></a>

Salesforce Marketing Cloud Account Engagement adalah solusi otomatisasi pemasaran yang membantu perusahaan menciptakan koneksi yang berarti, menghasilkan lebih banyak saluran, dan memberdayakan penjualan untuk menutup lebih banyak transaksi. Jika Anda adalah pengguna Keterlibatan Akun Cloud Pemasaran Salesforce, Anda dapat terhubung AWS Glue ke akun Keterlibatan Akun Cloud Pemasaran Salesforce Anda. Anda dapat menggunakan Salesforce Marketing Cloud Account Engagement sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Salesforce Marketing Cloud Account Engagement ke AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](salesforce-marketing-cloud-account-engagement-configuring-iam-permissions.md)
+ [Mengkonfigurasi Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-configuring.md)
+ [Mengkonfigurasi koneksi Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-configuring-connections.md)
+ [Membaca dari entitas Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-reading-from-entities.md)
+ [Opsi koneksi Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Keterlibatan Akun Cloud Pemasaran Salesforce](salesforce-marketing-cloud-account-engagement-connector-limitations.md)

# AWS Glue dukungan untuk Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-support"></a>

AWS Glue mendukung Keterlibatan Akun Cloud Pemasaran Salesforce sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Keterlibatan Akun Cloud Pemasaran Salesforce dalam mode Async atau Sync.

**Didukung sebagai target?**  
Tidak.

**Versi API Keterlibatan Akun Cloud Pemasaran Salesforce yang didukung**  
Versi Salesforce Marketing Cloud Account Engagement API berikut didukung:
+ v5

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="salesforce-marketing-cloud-account-engagement-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Salesforce Marketing Cloud Account Engagement, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="salesforce-marketing-cloud-account-engagement-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun pemasaran Salesforce.
+ Anda memiliki paket Keterlibatan Akun berlisensi untuk akun Salesforce. 
+ Anda telah menyinkronkan pengguna Salesforce dengan pengguna Keterlibatan Akun.
+ Anda telah membuat aplikasi baru yang terhubung di bawah App Manager untuk mendapatkan OAuth Kredensial.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Keterlibatan Akun Cloud Pemasaran Salesforce Anda.

# Mengkonfigurasi koneksi Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-configuring-connections"></a>

Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Salesforce Marketing Cloud Account Engagement untuk meminta akses ke data Anda. Pilihan Anda memengaruhi persyaratan yang harus Anda penuhi sebelum membuat koneksi. Keterlibatan Akun Cloud Pemasaran Salesforce hanya mendukung jenis hibah AUTHORIZATION\$1CODE untuk 2.0. OAuth 
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Salesforce Marketing Cloud Account Engagement dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Salesforce Marketing Cloud Account Engagement untuk login dan otorisasi AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ [Untuk dokumentasi Keterlibatan Akun Cloud Pemasaran Salesforce publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat Otentikasi.](https://developer.salesforce.com/docs/marketing/pardot/guide/version5overview.html#authentication)

Untuk mengonfigurasi koneksi Keterlibatan Akun Cloud Pemasaran Salesforce:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Keterlibatan Akun Cloud Pemasaran Salesforce.

   1. Berikan contoh `INSTANCE_URL` Keterlibatan Akun Cloud Pemasaran Salesforce yang ingin Anda sambungkan.

   1. Berikan contoh `PARDOT_BUSINESS_UNIT_ID` Keterlibatan Akun Cloud Pemasaran Salesforce yang ingin Anda sambungkan.

   1. Pilih **URL Kode Otorisasi** yang sesuai dari dropdown.

   1. Pilih **URL Token** yang sesuai dari dropdown.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Berikan ID Klien Aplikasi Klien Terkelola Pengguna (ID klien dari aplikasi yang terhubung).

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. Rahasia yang dipilih harus memiliki kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` dengan nilai Rahasia Klien dari aplikasi yang terhubung.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari entitas Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-reading-from-entities"></a>

**Prasyarat**

Objek Keterlibatan Akun Cloud Pemasaran Salesforce yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber Sinkronisasi**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Konten Dinamis | Ya | Ya | Ya | Ya | Ya | 
| Email | Ya | Ya | Ya | Ya | Ya | 
| Template Email | Ya | Ya | Ya | Ya | Ya | 
| Program Studio Keterlibatan | Ya | Ya | Ya | Ya | Ya | 
| Isi Folder | Ya | Ya | Ya | Ya | Ya | 
| Halaman Landing | Ya | Ya | Ya | Ya | Ya | 
| Riwayat Siklus Hidup | Ya | Ya | Ya | Ya | Ya | 
| Tahap Siklus Hidup | Ya | Ya | Ya | Ya | Ya | 
| Daftar | Ya | Ya | Ya | Ya | Ya | 
| Daftar Email | Ya | Ya | Ya | Ya | Ya | 
| Daftar Keanggotaan | Ya | Ya | Ya | Ya | Ya | 
| Peluang | Ya | Ya | Ya | Ya | Ya | 
| Prospek | Ya | Ya | Ya | Ya | Ya | 
| Akun Prospek | Ya | Ya | Ya | Ya | Ya | 
| Pengguna | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
salesforcepardot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="SalesforcePardot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v5"
    }
   )
```

**Entitas yang didukung untuk sumber Async**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kampanye | Ya | Tidak | Tidak | Ya | Tidak | 
| Konten Dinamis | Ya | Tidak | Tidak | Ya | Tidak | 
| Template Email | Ya | Tidak | Tidak | Ya | Tidak | 
| Halaman Landing | Ya | Tidak | Tidak | Ya | Tidak | 
| Riwayat Siklus Hidup | Ya | Tidak | Tidak | Ya | Tidak | 
| Tahap Siklus Hidup | Ya | Tidak | Tidak | Ya | Tidak | 
| Daftar | Ya | Tidak | Tidak | Ya | Tidak | 
| Daftar Email | Ya | Tidak | Tidak | Ya | Tidak | 
| Daftar Keanggotaan | Ya | Tidak | Tidak | Ya | Tidak | 
| Peluang | Ya | Tidak | Tidak | Ya | Tidak | 
| Prospek | Ya | Tidak | Tidak | Ya | Tidak | 
| Akun Prospek | Ya | Tidak | Tidak | Ya | Tidak | 
| Pengguna | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
salesforcepardot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="SalesforcePardot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v5",
        "TRANSFER_MODE": "ASYNC"
    }
   )
```

**Entitas dan detail bidang Keterlibatan Akun Cloud Pemasaran Salesforce**:

Untuk melihat detail bidang untuk entitas berikut, navigasikan ke [Salesforce Marketing Cloud Account Engagement API](https://developer.salesforce.com/docs/marketing/pardot), pilih **Guides**, gulir ke bawah ke **Open Source API Wrappers, perluas** **Versi 5 Docs** dari menu dan pilih entitas.

Daftar entitas:
+ Kampanye
+ Konten Dinamis
+ Email
+ Template Email
+ Program Studio Keterlibatan
+ Konten Folder
+ Halaman Landing
+ Riwayat Siklus Hidup
+ Tahap Siklus Hidup
+ Daftar
+ Daftar Email
+ Daftar Keanggotaan
+ Peluang
+ Prospek
+ Akun Prospek
+ Pengguna

Selain bidang yang disebutkan di atas, mode Async mendukung bidang yang dapat difilter khusus untuk setiap entitas, seperti yang ditunjukkan pada tabel di bawah ini.


| Entitas | Bidang disaring tambahan yang didukung di Async | 
| --- | --- | 
| Kampanye | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Konten Dinamis | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Template Email | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Program Studio Keterlibatan | - | 
| Halaman Landing | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Riwayat Siklus Hidup | createdAfter, createdBefore | 
| Tahap Siklus Hidup | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Daftar | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Daftar Email | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Daftar Keanggotaan | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Peluang | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Prospek | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 
| Akun Prospek | createdAfter, createdBefore, deleted | 
| Pengguna | createdAfter, createdBefore, deleted, updatedAfter, updatedBefore | 

Untuk informasi selengkapnya tentang bidang tambahan, lihat [Salesforce](https://developer.salesforce.com/docs/marketing/pardot/guide/export-v5.html#procedures) Export API

Perhatikan pertimbangan berikut untuk konektor:
+ Nilai `delete` bidang dalam entitas dapat `false` (default),`true`, atau`all`.

## Mempartisi kueri
<a name="salesforce-marketing-cloud-account-engagement-reading-partitioning-queries"></a>

Partisi **berbasis filter**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri SQL. SPark 

  Contoh nilai valid:

  ```
  "2022-01-01T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.
+ `PARTITION_BY`: jenis partisi yang akan dilakukan. “FIELD” harus diteruskan jika terjadi partisi berbasis lapangan.

Contoh:

```
salesforcepardot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforcepardot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v5",
        "PARTITION_FIELD": "createdAt"
        "LOWER_BOUND": "2022-01-01T01:01:01.000Z"
        "UPPER_BOUND": "2024-01-01T01:01:01.000Z"
        "NUM_PARTITIONS": "10",
        "PARTITION_BY": "FIELD"
    }
   )
```

# Opsi koneksi Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Salesforce Marketing Cloud Account Engagement:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Salesforce Marketing Cloud Account Engagement.
+ `PARDOT_BUSINESS_UNIT_ID`- (Wajib) Digunakan untuk membuat koneksi. ID unit bisnis dari instans Keterlibatan Akun Cloud Pemasaran Salesforce Marketing yang ingin Anda sambungkan.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Salesforce Marketing Cloud Account Engagement Rest versi API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(Tali) -
  + Dalam mode Sinkronisasi - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
  + Dalam mode Async - Default: `DateTime` Nilai saat ini (sesuai zona waktu pengguna) - 1 tahun. Digunakan untuk Baca.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL instans Keterlibatan Akun Cloud Pemasaran Salesforce yang valid.
+ `PARTITION_BY`(String) - (Diperlukan) Digunakan untuk Baca. Jenis partisi yang akan dilakukan. “FIELD” harus diteruskan jika terjadi partisi berbasis lapangan.
+ `TRANSFER_MODE`(String) - (Opsional), Nilai yang akan digunakan untuk menjalankan pekerjaan dalam mode ASYNC, jika opsi ini tidak diberikan pekerjaan akan berjalan dalam mode SYNC.

# Keterbatasan dan catatan untuk konektor Keterlibatan Akun Cloud Pemasaran Salesforce
<a name="salesforce-marketing-cloud-account-engagement-connector-limitations"></a>

Catatan dan batasan berikut berlaku:
+ Ketika batas dan partisi diterapkan, batas lebih diutamakan daripada partisi.
+ Sesuai dengan Dokumen API, `SalesforceMarketingCloudEngagement` diberlakukan RateLimit pada permintaan harian dan bersamaan. Untuk informasi selengkapnya, lihat [Batas Tarif](https://developer.salesforce.com/docs/marketing/pardot/guide/overview.html?q=limitation#rate-limits).
+ API Ekspor tunduk pada batas panggilan API Keterlibatan Akun harian dan batas panggilan API Keterlibatan Akun bersamaan untuk akun Anda.
+ Mirip dengan antrian, panggilan Export/Async API dijalankan secara berurutan untuk setiap akun. Ekspor yang lebih tua diproses sebelum ekspor yang lebih baru.
+ Partisi tidak didukung dalam mode Async.
+ Jumlah bidang yang dipilih yang ditentukan dalam panggilan Export/Async API tidak boleh melebihi 150.
+ Entitas **Prospect** mendukung lebih dari 150 bidang, tetapi hanya 150 bidang yang dapat dipilih sekaligus. Jika `Select All` dipilih, beberapa bidang akan dikecualikan. Untuk mengambil data untuk bidang yang dikecualikan ini, Anda harus memasukkannya ke dalam `Selected Fields` opsi.

  Berikut ini adalah daftar bidang yang dikecualikan di `SELECT_ALL` - `updatedBy.firstName``updatedBy.lastName`,`updatedBy.jobTitle`,`updatedBy.roleName`,`updatedBy.salesforceId`,`updatedBy.createdAt`,`updatedBy.updatedAt`,`updatedBy.isDeleted`,`updatedBy.createdById`,`updatedBy.updatedById`, `updatedBy.tagReplacementLanguage`
+ Kolom koleksi tidak dapat diekspor untuk Async. Misalnya, pada Daftar Email, `replyToOptions` bidang `senderOptions` dan tidak didukung.
+ Untuk semua entitas, filter adalah wajib. Jika tidak ada filter yang disediakan, predikat filter default diatur ke `Created After` bidang dengan nilai tanggal-waktu saat ini (disesuaikan dengan zona waktu Anda) dikurangi satu tahun.
+ Sesuai batasan Keterlibatan Akun Cloud Pemasaran Salesforce, di Async, rentang maksimum untuk mengambil data adalah 1 tahun. Jika kueri disediakan selama lebih dari 1 tahun, pekerjaan akan menimbulkan kesalahan. 
+ Saat ini, ada bug di Salesforce Pardot. Ketika pekerjaan hanya mencakup satu bidang yang tidak memiliki data apa pun, nilai bidang tidak mengembalikan hasil yang benar dan sebagai gantinya, nama bidang dikembalikan beberapa kali. Tim Salesforce Pardot menyadari masalah ini dan secara aktif mengerjakan resolusi.

# Menyambung ke SAP HANA di AWS Glue Studio
<a name="connecting-to-data-saphana"></a>

 AWS Gluemenyediakan dukungan bawaan untuk SAP HANA. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke SAP HANA, pekerjaan integrasi data penulis, dan menjalankannya pada runtime Spark AWS Glue Studio tanpa server. 

 AWS Glue Studio membuat koneksi terpadu untuk SAP HANA. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Membuat koneksi SAP HANA](creating-saphana-connection.md)
+ [Membuat node sumber SAP HANA](creating-saphana-source-node.md)
+ [Membuat node target SAP HANA](creating-saphana-target-node.md)
+ [Opsi lanjutan](#creating-saphana-connection-advanced-options)

# Membuat koneksi SAP HANA
<a name="creating-saphana-connection"></a>

Untuk terhubung ke SAP HANA dari AWS Glue, Anda harus membuat dan menyimpan kredensi SAP HANA Anda secara AWS Secrets Manager rahasia, kemudian mengaitkan rahasia itu dengan koneksi SAP HANA. AWS Glue Anda perlu mengkonfigurasi konektivitas jaringan antara layanan SAP HANA Anda dan AWS Glue.

**Prasyarat**:
+ Jika layanan SAP HANA Anda berada di VPC Amazon, konfigurasikan Amazon VPC untuk memungkinkan pekerjaan AWS Glue Anda berkomunikasi dengan layanan SAP HANA tanpa lalu lintas melintasi internet publik.

  Di Amazon VPC, identifikasi atau buat **grup **VPC**, **Subnet**, dan Keamanan** yang AWS Glue akan digunakan saat menjalankan pekerjaan. Selain itu, Anda perlu memastikan Amazon VPC dikonfigurasi untuk mengizinkan lalu lintas jaringan antara titik akhir SAP HANA Anda dan lokasi ini. Pekerjaan Anda perlu membuat koneksi TCP dengan port SAP HANA JDBC Anda. Untuk informasi selengkapnya tentang port SAP HANA, lihat dokumentasi [SAP HANA](https://help.sap.com/docs/HANA_SMART_DATA_INTEGRATION/7952ef28a6914997abc01745fef1b607/88e2e8bded9e4041ad3ad87dc46c7b55.html?locale=en-US). Berdasarkan tata letak jaringan Anda, ini mungkin memerlukan perubahan pada aturan grup keamanan, Jaringan, Gateway NAT ACLs, dan koneksi Peering.

**Untuk mengkonfigurasi koneksi ke SAP HANA:**

1. Di AWS Secrets Manager, buat rahasia menggunakan kredensi SAP HANA Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `username/USERNAME` dengan nilainya. *saphanaUsername*
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `password/PASSWORD` dengan nilainya. *saphanaPassword*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk penggunaan masa depan di AWS Glue. 
   + Saat memilih **jenis Koneksi**, pilih SAP HANA.
   + Saat memberikan **URL SAP HANA**, berikan URL untuk instance Anda.

     SAP HANA JDBC URLs ada dalam bentuk `jdbc:sap://saphanaHostname:saphanaPort/?databaseName=saphanaDBname,ParameterName=ParameterValue`

     AWS Glue memerlukan parameter URL JDBC berikut: 
     + `databaseName`— Database default di SAP HANA untuk terhubung ke.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

Setelah membuat koneksi AWS Glue SAP HANA, Anda harus melakukan langkah-langkah berikut sebelum menjalankan AWS Glue pekerjaan Anda:
+ Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca*secretName*.

# Membuat node sumber SAP HANA
<a name="creating-saphana-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-saphana-source-node-prerequisites"></a>
+ Koneksi AWS Glue SAP HANA, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,[Membuat koneksi SAP HANA](creating-saphana-connection.md).
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel SAP HANA yang ingin Anda baca,*tableName*, atau kueri*targetQuery*.

  Sebuah tabel dapat ditentukan dengan nama tabel SAP HANA dan nama skema, dalam formulir. `schemaName.tableName` Nama skema dan pemisah “.” tidak diperlukan jika tabel dalam skema default, “publik”. Panggil ini*tableIdentifier*. Perhatikan bahwa database disediakan sebagai parameter URL JDBC di. `connectionName`

## Menambahkan sumber data SAP HANA
<a name="creating-saphana-source-node-add"></a>

**Untuk menambahkan **sumber Data — SAP HANA** node:**

1.  Pilih koneksi untuk sumber data SAP HANA Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi SAP HANA**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi SAP HANA](creating-saphana-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1.  Pilih opsi **Sumber SAP HANA**: 
   +  **Pilih satu tabel** — akses semua data dari satu tabel. 
   +  **Masukkan kueri kustom** — akses kumpulan data dari beberapa tabel berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, masukkan*tableName*. 

    Jika Anda memilih **Masukkan kueri kustom**, masukkan kueri SQL SELECT. 

1.  Di **properti Custom SAP HANA**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat node target SAP HANA
<a name="creating-saphana-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-saphana-target-node-prerequisites"></a>
+ Koneksi AWS Glue SAP HANA, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,[Membuat koneksi SAP HANA](creating-saphana-connection.md).
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Meja SAP HANA yang ingin Anda tulis,*tableName*.

  Sebuah tabel dapat ditentukan dengan nama tabel SAP HANA dan nama skema, dalam formulir. `schemaName.tableName` Nama skema dan pemisah “.” tidak diperlukan jika tabel dalam skema default, “publik”. Panggil ini*tableIdentifier*. Perhatikan bahwa database disediakan sebagai parameter URL JDBC di. `connectionName`

## Menambahkan target data SAP HANA
<a name="creating-saphana-target-node-add"></a>

**Untuk menambahkan **target Data — SAP HANA** node:**

1.  Pilih koneksi untuk sumber data SAP HANA Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi SAP HANA**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi SAP HANA](creating-saphana-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Konfigurasikan **nama Tabel** dengan menyediakan*tableName*.

1.  Di **properti Custom Teradata**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-saphana-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat node SAP HANA. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Koneksi SAP HANA](aws-glue-programming-etl-connect-saphana-home.md). 

# Menghubungkan ke SAP OData
<a name="connecting-to-data-sap-odata"></a>

SAP OData adalah protokol Web standar yang digunakan untuk query dan memperbarui data yang ada di SAP menggunakan ABAP (Advanced Business Application Programming), menerapkan dan membangun teknologi Web seperti HTTP untuk menyediakan akses ke informasi dari berbagai aplikasi eksternal, platform dan perangkat. Dengan produk ini, Anda dapat mengakses semua yang Anda butuhkan untuk membantu Anda mengintegrasikan dengan mulus dengan sistem, aplikasi, atau data SAP Anda.

**Topics**
+ [AWS Glue Dukungan untuk SAP OData](sap-odata-support.md)
+ [Buat koneksi](sap-odata-creating-connections.md)
+ [Membuat pekerjaan SAP OData](sap-odata-creating-job.md)
+ [Menulis ke SAP OData](sap-odata-writing.md)
+ [Menggunakan skrip manajemen OData status SAP](sap-odata-state-management-script.md)
+ [Partisi untuk entitas Non ODP](sap-odata-non-odp-entities-partitioning.md)
+ [Opsi OData koneksi SAP](sap-odata-connection-options.md)
+ [OData Entitas SAP dan detail bidang](sap-odata-entity-field-details.md)

# AWS Glue Dukungan untuk SAP OData
<a name="sap-odata-support"></a>

AWS Glue mendukung SAP OData sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari SAP OData.

**Didukung sebagai target?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menulis catatan ke SAP OData.

**Versi SAP OData API yang didukung**  
Versi SAP OData API berikut didukung:
+ 2.0

**Sumber yang didukung**  
Sumber-sumber berikut didukung:
+ Sumber ODP (Penyediaan Data Operasional):
  + Ekstraktor BW () DataSources
  + Tampilan CDS
  + SLT
+ Sumber non-ODP, misalnya:
  + CDS Lihat Layanan
  + Layanan Berbasis RFC
  + Layanan ABAP Kustom

**Komponen SAP yang Didukung**  
Berikut ini adalah persyaratan minimum:
+ Anda harus mengaktifkan layanan katalog untuk penemuan layanan.
  + Konfigurasikan sumber data penyediaan data operasional (ODP) untuk ekstraksi di SAP Gateway sistem SAP Anda.
  + **OData V2.0**: Aktifkan layanan katalog OData V2.0 di SAP Gateway Anda melalui transaksi. `/IWFND/MAINT_SERVICE`
  + Aktifkan layanan OData V2.0 di SAP Gateway Anda melalui transaksi. `/IWFND/MAINT_SERVICE`
  +  OData Layanan SAP Anda harus mendukung pagination/query opsi sisi klien seperti `$top` dan`$skip`. Itu juga harus mendukung opsi kueri sistem`$count`.
  + Anda harus memberikan otorisasi yang diperlukan bagi pengguna di SAP untuk menemukan layanan dan mengekstrak data menggunakan layanan SAP OData . Lihat dokumentasi keamanan yang disediakan oleh SAP.
+ Jika Anda ingin menggunakan OAuth 2.0 sebagai mekanisme otorisasi, Anda harus mengaktifkan OAuth 2.0 untuk OData layanan dan mendaftarkan OAuth klien per dokumentasi SAP.
+ Untuk menghasilkan OData layanan berdasarkan sumber data ODP, SAP Gateway Foundation harus diinstal secara lokal di ERP/BW tumpukan Anda atau dalam konfigurasi hub.
  + Untuk ERP/BW aplikasi Anda, tumpukan SAP NetWeaver AS ABAP harus pada 7,50 SP02 atau lebih tinggi.
  + Untuk sistem hub (SAP Gateway), SAP NetWeaver AS ABAP dari sistem hub harus 7,50 SP01 atau lebih tinggi untuk pengaturan hub jarak jauh.
+ Untuk sumber non-ODP, versi NetWeaver stack SAP Anda harus 7.40 SP02 atau lebih tinggi.

**Metode Otentikasi yang Didukung**  
Metode otentikasi berikut didukung:
+ Otentikasi Dasar
+ OAuth 2.0

# Prasyarat
<a name="sap-odata-prerequisites"></a>

Sebelum memulai AWS Glue pekerjaan untuk ekstraksi data dari SAP OData menggunakan OData koneksi SAP, selesaikan prasyarat berikut:
+  OData Layanan SAP yang relevan harus diaktifkan dalam sistem SAP, memastikan sumber data tersedia untuk dikonsumsi. Jika OData layanan tidak diaktifkan, pekerjaan Glue tidak akan dapat mengakses atau mengekstrak data dari SAP.
+ Mekanisme otentikasi yang tepat seperti otentikasi dasar (kustom) atau OAuth 2.0 harus dikonfigurasi dalam SAP untuk memastikan bahwa AWS Glue pekerjaan tersebut dapat berhasil membuat koneksi dengan layanan SAP. OData 
+ Konfigurasikan kebijakan IAM untuk memberikan izin AWS Glue pekerjaan yang sesuai untuk mengakses SAP, Secrets Manager, dan AWS sumber daya lain yang terlibat dalam proses tersebut.
+ Jika sistem SAP di-host dalam jaringan pribadi, konektivitas VPC harus dikonfigurasi untuk memastikan bahwa AWS Glue pekerjaan dapat berkomunikasi dengan aman dengan SAP tanpa mengekspos data sensitif melalui internet publik.

AWS Secrets Manager dapat digunakan untuk menyimpan informasi sensitif dengan aman seperti kredensi SAP, yang AWS Glue pekerjaan dapat diambil secara dinamis saat runtime. Pendekatan ini menghilangkan kebutuhan akan kredensi kode keras, meningkatkan keamanan dan fleksibilitas.

Prasyarat berikut memberikan step-by-step panduan tentang cara mengatur setiap komponen untuk kelancaran integrasi antara dan SAP. AWS Glue OData

**Topics**
+ [Aktivasi SAP OData](sap-odata-activation.md)
+ [Kebijakan IAM](sap-odata-configuring-iam-permissions.md)
+ [Konektivitas/Koneksi VPC](sap-odata-connectivity-vpc-connection.md)
+ [Otentikasi SAP](sap-odata-authentication.md)
+ [AWS Secrets Manager untuk menyimpan rahasia Auth Anda](sap-odata-aws-secret-manager-auth-secret.md)

# Aktivasi SAP OData
<a name="sap-odata-activation"></a>

Selesaikan langkah-langkah berikut untuk OData koneksi SAP:

## Sumber ODP
<a name="sap-odata-odp-sources"></a>

Sebelum Anda dapat mentransfer data dari penyedia ODP, Anda harus memenuhi persyaratan berikut:
+ Anda memiliki instance SAP NetWeaver AS ABAP.
+  NetWeaver Instans SAP Anda berisi penyedia ODP yang ingin Anda transfer datanya. Penyedia ODP meliputi:
  + SAP DataSources (Kode RSO2 transaksi)
  + Layanan Data Inti SAP Tampilan CDS ABAP
  + Sistem SAP BW atau SAP BW/4HANA (, Objek) InfoObject DataStore 
  + Replikasi Tabel dan tampilan DB secara real-time dari Sistem Sumber SAP melalui SAP Landscape Replication Server (SAP SLT)
  + Tampilan Informasi SAP HANA di Sumber berbasis SAP ABAP
+  NetWeaver Instans SAP Anda memiliki komponen SAP Gateway Foundation.
+ Anda telah membuat OData layanan yang mengekstrak data dari penyedia ODP Anda. Untuk membuat OData layanan, Anda menggunakan SAP Gateway Service Builder. Untuk mengakses data ODP Anda, Amazon AppFlow memanggil layanan ini dengan menggunakan OData API. Untuk informasi selengkapnya, lihat [Menghasilkan Layanan untuk Mengekstrak Data ODP melalui OData dokumentasi](https://help.sap.com/docs/SAP_BPC_VERSION_BW4HANA/dd104a87ab9249968e6279e61378ff66/69b481859ef34bab9cc7d449e6fff7b6.html?version=11.0) SAP BW/4HANA.
+ Untuk menghasilkan OData layanan berdasarkan sumber data ODP, SAP Gateway Foundation harus diinstal secara lokal di ERP/BW tumpukan Anda atau dalam konfigurasi hub.
  + Untuk ERP/BW aplikasi Anda, tumpukan SAP NetWeaver AS ABAP harus pada 7,50 SP02 atau lebih tinggi.
  + Untuk sistem hub (SAP Gateway), SAP NetWeaver AS ABAP dari sistem hub harus 7,50 SP01 atau lebih tinggi untuk pengaturan hub jarak jauh.

## Sumber Non-ODP
<a name="sap-odata-non-odp-sources"></a>
+ Versi SAP NetWeaver stack Anda harus 7.40 SP02 atau lebih tinggi.
+ Anda harus mengaktifkan layanan katalog untuk penemuan layanan.
  + **OData V2.0**: Layanan katalog OData V2.0 dapat diaktifkan di SAP Gateway Anda melalui transaksi `/IWFND/MAINT_SERVICE`
+  OData Layanan SAP Anda harus mendukung pagination/query opsi sisi klien seperti `$top` dan`$skip`. Itu juga harus mendukung opsi kueri sistem`$count`.
+ Untuk OAuth 2.0, Anda harus mengaktifkan OAuth 2.0 untuk OData layanan dan mendaftarkan OAuth klien per dokumentasi SAP dan mengatur URL pengalihan resmi sebagai berikut:
  + `https://<region>.console.aws.amazon.com/gluestudio/oauth`, mengganti `<region>` dengan wilayah tempat AWS Glue berjalan, contoh: us-east-1. 
  + Anda harus mengaktifkan pengaturan aman untuk menghubungkan melalui HTTPS.
+ Anda harus memberikan otorisasi yang diperlukan bagi pengguna di SAP untuk menemukan layanan dan mengekstrak data menggunakan layanan SAP OData . Silakan merujuk ke dokumentasi keamanan yang disediakan oleh SAP.

# Kebijakan IAM
<a name="sap-odata-configuring-iam-permissions"></a>

## Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="sap-odata-policies-api-operations"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutSecretValue"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Peran harus memberikan akses ke semua sumber daya yang digunakan oleh pekerjaan, misalnya Amazon S3. Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut.
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.
+ [SecretsManagerReadWrite](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecretsManagerReadWrite)— Menyediakan read/write akses ke AWS Secrets Manager melalui AWS Management Console. Catatan: ini tidak termasuk tindakan IAM, jadi gabungkan dengan `IAMFullAccess` jika konfigurasi rotasi diperlukan.

**IAM Policies/Permissions diperlukan untuk mengkonfigurasi VPC**

Izin IAM berikut diperlukan saat menggunakan koneksi VPC untuk membuat Koneksi. AWS Glue Untuk detail selengkapnya, lihat [membuat kebijakan IAM untuk AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeNetworkInterfaces"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

# Konektivitas/Koneksi VPC
<a name="sap-odata-connectivity-vpc-connection"></a>

Langkah-langkah untuk Koneksi VPC:

1. Gunakan koneksi VPC yang ada atau buat koneksi baru dengan mengikuti dokumentasi Amazon [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).

1. Pastikan Anda memiliki NAT Gateway yang mengarahkan lalu lintas ke internet.

1. Pilih titik akhir VPC sebagai Amazon S3 Gateway untuk membuat koneksi.

1. Aktifkan resolusi DNS dan nama host DNS untuk menggunakan Layanan DNS yang AWS disediakan.

1. Buka VPC yang dibuat dan tambahkan titik akhir yang diperlukan untuk berbagai layanan seperti STS, AWS Glue, Manajer Rahasia.

   1. Pilih Buat Titik Akhir.

   1. Untuk Kategori Layanan, pilih AWS Layanan.

   1. Untuk Nama Layanan, pilih layanan yang Anda sambungkan.

   1. Pilih VPC dan Aktifkan Nama DNS.

   1. Titik Akhir VCP diperlukan untuk koneksi VPC:

      1. [STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sts_vpc_endpoint_create.html)

      1. [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/vpc-interface-endpoints.html)

      1. [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)

## Konfigurasi Grup Keamanan
<a name="sap-odata-security-group-configuration"></a>

Grup keamanan harus mengizinkan lalu lintas ke port pendengarnya dari AWS Glue VPC AWS Glue agar dapat terhubung dengannya. Ini adalah praktik yang baik untuk membatasi jangkauan alamat IP sumber sebanyak mungkin. 

AWS Glue membutuhkan kelompok keamanan khusus yang memungkinkan semua lalu lintas masuk dari dirinya sendiri. Anda dapat membuat aturan referensi diri yang memungkinkan semua lalu lintas yang berasal dari grup keamanan. Anda dapat memodifikasi grup keamanan yang ada dan menentukan grup keamanan sebagai sumber.

Buka komunikasi dari port HTTPS dari endpoint URL (baik NLB atau SAP instance).

## Opsi konektivitas
<a name="sap-odata-connectivity-options"></a>
+ Koneksi HTTPS dengan NLB internal dan eksternal, sertifikat SSL dari otoritas sertifikat (CA), bukan sertifikat SSL yang ditandatangani sendiri
+ Koneksi HTTPS dengan sertifikat SSL instance SAP dari otoritas sertifikat (CA), bukan sertifikat SSL yang ditandatangani sendiri

# Otentikasi SAP
<a name="sap-odata-authentication"></a>

Konektor SAP mendukung Custom (ini adalah otentikasi SAP BASIC) dan metode otentikasi OAUTH.

## Otentikasi Kustom
<a name="sap-odata-custom-authentication"></a>

AWS Glue mendukung Custom (Basic Authentication) sebagai metode untuk membangun koneksi ke sistem SAP Anda, memungkinkan penggunaan username dan password untuk akses aman. Jenis autentikasi ini berfungsi dengan baik untuk skenario otomatisasi karena memungkinkan penggunaan nama pengguna dan kata sandi di depan dengan izin pengguna tertentu dalam instance SAP OData . AWS Glue dapat menggunakan nama pengguna dan kata sandi untuk mengautentikasi SAP OData APIs. Pada tahun AWS Glue, otorisasi dasar diimplementasikan sebagai otorisasi khusus.

Untuk OData dokumentasi SAP publik untuk alur Auth Dasar, lihat [HTTP Basic](https://help.sap.com/docs/SAP_SUCCESSFACTORS_PLATFORM/d599f15995d348a1b45ba5603e2aba9b/5c8bca0af1654b05a83193b2922dcee2.html) Authentication.

## OAuth 2.0 Otentikasi
<a name="sap-odata-oauth-2.0-authentication"></a>

AWS Glue juga mendukung OAuth 2.0 sebagai mekanisme otentikasi aman untuk membangun koneksi ke sistem SAP Anda. Ini memungkinkan integrasi tanpa batas sambil memastikan kepatuhan dengan standar otentikasi modern dan meningkatkan keamanan akses data.

## Jenis Hibah AUTHORIZATION\$1CODE
<a name="sap-odata-authentication-code-grant-type"></a>

Jenis hibah menentukan cara AWS Glue berkomunikasi dengan SAP OData untuk meminta akses ke data Anda. SAP hanya OData mendukung jenis `AUTHORIZATION_CODE` hibah. Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. 

Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di SAP OData dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke SAP untuk masuk dan memberi wewenang OData AWS Glue untuk mengakses sumber daya mereka.

Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.

Untuk OData dokumentasi SAP publik tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Autentikasi](https://help.sap.com/docs/ABAP_PLATFORM_NEW/e815bb97839a4d83be6c4fca48ee5777/2e5104fd87ff452b9acb247bd02b9f9e.html) Menggunakan 2.0. OAuth 

# AWS Secrets Manager untuk menyimpan rahasia Auth Anda
<a name="sap-odata-aws-secret-manager-auth-secret"></a>

Anda harus menyimpan rahasia OData koneksi SAP di AWS Secrets Manager, mengkonfigurasi izin yang diperlukan untuk pengambilan seperti yang ditentukan di [Kebijakan IAM](sap-odata-configuring-iam-permissions.md) bagian, dan menggunakannya saat membuat koneksi.

Gunakan AWS Management Console for AWS Secrets Manager untuk membuat rahasia untuk sumber SAP Anda. Untuk informasi selengkapnya, lihat [Membuat AWS rahasia Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Detail di AWS Secrets Manager harus menyertakan elemen dalam kode berikut. 

## Rahasia Otentikasi Kustom
<a name="sap-odata-custom-auth-secret"></a>

Anda harus memasukkan nama pengguna sistem SAP Anda sebagai pengganti** <your SAP username>dan kata sandinya menggantikan** <your SAP username password>dan Benar atau Salah. Dalam konteks ini, pengaturan `basicAuthDisableSSO` untuk `true` menonaktifkan Single Sign-On (SSO) untuk permintaan Otentikasi Dasar, yang memerlukan kredensi pengguna eksplisit untuk setiap permintaan. Sebaliknya, mengaturnya untuk `false` memungkinkan penggunaan sesi SSO yang ada jika tersedia.

```
{
   "basicAuthUsername": "<your SAP username>",
   "basicAuthPassword": "<your SAP username password>",
   "basicAuthDisableSSO": "<True/False>",
   "customAuthenticationType": "CustomBasicAuth"
}
```

## OAuth 2.0 Rahasia
<a name="sap-odata-oauth-2.0-secret"></a>

Jika Anda menggunakan OAuth 2.0 sebagai mekanisme otentikasi Anda, rahasia di AWS Secrets Manager harus memiliki **User Managed Client Application ClientId** dalam format berikut. <your client secret>Anda harus memasukkan rahasia klien SAP Anda sebagai pengganti.

```
{"USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<your client secret>"
}
```

# Buat koneksi
<a name="sap-odata-creating-connections"></a>

Untuk mengkonfigurasi OData koneksi SAP:

1. Masuk ke Konsol AWS Manajemen dan buka [AWS Glue konsol](https://console.aws.amazon.com/glue). Di AWS Glue Studio, buat koneksi dengan mengikuti langkah-langkah di bawah ini:

   1. Klik Koneksi data di panel kiri.

   1. Klik Buat koneksi.

   1. Pilih **SAP OData** di **Pilih sumber data**

   1. Berikan **URL host Aplikasi** dari OData instance SAP yang ingin Anda sambungkan. URL host aplikasi ini harus dapat diakses melalui internet publik untuk koneksi non VPC.

   1. Sediakan **jalur layanan Aplikasi** dari OData instance SAP yang ingin Anda sambungkan. Ini sama dengan jalur layanan katalog. Misalnya:`/sap/opu/odata/iwfnd/catalogservice;v=2`. AWS Glue tidak menerima jalur objek tertentu.

   1. Berikan **nomor Klien** dari OData instans SAP yang ingin Anda sambungkan. Nilai yang dapat diterima adalah [001-999]. Contoh: 010

   1. Berikan **nomor Port** dari OData instans SAP yang ingin Anda sambungkan. Contoh: 443

   1. Berikan **bahasa Logon** dari OData instance SAP yang ingin Anda sambungkan. Contoh: EN

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin seperti yang diuraikan di bagian. [Kebijakan IAM](sap-odata-configuring-iam-permissions.md)

   1. Pilih **Jenis Otentikasi** yang ingin Anda gunakan untuk koneksi ini AWS Glue dari daftar dropdown: atau CUSTOM OAUTH2 

      1. KUSTOM - Pilih rahasia yang Anda buat seperti yang ditentukan di [AWS Secrets Manager untuk menyimpan rahasia Auth Anda](sap-odata-aws-secret-manager-auth-secret.md) bagian.

      1. OAUTH 2.0 - masukkan input berikut hanya dalam kasus 2.0: OAuth 

         1. Di bawah **Aplikasi Klien yang Dikelola Pengguna ClientId**, masukkan id klien Anda.

         1. `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`(rahasia klien Anda) di AWS Secrets Manager yang Anda buat di [AWS Secrets Manager untuk menyimpan rahasia Auth Anda](sap-odata-aws-secret-manager-auth-secret.md) bagian ini.

         1. Di bawah **URL Kode Otorisasi, masukkan URL** kode otorisasi Anda.

         1. Di bawah **URL Token Otorisasi, masukkan URL** token otorisasi Anda.

         1. Di bawah **OAuth Lingkup**, masukkan OAuth cakupan Anda yang dipisahkan oleh spasi. Contoh: `/IWFND/SG_MED_CATALOG_0002 ZAPI_SALES_ORDER_SRV_0001`

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. Untuk detail selengkapnya, lihat [Konektivitas/Koneksi VPC](sap-odata-connectivity-vpc-connection.md).

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. Untuk detail selengkapnya, lihat [Kebijakan IAM](sap-odata-configuring-iam-permissions.md).

1. Pilih **Uji koneksi** dan uji koneksi Anda. Jika tes koneksi lulus, klik berikutnya, masukkan nama koneksi Anda dan simpan koneksi Anda. Fungsionalitas koneksi uji tidak tersedia jika Anda telah memilih opsi Jaringan (VPC). 

# Membuat pekerjaan SAP OData
<a name="sap-odata-creating-job"></a>

Lihat [Membangun pekerjaan ETL visual dengan Studio AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html)

# Sumber Penyediaan Data Operasional (ODP)
<a name="sap-odata-operational-data-provisioning-sources"></a>

Operational Data Provisioning (ODP) menyediakan infrastruktur teknis yang dapat Anda gunakan untuk mendukung ekstraksi dan replikasi data untuk berbagai aplikasi target dan mendukung mekanisme delta dalam skenario ini. Dalam kasus prosedur delta, data dari sumber (Penyedia ODP) secara otomatis ditulis ke antrian delta (Operational Delta Queue — ODQ) menggunakan proses pembaruan atau diteruskan ke antrian delta menggunakan antarmuka ekstraktor. Penyedia ODP dapat berupa DataSource (extractors), ABAP Core Data Services Views (ABAP CDS Views), SAP BW atau SAP BW/4HANA, SAP Landscape Transformation Replication Server (SLT), dan Tampilan Informasi SAP HANA (tampilan perhitungan). Aplikasi target (disebut sebagai 'pelanggan' ODQ atau lebih umum “Konsumen ODP”) mengambil data dari antrian delta dan melanjutkan pemrosesan data.

## Beban penuh
<a name="sap-odata-full-load"></a>

Dalam konteks entitas SAP OData dan ODP, **Full Load** mengacu pada proses ekstraksi semua data yang tersedia dari entitas ODP dalam satu operasi. Operasi ini mengambil dataset lengkap dari sistem sumber, memastikan bahwa sistem target memiliki up-to-date salinan data entitas yang komprehensif. Beban penuh biasanya digunakan untuk sumber yang tidak mendukung beban tambahan atau ketika penyegaran sistem target diperlukan.

**Contoh**

Anda dapat secara eksplisit mengatur `ENABLE_CDC` bendera ke false, saat membuat. DynamicFrame Catatan: false `ENABLE_CDC` secara default, jika Anda tidak ingin menginisialisasi antrian delta, Anda tidak perlu mengirim bendera ini atau mengaturnya ke true. Tidak menyetel flag ini ke true akan menghasilkan ekstraksi beban penuh.

```
sapodata_df = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "ENABLE_CDC": "false"
    }, transformation_ctx=key)
```

## Beban tambahan
<a name="sap-odata-incremental-load"></a>

**Beban tambahan** dalam konteks entitas ODP (Operational Data Provisioning) melibatkan penggalian hanya data baru atau yang diubah (delta) dari sistem sumber sejak ekstraksi data terakhir, menghindari pra-pemrosesan catatan yang sudah diproses. Pendekatan ini secara signifikan meningkatkan efisiensi, mengurangi volume transfer data, meningkatkan kinerja, memastikan sinkronisasi yang efisien antar sistem, dan meminimalkan waktu pemrosesan, terutama untuk kumpulan data besar yang sering berubah.

# Transfer Inkremental berbasis Delta Token
<a name="sap-odata-incremental-transfers"></a>

Untuk mengaktifkan Transfer Inkremental menggunakan Change Data Capture (CDC) untuk entitas berkemampuan ODP yang mendukungnya, ikuti langkah-langkah berikut:

1. Buat pekerjaan Transfer Inkremental dalam mode skrip.

1. Saat membuat DataFrame or Glue DynamicFrame, Anda harus melewati opsi`"ENABLE_CDC": "True"`. Opsi ini memastikan bahwa Anda akan menerima Token Delta dari SAP, yang dapat digunakan untuk pengambilan data yang diubah selanjutnya.

Token delta akan hadir di baris terakhir kerangka data, di kolom DELTA\$1TOKEN. Token ini dapat digunakan sebagai opsi konektor dalam panggilan berikutnya untuk mengambil kumpulan data berikutnya secara bertahap.

**Contoh**
+ Kami mengatur `ENABLE_CDC` bendera ke`true`, saat membuat DynamicFrame. Catatan: `ENABLE_CDC` secara `false` default, jika Anda tidak ingin menginisialisasi antrian delta, Anda tidak perlu mengirim bendera ini atau mengaturnya ke true. Tidak menyetel flag ini ke true akan menghasilkan ekstraksi beban penuh.

  ```
  sapodata_df = glueContext.create_dynamic_frame.from_options(
      connection_type="SAPOData",
      connection_options={
          "connectionName": "connectionName",
          "ENTITY_NAME": "entityName",
          "ENABLE_CDC": "true"
      }, transformation_ctx=key)
  
  # Extract the delta token from the last row of the DELTA_TOKEN column
  delta_token_1 = your_logic_to_extract_delta_token(sapodata_df) # e.g., D20241029164449_000370000
  ```
+ Token delta yang diekstraksi dapat diteruskan sebagai opsi untuk mengambil peristiwa baru.

  ```
  sapodata_df_2 = glueContext.create_dynamic_frame.from_options(
      connection_type="SAPOData",
      connection_options={
          "connectionName": "connectionName",
          "ENTITY_NAME": "entityName",
          // passing the delta token retrieved in the last run
          "DELTA_TOKEN": delta_token_1
      } , transformation_ctx=key)
  
  # Extract the new delta token for the next run
  delta_token_2 = your_logic_to_extract_delta_token(sapodata_df_2)
  ```

Perhatikan bahwa catatan terakhir, di mana `DELTA_TOKEN` ada, bukan catatan transaksional dari sumber, dan hanya ada untuk tujuan meneruskan nilai token delta.

Terlepas dari`DELTA_TOKEN`, bidang berikut dikembalikan di setiap baris kerangka data. 
+ **GLUE\$1FETCH\$1SQ**: Ini adalah bidang urutan, yang dihasilkan dari stempel waktu EPOC dalam urutan catatan diterima, dan unik untuk setiap catatan. Ini dapat digunakan jika Anda perlu mengetahui atau menetapkan urutan perubahan dalam sistem sumber. Bidang ini hanya akan hadir untuk entitas yang diaktifkan ODP.
+ **DML\$1STATUS**: Ini akan ditampilkan `UPDATED` untuk semua catatan yang baru dimasukkan dan diperbarui dari sumber, dan `DELETED` untuk catatan yang telah dihapus dari sumber.

Untuk detail selengkapnya tentang cara mengelola status dan menggunakan kembali token delta untuk mengambil catatan yang diubah melalui contoh, lihat bagian tersebut. [Menggunakan skrip manajemen OData status SAP](sap-odata-state-management-script.md)

## Pembatalan Token Delta
<a name="sap-odata-invalidation"></a>

Token delta dikaitkan dengan koleksi layanan dan pengguna. Jika penarikan awal baru dimulai untuk koleksi layanan yang sama dan pengguna, semua token delta sebelumnya yang dikeluarkan sebagai hasil dari inisialisasi sebelumnya akan dibatalkan oleh layanan SAP. `“ENABLE_CDC” : “true”` OData Memanggil konektor dengan token delta yang kedaluwarsa akan menghasilkan pengecualian: 

`Could not open data access via extraction API RODPS_REPL_ODP_OPEN` 

# OData Layanan (Sumber Non-ODP)
<a name="sap-odata-non-odp-services"></a>

## Beban penuh
<a name="sap-odata-non-odp-full-load"></a>

Untuk sistem non-ODP (Operational Data Provisioning), **Full Load** melibatkan ekstraksi seluruh dataset dari sistem sumber dan memuatnya ke dalam sistem target. Karena sistem non-ODP tidak secara inheren mendukung mekanisme ekstraksi data canggih seperti delta, prosesnya mudah tetapi dapat intensif sumber daya tergantung pada ukuran data.

## Beban tambahan
<a name="sap-odata-non-odp-incremental-load"></a>

Untuk sistem atau entitas yang tidak mendukung **ODP (Operational Data Provisioning)**, transfer data inkremental dapat dikelola secara manual dengan menerapkan mekanisme berbasis stempel waktu untuk melacak dan mengekstrak perubahan.

**Transfer Inkremental Berbasis Timestamp**

Untuk entitas berkemampuan non-ODP (atau untuk entitas yang diaktifkan ODP yang tidak menggunakan flag ENABLE\$1CDC), kita dapat menggunakan `filteringExpression` opsi di konektor untuk menunjukkan `datetime` interval yang ingin kita ambil data. Metode ini bergantung pada bidang stempel waktu dalam data Anda yang mewakili kapan setiap catatan terakhir dibuat/dimodifikasi.

**Contoh**

Mengambil catatan yang berubah setelah 2024-01-01T 00:00:00.000

```
sapodata_df = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "filteringExpression": "LastChangeDateTime >= 2024-01-01T00:00:00.000"
    }, transformation_ctx=key)
```

Catatan: Dalam contoh ini, `LastChangeDateTime` adalah bidang yang mewakili kapan setiap rekaman terakhir diubah. Nama bidang yang sebenarnya dapat bervariasi tergantung pada OData entitas SAP spesifik Anda.

Untuk mendapatkan subset data baru dalam proses berikutnya, Anda akan memperbarui `filteringExpression` dengan stempel waktu baru. Biasanya, ini akan menjadi nilai stempel waktu maksimum dari data yang diambil sebelumnya.

**Contoh**

```
max_timestamp = get_max_timestamp(sapodata_df)  # Function to get the max timestamp from the previous run
next_filtering_expression = f"LastChangeDateTime > {max_timestamp}"

# Use this next_filtering_expression in your next run
```

Di bagian selanjutnya, kami akan memberikan pendekatan otomatis untuk mengelola transfer inkremental berbasis stempel waktu ini, menghilangkan kebutuhan untuk memperbarui ekspresi pemfilteran secara manual di antara proses.

# Menulis ke SAP OData
<a name="sap-odata-writing"></a>

 Bagian ini menjelaskan cara menulis data ke OData Layanan SAP Anda menggunakan AWS Glue konektor untuk SAP OData. 

**Prasyarat**
+ Akses ke layanan SAP OData 
+  OData EntitySet Objek SAP yang ingin Anda tulis. Anda akan membutuhkan nama Object.
+  OData Kredensi SAP yang valid dan koneksi yang valid
+ Izin yang sesuai seperti yang dijelaskan dalam kebijakan [IAM](https://docs.aws.amazon.com/glue/latest/dg/sap-odata-configuring-iam-permissions.html)

 OData Konektor SAP mendukung dua operasi tulis:
+ INSERT
+ UPDATE

Saat menggunakan operasi tulis UPDATE, ID\$1FIELD\$1NAMES harus disediakan untuk menentukan bidang ID eksternal untuk catatan.

**Contoh:**

```
sapodata_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="sapodata",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "WRITE_OPERATION": "INSERT"
    }
```

# Menggunakan skrip manajemen OData status SAP
<a name="sap-odata-state-management-script"></a>

Untuk menggunakan skrip manajemen OData status SAP dalam AWS Glue pekerjaan Anda, ikuti langkah-langkah ini:
+ Unduh skrip manajemen negara: `s3://aws-blogs-artifacts-public/artifacts/BDB-4789/sap_odata_state_management.zip ` dari ember Amazon S3 publik.
+ Unggah skrip ke bucket Amazon S3 yang memiliki izin untuk diakses oleh AWS Glue pekerjaan Anda.
+ Referensikan skrip dalam AWS Glue pekerjaan Anda: Saat membuat atau memperbarui AWS Glue pekerjaan Anda, berikan `'--extra-py-files'` opsi yang mereferensikan jalur skrip di bucket Amazon S3 Anda. Misalnya: `--extra-py-files s3://your-bucket/path/to/sap_odata_state_management.py`
+ Impor dan gunakan pustaka manajemen negara bagian dalam skrip AWS Glue pekerjaan Anda.

## Contoh Transfer Inkremental berbasis delta-token
<a name="sap-odata-delta-token-incremental-transfer"></a>

Berikut adalah contoh cara menggunakan skrip manajemen status untuk transfer inkremental berbasis delta-token:

```
from sap_odata_state_management import StateManagerFactory, StateManagerType, StateType

# Initialize the state manager
state_manager = StateManagerFactory.create_manager(
    manager_type=StateManagerType.JOB_TAG,
    state_type=StateType.DELTA_TOKEN,
    options={
        "job_name": args['JOB_NAME'],
        "logger": logger
    }
)

# Get connector options (including delta token if available)
key = "SAPODataNode"
connector_options = state_manager.get_connector_options(key)

# Use the connector options in your Glue job
df = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "ENABLE_CDC": "true",
        **connector_options
    }
)

# Process your data here...

# Update the state after processing
state_manager.update_state(key, sapodata_df.toDF())
```

## Contoh Transfer Inkremental berbasis stempel waktu
<a name="sap-odata-timestamp-incremental-transfer"></a>

Berikut adalah contoh cara menggunakan skrip manajemen status untuk transfer inkremental berbasis delta-token:

```
from sap_odata_state_management import StateManagerFactory, StateManagerType, StateType

# Initialize the state manager
state_manager = StateManagerFactory.create_manager(
    manager_type=StateManagerType.JOB_TAG,
    state_type=StateType.DELTA_TOKEN,
    options={
        "job_name": args['JOB_NAME'],
        "logger": logger
    }
)

# Get connector options (including delta token if available)
key = "SAPODataNode"
connector_options = state_manager.get_connector_options(key)

# Use the connector options in your Glue job
df = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "ENABLE_CDC": "true",
        **connector_options
    }
)

# Process your data here...

# Update the state after processing
state_manager.update_state(key, sapodata_df.toDF())
```

Dalam kedua contoh, skrip manajemen status menangani kompleksitas penyimpanan status (baik token delta atau stempel waktu) di antara job run. Ini secara otomatis mengambil status tahu terakhir saat mendapatkan opsi konektor dan memperbarui status setelah diproses, memastikan setiap pekerjaan berjalan hanya memproses data baru atau yang diubah.

# Partisi untuk entitas Non ODP
<a name="sap-odata-non-odp-entities-partitioning"></a>

Dalam Apache Spark, partisi mengacu pada cara data dibagi dan didistribusikan di seluruh node pekerja dalam cluster untuk pemrosesan paralel. Setiap partisi adalah potongan data logis yang dapat diproses secara independen oleh suatu tugas. Partisi adalah konsep dasar dalam Spark yang secara langsung berdampak pada kinerja, skalabilitas, dan pemanfaatan sumber daya. AWS Glue pekerjaan menggunakan mekanisme partisi Spark untuk membagi dataset menjadi potongan-potongan kecil (partisi) yang dapat diproses secara paralel di seluruh node pekerja cluster. Perhatikan bahwa partisi tidak berlaku untuk entitas ODP.

Untuk detail selengkapnya, lihat [AWS Glue Spark dan PySpark lowongan kerja](https://docs.aws.amazon.com/glue/latest/dg/spark_and_pyspark.html).

**Prasyarat**

Objek SAP OData yang ingin Anda baca. Anda akan membutuhkan object/EntitySet nama. Sebagai contoh: ` /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder `.

**Contoh**

```
sapodata_read = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder"
    }, transformation_ctx=key)
```

## Mempartisi Kueri
<a name="sap-odata-partitioning-queries"></a>

### Partisi Berbasis Lapangan
<a name="sap-odata-field-based-partitioning"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan. Integer, Tanggal dan DateTime bidang mendukung partisi berbasis lapangan di konektor SAP. OData 
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih.

   Untuk bidang apa pun yang tipe datanya DateTime, format stempel waktu Spark yang digunakan dalam kueri Spark SQL diterima.

  Contoh nilai yang valid: `"2000-01-01T00:00:00.000Z"` 
+ `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.
+ `PARTITION_BY`: jenis partisi yang akan dilakukan, `FIELD` yang akan diteruskan dalam kasus partisi berbasis Bidang.

**Contoh**

```
sapodata= glueContext.create_dynamic_frame.from_options(
    connection_type="sapodata",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet",
        "PARTITION_FIELD": "validStartDate"
        "LOWER_BOUND": "2000-01-01T00:00:00.000Z"
        "UPPER_BOUND": "2020-01-01T00:00:00.000Z"
        "NUM_PARTITIONS": "10",
        "PARTITION_BY": "FIELD"
    }, transformation_ctx=key)
```

### Partisi Berbasis Rekam
<a name="sap-odata-record-based-partitioning"></a>

Kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Partisi berbasis rekaman hanya didukung untuk entitas non-ODP, karena pagination dalam entitas ODP didukung melalui token berikutnya. token/skip 
+ `PARTITION_BY`: jenis partisi yang akan dilakukan. `COUNT`harus diteruskan dalam kasus partisi berbasis catatan.

**Contoh**

```
sapodata= glueContext.create_dynamic_frame.from_options(
    connection_type="sapodata",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet",
        "NUM_PARTITIONS": "10",
        "PARTITION_BY": "COUNT"
    }, transformation_ctx=key)
```

# Batasan/Callout
<a name="sap-odata-limitations"></a>
+ Entitas ODP tidak kompatibel dengan Partisi Berbasis Rekaman karena pagination ditangani menggunakan token lewati. token/delta Akibatnya, untuk Record Based Partitioning, nilai default untuk MaxConcurrency diatur ke “null” terlepas dari input pengguna.
+ Ketika batas dan partisi diterapkan, batas lebih diutamakan daripada partisi.

# Opsi OData koneksi SAP
<a name="sap-odata-connection-options"></a>

Berikut ini adalah opsi koneksi untuk SAP OData:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di SAP OData.

  Misalnya:/sap/opu/odata/sap/API\$1SALES\$1ORDER\$1SRV/A\$1 SalesOrder
+ `API_VERSION`(String) - (Opsional) Digunakan untuk Baca. Versi SAP OData Rest API yang ingin Anda gunakan. Contoh: 2.0.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.

  Sebagai contoh: SalesOrder
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.

  Misalnya: `SalesOrder = "10"`
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

  Misalnya: `SELECT * FROM /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder`
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.

  Misalnya: `ValidStartDate`
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.

  Misalnya: `"2000-01-01T00:00:00.000Z"`
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.

  Misalnya: `"2024-01-01T00:00:00.000Z"`
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - URL host aplikasi contoh SAP.

  Misalnya: `https://example-externaldata.sierra.aws.dev`
+ `SERVICE_PATH`(String) - Jalur layanan aplikasi contoh SAP.

  Misalnya: `/sap/opu/odata/iwfnd/catalogservice;v=2`
+ `CLIENT_NUMBER`(String) - Nomor klien aplikasi contoh SAP.

  Sebagai contoh: 100
+ `PORT_NUMBER`(String) - Default: Nomor port aplikasi contoh SAP.

  Misalnya: 443
+ `LOGON_LANGUAGE`(String) - Bahasa logon aplikasi contoh SAP.

  Misalnya: `EN`
+ `ENABLE_CDC`(String) - Mendefinisikan apakah akan menjalankan pekerjaan dengan CDC diaktifkan, yaitu, dengan perubahan trek.

  Misalnya: `True/False`
+ `DELTA_TOKEN`(String) - Menjalankan penarikan data tambahan berdasarkan Delta Token valid yang disediakan. 

  Misalnya: `D20241107043437_000463000`
+ `PAGE_SIZE`(Integer) - Mendefinisikan ukuran halaman untuk menanyakan catatan. Ukuran halaman default adalah 50.000. Ketika ukuran halaman ditentukan, SAP hanya mengembalikan jumlah catatan yang ditentukan per panggilan API, bukan seluruh kumpulan data. Konektor masih akan memberikan jumlah total catatan dan menangani pagination menggunakan ukuran halaman yang Anda tentukan. Jika Anda memerlukan ukuran halaman yang lebih besar, Anda dapat memilih nilai apa pun hingga 500.000, yang merupakan maksimum yang diizinkan. Setiap ukuran halaman yang ditentukan melebihi 500.000 akan diabaikan. Sebagai gantinya, sistem akan menggunakan ukuran halaman maksimum yang diizinkan. Anda dapat menentukan ukuran halaman di AWS Glue Studio UI dengan menambahkan opsi koneksi `PAGE_SIZE` dengan nilai yang Anda inginkan. 

  Misalnya: `20000`

# OData Entitas SAP dan detail bidang
<a name="sap-odata-entity-field-details"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/sap-odata-entity-field-details.html)

# Menghubungkan ke SendGrid
<a name="connecting-to-data-sendgrid"></a>

SendGrid adalah platform komunikasi pelanggan untuk email transaksional dan pemasaran.
+ SendGrid konektor membantu dalam membuat dan mengelola daftar kontak dan membuat kampanye pemasaran email.
+ SendGrid memungkinkan bisnis online, nirlaba, dan entitas online lainnya untuk membuat dan mengirim email pemasaran ke khalayak besar dan memantau keterlibatan dengan email tersebut.

**Topics**
+ [AWS Glue dukungan untuk SendGrid](sendgrid-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](sendgrid-configuring-iam-permissions.md)
+ [Mengkonfigurasi SendGrid](sendgrid-configuring.md)
+ [Mengkonfigurasi koneksi SendGrid](sendgrid-configuring-connections.md)
+ [Membaca dari SendGrid entitas](sendgrid-reading-from-entities.md)
+ [SendGrid opsi koneksi](sendgrid-connection-options.md)
+ [SendGrid keterbatasan](sendgrid-limitations.md)

# AWS Glue dukungan untuk SendGrid
<a name="sendgrid-support"></a>

AWS Glue mendukung SendGrid sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari SendGrid.

**Didukung sebagai target?**  
Tidak.

**Versi SendGrid API yang didukung**  
Versi SendGrid API berikut didukung:
+ v3

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="sendgrid-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi SendGrid
<a name="sendgrid-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari SendGrid, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="sendgrid-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki SendGrid akun dengan kunci API.
+  SendGrid Akun Anda memiliki akses API dengan lisensi yang valid.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke SendGrid akun Anda. Untuk koneksi yang khas, Anda tidak perlu melakukan hal lain SendGrid.

# Mengkonfigurasi koneksi SendGrid
<a name="sendgrid-configuring-connections"></a>

SendGrid mendukung otentikasi kustom.

Untuk SendGrid dokumentasi publik tentang pembuatan kunci API yang diperlukan untuk autentikasi kustom, lihat [Autentikasi](https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication).

Untuk mengkonfigurasi SendGrid koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `api_key` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih SendGrid.

   1. Berikan SendGrid contoh `INSTANCE_URL` yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari SendGrid entitas
<a name="sendgrid-reading-from-entities"></a>

**Prasyarat**

 SendGrid Objek yang ingin Anda baca. Anda akan membutuhkan nama objek seperti`lists`, `singlesends` atau`segments`.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Daftar | Tidak | Ya | Tidak | Ya | Tidak | 
| Mengirim Tunggal | Ya | Ya | Tidak | Ya | Tidak | 
| Statistik Kampanye Pemasaran-Otomatisasi | Ya | Ya | Tidak | Ya | Tidak | 
| Statistik Kampanye Pemasaran-Pengiriman Tunggal | Ya | Ya | Tidak | Ya | Tidak | 
| Segmen | Ya | Tidak | Tidak | Ya | Tidak | 
| Kontak  | Ya | Tidak | Tidak | Ya | Tidak | 
| Kategori | Tidak | Tidak | Tidak | Ya | Tidak | 
| Statistik | Ya | Tidak | Tidak | Ya | Tidak | 
| Berhenti Berlangganan Grup | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
sendgrid_read = glueContext.create_dynamic_frame.from_options(
    connection_type="sendgrid",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "lists",
        "API_VERSION": "v3",
        "INSTANCE_URL": "instanceUrl"
    }
```

**SendGrid detail entitas dan bidang**:

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/sendgrid-reading-from-entities.html)

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String, dan tipe DateTime data dikonversi ke Timestamp sebagai respons konektor.

## Mempartisi kueri
<a name="sendgrid-reading-partitioning-queries"></a>

SendGrid tidak mendukung partisi berbasis filter atau partisi berbasis rekaman.

# SendGrid opsi koneksi
<a name="sendgrid-connection-options"></a>

Berikut ini adalah opsi koneksi untuk SendGrid:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di SendGrid.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. SendGrid Rest versi API yang ingin Anda gunakan.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL SendGrid contoh yang valid.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

# SendGrid keterbatasan
<a name="sendgrid-limitations"></a>

Berikut ini adalah batasan atau catatan untuk SendGrid:
+ Incremental pull hanya didukung oleh entitas Stats di `start_date` lapangan dan oleh entitas Kontak di `event_timestamp` lapangan.
+ Pagination hanya didukung oleh entitas Statistik Kampanye Pemasaran (Otomasi), Statistik Kampanye Pemasaran (Kirim Tunggal), Kirim Tunggal, dan Daftar.
+ Untuk entitas Stats, `start_date` adalah parameter filter wajib.
+ Kunci API dengan Akses Terbatas tidak dapat mendukung akses baca untuk entitas API Email dan Statistik. Gunakan kunci API dengan Akses Penuh. Untuk informasi selengkapnya, lihat [Ikhtisar API](https://www.twilio.com/docs/sendgrid/api-reference/api-keys/create-api-keys#api-overview).

# Menghubungkan ke ServiceNow
<a name="connecting-to-data-servicenow"></a>

ServiceNow adalah platform SaaS berbasis cloud untuk mengotomatiskan alur kerja manajemen TI. ServiceNow Platform ini dengan mudah terintegrasi dengan alat lain, memungkinkan pengguna mengelola proyek, tim, dan interaksi pelanggan menggunakan berbagai aplikasi dan plugin. Sebagai ServiceNow pengguna, Anda dapat terhubung AWS Glue ke ServiceNow akun Anda. Kemudian, Anda dapat menggunakan ServiceNow sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara ServiceNow dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk ServiceNow](servicenow-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](servicenow-configuring-iam-permissions.md)
+ [Mengkonfigurasi ServiceNow](servicenow-configuring.md)
+ [Mengkonfigurasi koneksi ServiceNow](servicenow-configuring-connections.md)
+ [Membaca dari ServiceNow entitas](servicenow-reading-from-entities.md)
+ [ServiceNow opsi koneksi](servicenow-connection-options.md)
+ [Keterbatasan dan catatan untuk ServiceNow konektor](servicenow-connector-limitations.md)

# AWS Glue dukungan untuk ServiceNow
<a name="servicenow-support"></a>

AWS Glue mendukung ServiceNow sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari ServiceNow.

**Didukung sebagai target?**  
Tidak.

**Versi ServiceNow API yang didukung**  
Versi ServiceNow API berikut didukung:
+ v2

Untuk dukungan entitas per versi tertentu, lihat Entitas yang didukung untuk Sumber.

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="servicenow-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi ServiceNow
<a name="servicenow-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari ServiceNow, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="servicenow-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki ServiceNow akun dengan email dan kata sandi. Untuk informasi selengkapnya, lihat [Membuat ServiceNow akun](#servicenow-configuring-creating-servicenow-account).
+  ServiceNow Akun Anda diaktifkan untuk akses API. Semua penggunaan ServiceNow API tersedia tanpa biaya tambahan.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke ServiceNow akun Anda.

## Membuat ServiceNow akun
<a name="servicenow-configuring-creating-servicenow-account"></a>

Untuk membuat ServiceNow akun:

1. **Arahkan ke halaman pendaftaran di servicenow.com, masukkan detail Anda, dan klik Lanjutkan.**

1. Ketika Anda menerima kode verifikasi di email terdaftar Anda, masukkan kode itu dan pilih **Verifikasi**.

1. Siapkan otentikasi multi-faktor atau lewati melakukannya.

Akun Anda dibuat dan ServiceNow menampilkan profil Anda.

## Membuat instance ServiceNow pengembang
<a name="servicenow-configuring-creating-servicenow-developer-instance"></a>

Minta instance pengembang setelah masuk ke ServiceNow.

1. Di [halaman ServiceNow login](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username), masukkan kredensil akun Anda.

1. Pilih **Program ServiceNow Pengembang**.  
![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/servicenow-dev-program.png)

1. Pilih **Minta Instance** di kanan atas.

1. Masukkan tanggung jawab pekerjaan Anda. Tunjukkan persetujuan Anda terhadap ketentuan penggunaan, dan pilih **Selesai penyiapan**.

1. Setelah instance dibuat, catat URL dan kredensialnya.

## Mengambil BasicAuth kredensi
<a name="servicenow-configuring-basic-auth"></a>

Untuk mengambil kredensi Auth Dasar untuk akun gratis:

1. Di [halaman ServiceNow login](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username), masukkan kredensil akun Anda.

1. Di halaman beranda pilih bagian edit profil (pojok kanan atas) dan pilih **Kelola Kata Sandi Instans**.

1. Ambil kredensi login seperti nama pengguna, kata sandi, dan URL instance.

**catatan**  
<username>Jika MFA diaktifkan untuk akun, tambahkan token MFA ke akhir kata sandi pengguna di autentikasi dasar:: <password><MFA Token>

Untuk informasi selengkapnya, lihat [Membangun aplikasi](https://docs.servicenow.com/bundle/xanadu-application-development/page/build/custom-application/concept/build-applications.html) dalam ServiceNow dokumentasi.

## Membuat kredensi OAuth 2.0
<a name="servicenow-configuring-basic-auth"></a>

Untuk menggunakan OAuth2 .0 di ServiceNow konektor, Anda perlu membuat klien masuk) untuk menghasilkan ID Klien dan Rahasia Klien:

1. Di [halaman ServiceNow login](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username), masukkan kredensil akun Anda.

1. Di halaman beranda pilih **Mulai Membangun**.

1. Pada halaman App Engine Studio, cari **Application Registry**.

1. Pilih **Baru** di kanan atas.

1. Pilih opsi **Buat titik akhir OAuth API untuk klien eksternal**.

1. Buat perubahan yang diperlukan pada OAuth konfigurasi dan pilih **Perbarui**.

   Contoh untuk URL Pengalihan: https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Pilih aplikasi OAuth klien yang baru dibuat untuk mengambil ID Klien dan Rahasia Klien.

1. Simpan ID Klien dan Rahasia Klien untuk diproses lebih lanjut.

Untuk mengkonfigurasi OAuth di akun pengembang non-produksi:

1. Buat profil otentikasi menggunakan topik [Buat profil otentikasi](https://docs.servicenow.com/bundle/washingtondc-platform-security/page/integrate/authentication/task/create-an-authentication-profile.html) dalam dokumentasi. ServiceNow 

1. **Dalam Profil Otentikasi untuk OAuth, pilih **Ketik** sebagai OAuth dan pilih klien masuk yang dibuat di atas untuk mengatur Entitas. OAuth **

1. Jika ada beberapa klien, maka Anda perlu membuat beberapa profil otentikasi untuk mengatur OAuth entitas yang diperlukan dalam profil otentikasi.

1. Jika tidak dikonfigurasi, buat kebijakan akses REST API, untuk memberikan akses ke TABLE API. Lihat [Membuat kebijakan akses REST API](https://docs.servicenow.com/bundle/washingtondc-platform-security/page/integrate/authentication/task/create-api-access-policy.html).

# Mengkonfigurasi koneksi ServiceNow
<a name="servicenow-configuring-connections"></a>

Jenis hibah menentukan cara AWS Glue berkomunikasi dengan ServiceNow meminta akses ke data Anda. Pilihan Anda memengaruhi persyaratan yang harus Anda penuhi sebelum membuat koneksi. ServiceNow hanya mendukung jenis hibah AUTHORIZATION\$1CODE untuk 2.0. OAuth 
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. AWS Glue Konsol akan mengarahkan pengguna ke ServiceNow tempat pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance mereka ServiceNow .
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri ServiceNow dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke login dan memberi wewenang ServiceNow AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk ServiceNow dokumentasi publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [ OAuthMenyiapkan](https://docs.servicenow.com/bundle/vancouver-platform-security/page/administer/security/task/t_SettingUpOAuth.html).

Untuk mengkonfigurasi ServiceNow koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk otentikasi dasar, Secret harus berisi aplikasi Consumer Secret yang terhubung dengan `USERNAME` dan `PASSWORD` sebagai kunci.

   1. Untuk jenis hibah kode otorisasi, Rahasia harus berisi Rahasia Konsumen aplikasi yang terhubung dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih ServiceNow.

   1. Berikan INSTANCE\$1URL dari ServiceNow instance yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih **Jenis Otentikasi** yang ingin Anda gunakan untuk koneksi ini. AWS Glue

      1. Auth Dasar: jenis autentikasi ini berfungsi dengan baik untuk skenario otomatisasi karena memungkinkan untuk menggunakan nama pengguna dan kata sandi di depan dengan izin pengguna tertentu dalam instance. ServiceNow AWS Glue dapat menggunakan nama pengguna dan kata sandi untuk mengautentikasi. ServiceNow APIs Masukkan input berikut hanya dalam kasus Auth Dasar: `Username` dan. `Password`

      1. OAuth2: masukkan input berikut hanya dalam kasus OAuth2:`ClientId`,, `ClientSecret``Authorization URL`,`Authorization Token URL`.

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari ServiceNow entitas
<a name="servicenow-reading-from-entities"></a>

**Prasyarat**

Objek ServiceNow Tabel yang ingin Anda baca. Anda akan memerlukan nama objek seperti pa\$1bucket atau insiden.

**Contoh:**

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2"
        "instanceUrl": "https://<instance-name>.service-now.com"
    }
)
```

**ServiceNow detail entitas dan bidang**:

Untuk entitas berikut, ServiceNow sediakan titik akhir untuk mengambil metadata secara dinamis, sehingga dukungan operator ditangkap pada tingkat tipe data untuk setiap entitas.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/servicenow-reading-from-entities.html)

**catatan**  
Tipe data Struct dikonversi ke tipe data String dalam respons konektor.

**catatan**  
`DML_STATUS`adalah atribut tambahan yang ditentukan pengguna yang digunakan untuk melacak CREATED/UPDATED catatan.

## Mempartisi kueri
<a name="servicenow-reading-partitioning-queries"></a>

**Partisi dasar lapangan**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/servicenow-reading-from-entities.html)
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri SQL. SPark 

  Contoh nilai valid:

  ```
  "2024-01-30T06:47:51.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Tabel berikut menjelaskan rincian dukungan bidang partisi entitas:

Contoh:

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2",
        "instanceUrl": "https://<instance-name>.service-now.com"
        "PARTITION_FIELD": "sys_created_on"
        "LOWER_BOUND": "2024-01-30T06:47:51.000Z"
        "UPPER_BOUND": "2024-06-30T06:47:51.000Z"
        "NUM_PARTITIONS": "10"
    }
```

Partisi **berbasis rekaman**:

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli dibagi menjadi `NUM_PARTITIONS` beberapa sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis rekaman, jumlah total catatan yang ada ditanyakan dari ServiceNow API, dan dibagi dengan nomor yang disediakan. `NUM_PARTITIONS` Jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2",
        "instanceUrl": "https://<instance-name>.service-now.com"
        "NUM_PARTITIONS": "2"
    }
```

# ServiceNow opsi koneksi
<a name="servicenow-connection-options"></a>

Berikut ini adalah opsi koneksi untuk ServiceNow:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di ServiceNow.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. ServiceNow Rest versi API yang ingin Anda gunakan. Misalnya: v1, v2, v3, v4.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. Misalnya: 2024-01-30T 06:47:51.000 Z.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. Misalnya: 2024-06-30T 06:47:51.000 Z.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Misalnya: 10.
+ `INSTANCE_URL`(String) - (Diperlukan) URL ServiceNow contoh yang valid dengan format https://<instance-name>.service-now.com.
+ `PAGE_SIZE`(Integer) - Mendefinisikan ukuran halaman untuk menanyakan catatan. Ukuran halaman default adalah 1.000. Ketika ukuran halaman ditentukan, hanya ServiceNow menampilkan jumlah catatan yang ditentukan per panggilan API, bukan seluruh kumpulan data. Konektor masih akan memberikan jumlah total catatan dan menangani pagination menggunakan ukuran halaman yang Anda tentukan. Jika Anda memerlukan ukuran halaman yang lebih besar, Anda dapat memilih nilai apa pun hingga 10.000, yang merupakan maksimum yang diizinkan. Setiap ukuran halaman yang ditentukan melebihi 10.000 akan diabaikan. Sebagai gantinya, sistem akan menggunakan ukuran halaman maksimum yang diizinkan. Anda dapat menentukan ukuran halaman di AWS Glue Studio UI dengan menambahkan opsi koneksi `PAGE_SIZE` dengan nilai yang Anda inginkan. Misalnya: 5000.

# Keterbatasan dan catatan untuk ServiceNow konektor
<a name="servicenow-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk ServiceNow konektor:
+ Sesuai [dokumentasi SaaS](https://www.servicenow.com/docs/bundle/washingtondc-application-development/page/build/applications/reference/r_GlobalDefaultFields.html),, `sys_created_on``sys_updated_on`, dan `sys_mod_count` merupakan bidang yang dihasilkan sistem. Konektor bergantung pada APIs SaaS untuk menyediakan bidang-bidang ini di badan respons.
  + Jika SaaS tidak menghasilkan bidang ini untuk entitas apa pun, partisi berbasis filter tidak dapat didukung.
+ Jika SaaS APIs tidak kembali `sys_created_on` dan `sys_updated_on` bidang dalam respons, `DML_STATUS` tidak dapat dihitung.
+ Tingkatkan kinerja dan efisiensi baca
  +  ServiceNow Konektor sekarang secara otomatis mengurutkan catatan dalam urutan menaik menurut `sys_id` bidang (harus ada dalam metadata) ketika tidak ada klausa ORDER BY yang ditentukan oleh pengguna. Dalam hal ini, catatan akan diberi paginasi oleh pagination berbasis keyset baru yang dioptimalkan.
  + Jika klausa ORDER BY ditentukan, optimasi baru tidak akan digunakan dan catatan akan diambil menggunakan metode yang sudah ada (ditentukan pengguna Order By dan Offset-Limit based pagination).

# Menghubungkan ke Slack di AWS Glue Studio
<a name="connecting-to-data-slack"></a>

 Slack adalah aplikasi komunikasi perusahaan yang memungkinkan pengguna mengirim pesan dan lampiran melalui berbagai saluran publik dan pribadi. Jika Anda pengguna Slack, Anda dapat terhubung AWS Glue ke akun Slack Anda. Kemudian, Anda dapat menggunakan Slack sebagai sumber data dalam Pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Slack dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Slack](slack-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](slack-configuring-iam-permissions.md)
+ [Mengkonfigurasi Slack](slack-configuring.md)
+ [Mengkonfigurasi koneksi Slack](slack-configuring-connections.md)
+ [Membaca dari entitas Slack](slack-reading-from-entities.md)
+ [Opsi koneksi kendur](slack-connection-options.md)
+ [Batasan](slack-limitations.md)
+ [Membuat akun Slack baru dan mengonfigurasi aplikasi klien](slack-new-account-creation.md)

# AWS Glue dukungan untuk Slack
<a name="slack-support"></a>

AWS Glue mendukung Slack sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Slack.

**Didukung sebagai target?**  
Tidak.

**Versi Slack API yang didukung**  
 Slack API v2. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="slack-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan izin IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM,, dan Amazon EC2. Amazon CloudWatch Logs Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Slack
<a name="slack-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data ke atau dari Slack, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="slack-configuring-min-requirements"></a>
+  Anda harus memiliki akun Slack. Untuk informasi selengkapnya, lihat [Membuat akun Slack baru dan mengonfigurasi aplikasi klien](slack-new-account-creation.md). 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Slack Anda. 

# Mengkonfigurasi koneksi Slack
<a name="slack-configuring-connections"></a>

 Slack mendukung jenis `AUTHORIZATION_CODE` hibah untuk OAuth 2. 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. AWS Glue Konsol akan mengarahkan pengguna ke Slack di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Slack mereka. 

 Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Slack dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Slack untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses kedaluwarsa setelah 1 jam pembuatan. Token akses baru dapat diambil menggunakan token penyegaran. 

 Untuk informasi selengkapnya tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Slack API](https://api.slack.com/quickstart). 

Untuk mengkonfigurasi koneksi Slack:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Anda harus membuat rahasia untuk koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Slack.

   1. Menyediakan lingkungan Slack.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Slack
<a name="slack-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Slack yang ingin Anda baca. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| obrolan | Ya | Ya | Tidak | Ya | Ya | 

 **Contoh** 

```
slack_read = glueContext.create_dynamic_frame.from_options(
    connection_type="slack",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversations/C058W38R5J8"
    }
)
```

 **Entitas kendur dan detail bidang** 


| Entitas | Field | Tipe data | Operator yang Didukung | 
| --- | --- | --- | --- | 
| obrolan | lampiran | Daftar | TA | 
| obrolan | bot\$1id | String | TA | 
| obrolan | blok | Daftar | TA | 
| obrolan | client\$1msg\$1id | String | TA | 
| obrolan | is\$1starred | Boolean | TA | 
| obrolan | terakhir\$1baca | String | TA | 
| obrolan | terbaru\$1reply | String | TA | 
| obrolan | tanggapan | Daftar | TA | 
| obrolan | balasan | Daftar | TA | 
| obrolan | reply\$1count | Bilangan Bulat | TA | 
| obrolan | reply\$1users | Daftar | TA | 
| obrolan | reply\$1users\$1count | Bilangan Bulat | TA | 
| obrolan | berlangganan | Boolean | TA | 
| obrolan | subtipe | String | TA | 
| obrolan | text | String | TA | 
| obrolan | team | String | TA | 
| obrolan | thread\$1ts | String | TA | 
| obrolan | ts | String | EQUAL\$1TO, BETWEEN, LESS\$1THAN, LESS\$1THAN\$1OR\$1EQUAL\$1TO, GREATER\$1THAN, GREATER\$1THAN\$1OR\$1EQUAL\$1TO | 
| obrolan | jenis | String | TA | 
| obrolan | user | String | TA | 
| obrolan | mengundang | String | TA | 
| obrolan | root | Struct | TA | 
| obrolan | is\$1terkunci | Boolean | TA | 
| obrolan | file | Daftar | TA | 
| obrolan | ruangan | Struct | TA | 
| obrolan | unggah | Boolean | TA | 
| obrolan | display\$1as\$1bot | Boolean | TA | 
| obrolan | saluran | String | TA | 
| obrolan | no\$1notifikasi | Boolean | TA | 
| obrolan | permalink | String | TA | 
| obrolan | disematkan\$1ke | Daftar | TA | 
| obrolan | pinned\$1info | Struct | TA | 
| obrolan | mengedit | Struct | TA | 
| obrolan | app\$1id | String | TA | 
| obrolan | bot\$1profil | Struct | TA | 
| obrolan | Metadata | Struct | TA | 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-07-01T00:00:00.000Z"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi yang bijaksana dari entitas ditangkap dalam tabel di bawah ini. 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| obrolan | ts | String | 

 **Contoh** 

```
slack_read = glueContext.create_dynamic_frame.from_options(
    connection_type="slack",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversations/C058W38R5J8",
        "PARTITION_FIELD": "ts"
        "LOWER_BOUND": "2022-12-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-09-23T15:00:00.000Z"
        "NUM_PARTITIONS": "2"
    }
)
```

# Opsi koneksi kendur
<a name="slack-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Slack:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama entitas yang didukung. Contoh:`conversations/C058W38R5J8`. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Bidang yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Batasan
<a name="slack-limitations"></a>

Berikut ini adalah batasan untuk konektor Slack:
+  Partisi berbasis rekaman tidak didukung karena konektor tidak menyediakan sarana apa pun untuk mengambil jumlah total rekaman (pesan) yang tersedia dalam percakapan tertentu. 

# Membuat akun Slack baru dan mengonfigurasi aplikasi klien
<a name="slack-new-account-creation"></a>

**Membuat akun Slack**

1. Buka [halaman beranda Slack](https://slack.com/intl/en-in/) untuk mendaftar akun. 

1. Pilih **DAFTAR DENGAN ALAMAT EMAIL**. Masukkan ID email Anda dan pilih **Lanjutkan**.

1. Masukkan kode 6 karakter yang dikirim ke alamat email Anda, itu akan mengarahkan Anda untuk membuat ruang kerja atau bergabung dengan ruang kerja yang ada.

1. Pilih **Buat ruang kerja untuk membuat ruang** kerja baru. Ini akan mengarahkan Anda untuk menjawab beberapa pertanyaan sebagai bagian dari proses pengaturan.
   + Nama perusahaan
   + Nama Anda
   + Untuk menambahkan kolega melalui email
   + Apa yang tim Anda kerjakan? (Ini akan menjadi nama saluran)

1. Isi kolom masukan untuk pertanyaan-pertanyaan ini dan lanjutkan. Akun Anda sekarang siap digunakan.



**Membuat aplikasi pengembang Slack**

1. Masuk ke akun Slack Anda dan masuk ke ruang kerja Slack Anda.

1. Dari menu ruang kerja, pilih **Alat dan pengaturan**, lalu pilih **Kelola aplikasi**.

1. Dari menu Slack App Directory, pilih **Build**.

1. Pada halaman **Aplikasi Anda**, pilih **Buat Aplikasi**.

1. Pada halaman **Buat aplikasi**, pilih **Dari awal**.

1. Di kotak dialog **Nama aplikasi & pilih ruang kerja** yang terbuka, tambahkan nama Aplikasi dan **Pilih ruang kerja untuk menerapkan aplikasi Anda**. Kemudian pilih **Buat Aplikasi**.

1. Catat Client Id dan Secret yang ditampilkan di App Credentials

1. Pada sidebar OAuth & Permissions, buka Scopes dan pilih **Add an OAuth ** Scope. Anda dapat menambahkan pengalihan URLs ke aplikasi Anda untuk konfigurasi untuk secara otomatis menghasilkan tombol 'Tambahkan ke Slack' atau untuk mendistribusikan aplikasi Anda. Gulir ke atas ke URLs bagian Redirect dan pilih **Add New Redirect URL dan simpan**. 

1. Kemudian, gulir ke bagian OAuth Token untuk Ruang Kerja Anda, dan pilih **Instal ke Ruang Kerja**.

1. **Pada kotak dialog yang terbuka memberi tahu Anda bahwa aplikasi yang Anda buat meminta izin untuk mengakses ruang kerja Slack yang ingin Anda sambungkan, pilih Izinkan.**

1. Setelah berhasil diselesaikan, konsol akan menampilkan layar OAuth Token untuk Ruang Kerja Anda.

1. Dari layar OAuth Token untuk Ruang Kerja Anda, salin dan simpan OAuth token yang akan Anda gunakan untuk terhubung AWS Glue

1. Selanjutnya, Anda mengambil ID tim Slack Anda. Dari menu ruang kerja Slack, pilih **Alat dan pengaturan**, lalu pilih **Kelola** aplikasi. Anda akan menemukan ID tim Anda di URL halaman yang terbuka.

1. Untuk mendistribusikan aplikasi secara publik, Anda dapat mengaktifkan dengan menuju ke tombol **Kelola Distribusi** di bilah sisi. Gulir ke bawah ke bagian Bagikan Aplikasi Anda dengan Ruang Kerja Lain dan pilih **Hapus Informasi Kode Keras**. Berikan persetujuan dan pilih **Distribusi Publik Aktif**. 

1. Aplikasi Anda sekarang didistribusikan secara publik. Untuk mengakses entitas APIs, aplikasi perlu ditambahkan ke setiap saluran ruang kerja yang ingin diakses pengguna.

1. Masuk ke akun slack Anda dan buka ruang kerja yang salurannya perlu diakses.

1. Di ruang kerja, buka saluran yang ingin diakses aplikasi dan pilih judul saluran. Pilih tab **Integrasi** dari pop-up dan tambahkan aplikasi. Dengan cara ini, aplikasi terintegrasi dengan saluran untuk memiliki akses ke API-nya.

   ID klien OAuth 2.0 harus memiliki satu atau lebih pengalihan URLs resmi. Redirect URLs memiliki format berikut:
**catatan**  
 Pengalihan URLs Appflow dapat berubah pasca pengalihan URLs untuk AWS Glue platform yang tersedia. ID Klien dan Rahasia Klien berasal dari pengaturan untuk ID klien OAuth 2.0 Anda.     
<a name="slack-redirect-url-detail"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/slack-new-account-creation.html)

# Menghubungkan ke Smartsheet
<a name="connecting-to-smartsheet"></a>

Smartsheet adalah produk SaaS manajemen kerja dan kolaborasi. Pada dasarnya, Smartsheet memungkinkan pengguna untuk menggunakan objek seperti spreadsheet untuk membuat, menyimpan, dan memanfaatkan data bisnis.

**Topics**
+ [AWS Glue dukungan untuk Smartsheet](smartsheet-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](smartsheet-configuring-iam-permissions.md)
+ [Mengkonfigurasi Smartsheet](smartsheet-configuring.md)
+ [Mengkonfigurasi koneksi Smartsheet](smartsheet-configuring-connections.md)
+ [Membaca dari entitas Smartsheet](smartsheet-reading-from-entities.md)
+ [Opsi koneksi Smartsheet](smartsheet-connection-options.md)
+ [Membuat akun Smartsheet](smartsheet-create-account.md)
+ [Batasan](smartsheet-connector-limitations.md)

# AWS Glue dukungan untuk Smartsheet
<a name="smartsheet-support"></a>

AWS Glue mendukung Smartsheet sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Smartsheet.

**Didukung sebagai target?**  
Tidak.

**Versi Smartsheet API yang didukung**  
 v2.0 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="smartsheet-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode sebelumnya, sebagai alternatif, gunakan kebijakan IAM terkelola berikut:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya ketika identitas yang dilampirkan kebijakan menggunakan konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Smartsheet
<a name="smartsheet-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer dari Smartsheet, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="smartsheet-configuring-min-requirements"></a>
+ Anda memiliki akun Smartsheet dengan email dan kata sandi. Untuk informasi selengkapnya tentang membuat akun, lihat [Membuat akun Smartsheet](smartsheet-create-account.md). 
+ Akun Smartsheet Anda memiliki akses API dengan lisensi yang valid.
+ Akun Smartsheet Anda memiliki paket **harga Pro untuk `Sheets` entitas dan paket harga** Perusahaan dengan Add-On Pelaporan Acara untuk `Events` entitas.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Smartsheet Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Smartsheet.

# Mengkonfigurasi koneksi Smartsheet
<a name="smartsheet-configuring-connections"></a>

 Smartsheet mendukung jenis `AUTHORIZATION_CODE` hibah untuk OAuth2. 

Jenis hibah ini dianggap “berkaki tiga” `OAuth` karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Smartsheet dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Smartsheet untuk masuk dan mengotorisasi AWS Glue untuk mengakses sumber daya mereka. 

Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 

[Untuk dokumentasi Smartsheet publik tentang cara membuat aplikasi yang terhubung untuk alur AUTHORIZATION\$1CODE OAuth , lihat Smartsheet. APIs](https://smartsheet.redoc.ly/#section/OAuth-Walkthrough) 

Untuk mengonfigurasi koneksi Smartsheet:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut: 

   Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 
**catatan**  
Ini adalah suatu keharusan untuk membuat rahasia per koneksi di AWS Glue.

1. Dalam AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Smartsheet.

   1. Berikan Smartsheet yang ingin Anda sambungkan. `instanceUrl`

   1. Pilih peran IAM yang AWS Glue dapat diasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Smartsheet
<a name="smartsheet-reading-from-entities"></a>

 **Prasyarat** 

`Smartsheet`Objek yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Lembar Daftar | Ya | Ya | Tidak | Ya | Tidak | 
| Metadata Baris | Ya | Ya | Tidak | Ya | Tidak | 
| Lembar Metadata | Tidak | Tidak | Tidak | Ya | Tidak | 
| Lembar Data | Ya | Ya | Ya | Ya | Tidak | 
| Peristiwa | Ya | Ya | Tidak | Ya | Tidak | 

 **Contoh** 

```
Smartsheet_read = glueContext.create_dynamic_frame.from_options(
    connection_type="smartsheet",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "list-sheets",
        "API_VERSION": "2.0",
        "INSTANCE_URL": "https://api.smartsheet.com"
    })
```

 **Entitas Smartsheet dan detail bidang** 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/smartsheet-reading-from-entities.html)

**Entitas dengan metadata dinamis:**

Untuk entitas berikut, Smartsheet menyediakan titik akhir untuk mengambil metadata secara dinamis, memungkinkan dukungan operator ditangkap pada tingkat tipe data.


| Entitas |  Tipe data  | Operator yang Didukung | 
| --- | --- | --- | 
|  Lembar Data  |  String  | TA | 
| Lembar Data |  Panjang  | "=" | 
| Lembar Data | Bilangan Bulat | TA | 
| Lembar Data | DateTime | > | 

 **Contoh** 

```
Smartsheet_read = glueContext.create_dynamic_frame.from_options(
    connection_type="smartsheet",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "list-sheets",
        "API_VERSION": "2.0",
        "INSTANCE_URL": "https://api.smartsheet.com"
    }
```

# Opsi koneksi Smartsheet
<a name="smartsheet-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Smartsheet:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Object Anda di Smartsheet. 
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Smartsheet Rest API yang ingin Anda gunakan. Misalnya: v2.0. 
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL contoh Smartsheet.
+ `SELECTED_FIELDS`(Daftar<String>) — Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat akun Smartsheet
<a name="smartsheet-create-account"></a>

1. Mendaftar untuk akun Smartsheet dengan mengakses halaman sing-up [Smartsheet](https://app.smartsheet.com/home). 

1. Pilih **Buat satu** untuk membuat akun baru, atau masuk menggunakan akun Google, Microsoft, atau Apple yang terdaftar.

1.   Masukkan alamat email kantor Anda saat diminta.   

1.   Pilih **Lanjutkan** dan jika diperlukan, verifikasi identitas Anda.  

1. Buka email konfirmasi dari Smartsheet, dan pilih tautan konfirmasi untuk memverifikasi akun Anda. 

   Anda akan berlangganan Paket Uji Coba secara default. 

1. Di sudut kiri bawah, pilih ikon **Akun** dan pilih **Tambahkan Lisensi/Peningkatan** untuk meningkatkan paket harga Anda.
**catatan**  
Ini diperlukan untuk mengakses **Event Reporting**, yang merupakan add-on dalam paket **Enterprise**.

1. Di bawah paket **Enterprise**, pilih **Hubungi Kami** untuk meminta peningkatan akun dari tim dukungan.

1. Dalam formulir permintaan dukungan, berikan detail yang diperlukan dan persyaratan Anda untuk meningkatkan paket.

   Ini melengkapi upgrade ke paket **Enterprise**.

**Membuat `OAuth2.0` kredensi**

1. Setelah memutakhirkan paket harga akun Anda untuk mendapatkan akses ke **Alat Pengembang**, akses pengembang [Smartsheet](https://developers.smartsheet.com/). 

   Anda akan menerima email aktivasi.

1. Buka email aktivasi dari Smartsheet, dan pilih tautan aktivasi untuk mengaktifkan alat pengembang di akun Anda. 

   Alat pengembang memungkinkan Anda membuat aplikasi.

1. Buka halaman beranda akun Smartsheet Anda dan pilih **Akun** untuk memeriksa akses.

1. Pilih **Alat Pengembang** dari daftar layanan, dan masukkan detail **Profil Pengembang**.

1. Pilih **Buat Aplikasi Baru**.

1. Masukkan detail berikut ke dalam formulir pendaftaran aplikasi:
   + **Nama** — Nama aplikasi.
   + **Deskripsi** — Deskripsi aplikasi.
   + **URL** — URL yang memungkinkan Anda meluncurkan aplikasi atau URL halaman landing.
   + **Kontak/dukungan** - Informasi kontak untuk tim dukungan.
   + URL **Redirect — URL** (juga dikenal sebagai URL callback) dalam aplikasi Anda yang akan menerima kredensi [OAuth 2.0](https://.console.aws.amazon.com/appflow/oauth). 

1. Pilih **Simpan**.

   Smartsheet menetapkan ID klien dan rahasia klien ke aplikasi Anda. Catat nilai-nilai ini untuk langkah selanjutnya. Anda juga dapat mencarinya lagi nanti di bagian **Alat Pengembang**.

# Batasan
<a name="smartsheet-connector-limitations"></a>

Smartsheet tidak mendukung partisi berbasis lapangan atau berbasis rekaman.

# Menghubungkan ke Iklan Snapchat di AWS Glue Studio
<a name="connecting-to-data-snapchat-ads"></a>

 Snapchat adalah aplikasi dan layanan pesan instan multimedia yang dikembangkan oleh Snap Inc., awalnya Snapchat Inc. Salah satu fitur utama Snapchat adalah bahwa gambar dan pesan biasanya hanya tersedia untuk waktu yang singkat sebelum mereka menjadi tidak dapat diakses oleh penerima mereka. Pemasaran Snapchat adalah posting yang dapat dibayar bisnis untuk melayani pengguna Snapchat. 

**Topics**
+ [AWS Glue dukungan untuk Iklan Snapchat](snapchat-ads-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](snapchat-ads-configuring-iam-permissions.md)
+ [Mengkonfigurasi Iklan Snapchat](snapchat-ads-configuring.md)
+ [Mengonfigurasi koneksi Iklan Snapchat](snapchat-ads-configuring-connections.md)
+ [Membaca dari entitas Iklan Snapchat](snapchat-ads-reading-from-entities.md)
+ [Opsi koneksi Iklan Snapchat](snapchat-ads-connection-options.md)
+ [Membuat akun Iklan Snapchat dan mengonfigurasi aplikasi klien](connecting-to-data-snapchat-ads-new-account.md)
+ [Membuat aplikasi di akun Iklan Snapchat](connecting-to-data-snapchat-ads-managed-client-application.md)

# AWS Glue dukungan untuk Iklan Snapchat
<a name="snapchat-ads-support"></a>

AWS Glue mendukung Iklan Snapchat sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Iklan Snapchat.

**Didukung sebagai target?**  
Tidak.

**Versi API Iklan Snapchat yang didukung**  
 v1. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="snapchat-ads-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan AWS izin yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM,, dan Amazon EC2. Amazon CloudWatch Logs Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Iklan Snapchat
<a name="snapchat-ads-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer dari Iklan Snapchat, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="snapchat-ads-configuring-min-requirements"></a>
+  Anda memiliki akun Iklan Snapchat. Untuk informasi selengkapnya tentang membuat akun, lihat[Membuat akun Iklan Snapchat dan mengonfigurasi aplikasi klien](connecting-to-data-snapchat-ads-new-account.md). 
+  Anda telah membuat OAuth2 aplikasi di akun Iklan Snapchat Anda. Integrasi ini menyediakan kredensi yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat aplikasi di akun Iklan Snapchat](connecting-to-data-snapchat-ads-managed-client-application.md). 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Iklan Snapchat Anda. Di Iklan Snapchat, aplikasi yang terhubung adalah kerangka kerja yang mengizinkan aplikasi eksternal, seperti AWS Glue, untuk mengakses data Iklan Snapchat Anda. 

# Mengonfigurasi koneksi Iklan Snapchat
<a name="snapchat-ads-configuring-connections"></a>

 Iklan Snapchat hanya mendukung jenis `AUTHORIZATION_CODE` hibah. 

 Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue Konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki (aplikasi klien AWS Glue terkelola) di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali URL instance Iklan Snapchat mereka. AWS Glue Konsol akan mengarahkan pengguna ke Iklan Snapchat di mana pengguna harus masuk dan mengizinkan izin AWS Glue yang diminta untuk mengakses instance Iklan Snapchat mereka. 

 Pengguna masih dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Iklan Snapchat dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Iklan Snapchat untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka. 

 Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses kedaluwarsa setelah 1 jam pembuatan. Token akses baru dapat diambil menggunakan token penyegaran. 

 Untuk informasi selengkapnya tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [API Iklan](https://marketingapi.snapchat.com/docs/#authentication). 

Untuk mengonfigurasi koneksi Iklan Snapchat:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Iklan Snapchat.

   1. Menyediakan lingkungan Iklan Snapchat.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Iklan Snapchat
<a name="snapchat-ads-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Iklan Snapchat yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Organisasi | Tidak | Tidak | Tidak | Ya | Tidak | 
| Akun Iklan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Kreatif | Tidak | Tidak | Tidak | Ya | Tidak | 
| Media | Tidak | Tidak | Tidak | Ya | Tidak | 
| Kampanye | Ya | Tidak | Tidak | Ya | Tidak | 
| Iklan Di Bawah Akun Iklan | Ya | Tidak | Tidak | Ya | Tidak | 
| Kampanye Iklan Di Bawah | Tidak | Tidak | Tidak | Ya | Tidak | 
| Skuad Iklan | Ya | Tidak | Tidak | Ya | Tidak | 
| Segment | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
snapchatads_read = glueContext.create_dynamic_frame.from_options(
    connection_type="snapchatAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "organization",
        "API_VERSION": "v1"
    }
)
```

 **Entitas dan detail bidang Iklan Snapchat** 

 Iklan Snapchat memuat bidang yang tersedia secara dinamis di bawah entitas yang dipilih. Tergantung pada tipe data bidang, ini mendukung operator filter berikut. 


| Tipe Data Bidang | Operator Filter yang Didukung | 
| --- | --- | 
| Boolean | = | 

 **Mempartisi kueri** 
+  Partisi berbasis lapangan: Tidak didukung. 
+  Partisi berbasis rekaman: Tidak didukung. 

# Opsi koneksi Iklan Snapchat
<a name="snapchat-ads-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Iklan Snapchat:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama entitas Iklan Snapchat. Contoh:` campaign `. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Snapchat Ads Rest versi API yang ingin Anda gunakan. Nilainya akan menjadi v1, karena Iklan Snapchat saat ini hanya mendukung versi v1. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Daftar kolom yang dipisahkan koma yang ingin Anda pilih untuk entitas yang dipilih. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 

# Membuat akun Iklan Snapchat dan mengonfigurasi aplikasi klien
<a name="connecting-to-data-snapchat-ads-new-account"></a>

**Topics**
+ [Mendaftar untuk Iklan Snapchat](#snapchat-ads-sign-up)
+ [Langkah-langkah untuk membuat akun Iklan Snapchat](#snapchat-ads-create-ad-account)

## Mendaftar untuk Iklan Snapchat
<a name="snapchat-ads-sign-up"></a>

**Untuk mendaftar ke Iklan Snapchat:**

1.  Arahkan ke [Manajer Iklan Snapchat](https://ads.snapchat.com/). Pilih **Daftar di** samping **Baru ke Snapchat?** . 

1.  Pada layar **Buat Akun**, ikuti petunjuk untuk memasukkan Nama Bisnis, Email, Kata Sandi, dll. Pilih **Berikutnya**. 

1.  Pada layar **Buat Profil Anda**, masukkan nilai untuk Nama Pengguna, Situs Web (Opsional), dan pilih **Buat Akun**. Ini akan memberi Anda opsi untuk menambahkan foto profil dan bio di layar **Edit Profil Anda**. Pilih **Konfirmasi**. 

1.  **Pada layar **Info Bisnis**, isi kolom wajib seperti Negara, Mata Uang, Nomor Telepon, GSTIN dll, dan selesaikan proses pembuatan akun dengan memilih Berikutnya.** 

## Langkah-langkah untuk membuat akun Iklan Snapchat
<a name="snapchat-ads-create-ad-account"></a>

**Untuk membuat akun Iklan Snapchat:**

1.  Masuk ke **Manajer Iklan**. Kemudian klik navigasi di sudut atas dan pilih **Akun Iklan**. 

1.  Pilih **\$1 Akun Iklan Baru**. Masukkan detail pengiklan Anda: 
   +  Pilih apakah Anda agen yang membeli iklan atas nama pengiklan atau tidak. Jika Anda memilih 'Ya', iklan Anda mungkin ditolak jika menggunakan parameter penargetan yang dapat mencakup usia, jenis kelamin, atau tingkat penargetan kode pos. Penargetan usia minimum dapat diterapkan hingga usia 21 tahun. 
   +  Pilih apakah akun iklan Anda akan menjalankan iklan perumahan, kredit, atau pekerjaan atau tidak. Jika Anda memilih 'Ya', iklan Anda mungkin ditolak jika menggunakan parameter penargetan yang dapat mencakup usia, jenis kelamin, atau tingkat penargetan kode pos. Penargetan usia minimum dapat diterapkan hingga usia 21 tahun. 
   +  Pilih apakah Anda akan menggunakan akun iklan untuk iklan politik. Jika Anda menjalankan iklan politik, masukkan organisasi politik sponsor atau kelompok advokasi yang membayar iklan tersebut. Jika Anda tidak secara akurat memasukkan organisasi politik, iklan Anda mungkin ditolak. Anda juga harus mengisi 'Formulir Tinjauan Iklan Politik' yang ditautkan wajib sebelum mengirimkan iklan. 

1.  Pilih **Detail Akun** dan isi info akun iklan Anda:     
<a name="snapchat-ads-account-details"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/connecting-to-data-snapchat-ads-new-account.html)

1.  Pilih **Buat Akun**. Akun iklan Anda akan dibuat, dan Anda dapat menemukannya di bagian Akun Iklan Manajer Iklan. Untuk mulai meluncurkan iklan, Anda harus memasukkan metode pembayaran. Anda juga dapat menambahkan anggota ke akun iklan Anda. 

1.  Pilih apakah Anda ingin menggunakan pembayaran yang sudah ada atau membuat yang baru. Kemudian, pilih **Save Payment Method**. 

1.  Pilih [anggota yang Anda undang](https://businesshelp.snapchat.com/s/article/manage-members?language=en_US) ke bisnis Anda untuk ditambahkan ke akun iklan. Untuk informasi selengkapnya tentang peran dan izin yang dapat ditetapkan, lihat Ikhtisar [Peran dan Izin](https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US). Anggota yang ditambahkan kemudian akan dapat masuk ke Manajer Iklan dan mengakses akun iklan ini. Setelah selesai, selamatkan anggota Anda. 

 Untuk informasi selengkapnya tentang akun iklan, lihat izin [https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US](https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US) https://businesshelp.snapchat.com/s/ artikel/peran? language=En\$1US 

# Membuat aplikasi di akun Iklan Snapchat
<a name="connecting-to-data-snapchat-ads-managed-client-application"></a>

 Untuk mengaktifkan akses ke API Pemasaran Snapchat, pastikan Anda telah menyiapkan akun bisnis. Kemudian ikuti langkah-langkah di bawah ini. 

1.  Masuk ke Manajer Iklan. Kemudian pilih menu di pojok kiri atas dan pilih **Dasbor Bisnis**, lalu pilih **Detail Bisnis**. 

1.  Pilih **\$1 OAuth Aplikasi**. 

1.  Masukkan Nama Aplikasi Anda dan Tambahkan URL berikut sebagai Snap Redirect URI. `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth` Misalnya, jika menggunakan wilayah us-west-1, URL-nya akan menjadi. `https://us-west-1.console.aws.amazon.com/gluestudio/oauth) and choose Create OAuth App` Pilih **Buat OAuth Aplikasi**. 

1.  Kredensi aplikasi Anda (ID Klien dan Rahasia klien) akan ditampilkan. Simpan mereka karena mereka akan diminta untuk membuat koneksi. 

# Menghubungkan ke Snowflake di AWS Glue Studio
<a name="connecting-to-data-snowflake"></a>

**catatan**  
 Anda dapat menggunakan Spark AWS Glue untuk membaca dari dan menulis ke tabel di Snowflake di AWS Glue versi 4.0 dan yang lebih baru. Untuk mengonfigurasi koneksi Snowflake dengan AWS Glue pekerjaan secara terprogram, lihat. [Koneksi Redshift](aws-glue-programming-etl-connect-redshift-home.md) 

 AWS Gluemenyediakan dukungan bawaan untuk Snowflake. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Snowflake, pekerjaan integrasi data penulis, dan menjalankannya pada runtime Spark tanpa AWS Glue Studio server. 

 AWS Glue Studio menciptakan koneksi terpadu untuk Snowflake. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Membuat koneksi Snowflake](creating-snowflake-connection.md)
+ [Membuat simpul sumber Snowflake](creating-snowflake-source-node.md)
+ [Membuat simpul target Snowflake](creating-snowflake-target-node.md)
+ [Opsi lanjutan](#creating-snowflake-connection-advanced-options)

# Membuat koneksi Snowflake
<a name="creating-snowflake-connection"></a>

**catatan**  
 Koneksi terpadu (koneksi v2) menstandarisasi semua koneksi yang akan digunakan`USERNAME`, `PASSWORD` kunci untuk kredenal autentikasi dasar. Anda masih dapat membuat koneksi v1 melalui API dengan rahasia yang berisi`sfUser`,`sfPassword`. 

 Saat menambahkan **sumber Data - Snowflake** node diAWS Glue Studio, Anda dapat memilih koneksi AWS Glue Snowflake yang ada atau membuat koneksi baru. Anda harus memilih `SNOWFLAKE` jenis koneksi dan bukan jenis koneksi yang `JDBC` dikonfigurasi untuk terhubung ke Snowflake. Ikuti prosedur berikut untuk membuat koneksi AWS Glue Snowflake:

**Untuk membuat koneksi Snowflake**

1. Di Snowflake, buat pengguna, *snowflakeUser* dan kata sandi,. *snowflakePassword* 

1. Tentukan gudang Snowflake mana yang akan berinteraksi dengan pengguna ini,. *snowflakeWarehouse* Entah atur sebagai `DEFAULT_WAREHOUSE` for *snowflakeUser* di Snowflake atau ingat untuk langkah selanjutnya.

1. Di AWS Secrets Manager, buat rahasia menggunakan kredensi Snowflake Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html#create_secret_cli) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan *snowflakeUser* dengan kunci. `sfUser`
   + Saat memilih **pasangan kunci/nilai**, buat pasangan *snowflakePassword* dengan kunci. `sfPassword`
   + Saat memilih **pasangan kunci/nilai**, buat pasangan *snowflakeWarehouse* dengan kunci. `sfWarehouse` Ini tidak diperlukan jika default diatur di Snowflake. 

1. Dalam Katalog AWS Glue Data, buat koneksi dengan mengikuti langkah-langkah dalam [Menambahkan AWS Glue koneksi](https://docs.aws.amazon.com//glue/latest/dg/console-connections.html). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk langkah selanjutnya. 
   + Saat memilih **jenis Koneksi**, pilih Snowflake.
   + Saat memilih **URL Snowflake**, berikan nama host instance Snowflake Anda. URL akan menggunakan nama host dalam formulir`account_identifier.snowflakecomputing.com`.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

# Membuat simpul sumber Snowflake
<a name="creating-snowflake-source-node"></a>

## Izin diperlukan
<a name="creating-snowflake-source-node-permissions"></a>

 AWS Glue Studio pekerjaan menggunakan sumber data Snowflake memerlukan izin tambahan. Untuk informasi selengkapnya tentang cara menambahkan izin ke pekerjaan ETL, lihat [Meninjau izin IAM yang diperlukan](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) untuk pekerjaan ETL. 

 `SNOWFLAKE` AWS Glue koneksi menggunakan AWS Secrets Manager rahasia untuk memberikan informasi kredensi. Peran pratinjau pekerjaan dan data Anda AWS Glue Studio harus memiliki izin untuk membaca rahasia ini.

## Menambahkan sumber data Snowflake
<a name="creating-snowflake-source-node-add"></a>

**Prasyarat**:
+  AWS Secrets Manager Rahasia untuk kredensi Snowflake Anda
+ Koneksi Katalog AWS Glue Data tipe Snowflake

**Untuk menambahkan **Sumber Data — Snowflake node**:**

1.  Pilih koneksi untuk sumber data Snowflake Anda. Ini mengasumsikan bahwa koneksi sudah ada dan Anda dapat memilih dari koneksi yang ada. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Snowflake**. Untuk informasi selengkapnya, lihat [Ikhtisar penggunaan konektor dan koneksi](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. Informasi tentang koneksi terlihat, termasuk URL, grup keamanan, subnet, zona ketersediaan, deskripsi, dan stempel waktu yang dibuat (UTC) dan terakhir diperbarui (UTC). 

1.  Pilih opsi sumber Snowflake: 
   +  **Pilih satu tabel** — ini adalah tabel yang berisi data yang ingin Anda akses dari satu tabel Snowflake. 
   +  **Masukkan kueri khusus** — memungkinkan Anda mengakses kumpulan data dari beberapa tabel Snowflake berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, masukkan nama skema Snowflake. 

    Atau, pilih **Masukkan kueri khusus**. Pilih opsi ini untuk mengakses dataset kustom dari beberapa tabel Snowflake. Saat Anda memilih opsi ini, masukkan kueri Snowflake. 

1.  Dalam opsi **Kinerja dan keamanan** (opsional), 
   +  **Aktifkan pushdown kueri** - pilih apakah Anda ingin menurunkan pekerjaan ke instance Snowflake. 

1.  Di **properti Snowflake Kustom** (opsional), masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat simpul target Snowflake
<a name="creating-snowflake-target-node"></a>

## Izin diperlukan
<a name="creating-snowflake-target-node-permissions"></a>

 AWS Glue Studio pekerjaan menggunakan sumber data Snowflake memerlukan izin tambahan. Untuk informasi selengkapnya tentang cara menambahkan izin ke pekerjaan ETL, lihat [Meninjau izin IAM yang diperlukan](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) untuk pekerjaan ETL. 

 `SNOWFLAKE` AWS Glue koneksi menggunakan AWS Secrets Manager rahasia untuk memberikan informasi kredensi. Peran pratinjau pekerjaan dan data Anda AWS Glue Studio harus memiliki izin untuk membaca rahasia ini.

## Menambahkan target data Snowflake
<a name="creating-snowflake-target-node-add"></a>

**Untuk membuat simpul target Snowflake:**

1.  Pilih tabel Snowflake yang ada sebagai target, atau masukkan nama tabel baru. 

1.  Bila Anda menggunakan **target Data - Snowflake** target node, Anda dapat memilih dari opsi berikut: 
   +  **APPEND** - Jika tabel sudah ada, dump semua data baru ke dalam tabel sebagai insert. Jika tabel tidak ada, buat dan kemudian masukkan semua data baru. 
   +  **MERGE** - AWS Glue akan memperbarui atau menambahkan data ke tabel target Anda berdasarkan kondisi yang Anda tentukan. 

      Pilih opsi: 
     + **Pilih kunci dan tindakan sederhana** — pilih kolom yang akan digunakan sebagai kunci yang cocok antara data sumber dan kumpulan data target Anda. 

       Tentukan opsi berikut jika dicocokkan:
       + Perbarui catatan dalam kumpulan data target Anda dengan data dari sumber.
       + Hapus catatan dalam kumpulan data target Anda.

       Tentukan opsi berikut jika tidak cocok:
       + Masukkan data sumber sebagai baris baru ke dalam kumpulan data target Anda.
       + Jangan lakukan apa-apa.
     + **Masukkan pernyataan MERGE kustom** — Anda kemudian dapat memilih pernyataan **Validasi Gabungan untuk memverifikasi bahwa pernyataan** tersebut valid atau tidak valid.
   +  **TRUNCATE** — Jika tabel sudah ada, potong data tabel dengan terlebih dahulu membersihkan isi tabel target. Jika truncate berhasil, maka masukkan semua data. Jika tabel tidak ada, buat tabel dan masukkan semua data. Jika pemotongan tidak berhasil, operasi akan gagal. 
   +  **DROP** — Jika tabel sudah ada, hapus metadata tabel dan data. Jika penghapusan berhasil, maka masukkan semua data. Jika tabel tidak ada, buat tabel dan masukkan semua data. Jika drop tidak berhasil, operasi akan gagal. 

## Opsi lanjutan
<a name="creating-snowflake-connection-advanced-options"></a>

Lihat [koneksi Snowflake](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-snowflake-home.html) di panduan AWS Glue pengembang. 

# Menghubungkan ke Stripe di AWS Glue Studio
<a name="connecting-to-data-stripe"></a>

 Stripe adalah platform pemrosesan pembayaran dan pemrosesan kartu kredit online untuk bisnis. Platform Stripe memungkinkan bisnis menerima pembayaran online, membuat langganan (penagihan berulang) untuk e-commerce mereka, dan menyiapkan akun kembali untuk menerima pembayaran. Stripe juga mendukung pembayaran multi-pihak di mana ia memungkinkan bisnis untuk mengatur pasar mereka dan memungkinkan untuk mengumpulkan pembayaran dan kemudian membayar kepada penjual atau penyedia layanan melalui akun “Terhubung”. 

**Topics**
+ [AWS Glue dukungan untuk Stripe](stripe-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](stripe-configuring-iam-permissions.md)
+ [Mengkonfigurasi Stripe](stripe-configuring.md)
+ [Mengkonfigurasi koneksi Stripe](stripe-configuring-connections.md)
+ [Membaca dari entitas Stripe](stripe-reading-from-entities.md)
+ [Opsi koneksi garis](stripe-connection-options.md)
+ [Batasan](stripe-limitations.md)
+ [Membuat akun Stripe baru dan mengonfigurasi aplikasi klien](stripe-new-account-creation.md)

# AWS Glue dukungan untuk Stripe
<a name="stripe-support"></a>

AWS Glue mendukung Stripe sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Stripe.

**Didukung sebagai target?**  
Tidak.

**Versi Slack API yang didukung**  
 v1. 

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="stripe-configuring-iam-permissions"></a>

 Kebijakan contoh berikut menjelaskan izin IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM,, dan Amazon EC2. Amazon CloudWatch Logs Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol. 

# Mengkonfigurasi Stripe
<a name="stripe-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Stripe, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="stripe-configuring-min-requirements"></a>
+  Anda harus memiliki akun Stripe dengan email dan kata sandi. Untuk informasi selengkapnya, lihat [Membuat akun Stripe baru dan mengonfigurasi aplikasi klien](stripe-new-account-creation.md). 
+  Akun Stripe Anda diaktifkan untuk akses API. Semua penggunaan Stripe API tersedia tanpa biaya tambahan. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Stripe Anda. 

# Mengkonfigurasi koneksi Stripe
<a name="stripe-configuring-connections"></a>

 Stripe mendukung otentikasi kustom. Untuk informasi selengkapnya tentang membuat kunci API yang diperlukan untuk otorisasi kustom, lihat Dokumentasi [STRIPE REST API](https://docs.stripe.com/api/authentication). 

Untuk mengkonfigurasi koneksi Stripe:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan — Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai. 

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini: 

   1. Saat memilih **jenis Koneksi**, pilih Stripe.

   1.  Pilih peran IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token. 

   1.  Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda. 

1.  Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`. 

# Membaca dari entitas Stripe
<a name="stripe-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Stripe yang ingin Anda baca. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih\$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Saldo | Tidak | Tidak | Tidak | Ya | Tidak | 
| Transaksi Saldo | Ya | Ya | Tidak | Ya | Ya | 
| Biaya | Ya | Ya | Tidak | Ya | Ya | 
| Perselisihan | Ya | Ya | Tidak | Ya | Ya | 
| Tautan File | Ya | Ya | Tidak | Ya | Ya | 
| PaymentIntents | Ya | Ya | Tidak | Ya | Ya | 
| SetupIntents | Ya | Ya | Tidak | Ya | Ya | 
| Pembayaran | Ya | Ya | Tidak | Ya | Ya | 
| Pengembalian dana | Ya | Ya | Tidak | Ya | Ya | 
| Produk | Ya | Ya | Tidak | Ya | Ya | 
| Harga | Ya | Ya | Tidak | Ya | Ya | 
| Kupon | Ya | Ya | Tidak | Ya | Ya | 
| Kode Promosi | Ya | Ya | Tidak | Ya | Ya | 
| Kode Pajak | Tidak | Ya | Tidak | Ya | Tidak | 
| Tarif Pajak | Ya | Ya | Tidak | Ya | Ya | 
| Tarif Pengiriman | Ya | Ya | Tidak | Ya | Ya | 
| Sesi | Ya | Ya | Tidak | Ya | Ya | 
| Catatan Kredit | Ya | Ya | Tidak | Ya | Ya | 
| Pelanggan | Ya | Ya | Tidak | Ya | Ya | 
| Faktur | Ya | Ya | Tidak | Ya | Ya | 
| Item Faktur | Ya | Ya | Tidak | Ya | Tidak | 
| Rencana | Ya | Ya | Tidak | Ya | Ya | 
| Kutipan | Ya | Ya | Tidak | Ya | Tidak | 
| Langganan | Ya | Ya | Tidak | Ya |  | 
| Item Berlangganan | Tidak | Ya | Tidak | Ya | Tidak | 
| Jadwal Berlangganan | Ya | Ya | Tidak | Ya | Ya | 
| Akun | Tidak | Ya | Tidak | Ya | Ya | 
| Biaya Aplikasi | Ya | Ya | Tidak | Ya | Ya | 
| Spesifikasi Negara | Tidak | Ya | Tidak | Ya | Tidak | 
| Transfer | Ya | Ya | Tidak | Ya | Ya | 
| Peringatan Penipuan Dini | Ya | Ya | Tidak | Ya | Ya | 
| Tipe Laporan | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
stripe_read = glueContext.create_dynamic_frame.from_options(
    connection_type="stripe",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupons",
        "API_VERSION": "v1"
    }
)
```

 **Entitas garis dan detail bidang** 


| Entitas | Field | Tipe data | Operator yang Didukung | 
| --- | --- | --- | --- | 
| Saldo |  |  |  | 
|  | tersedia | Daftar |  | 
|  | connect\$1reserved | Daftar |  | 
|  | menunggu | Daftar |  | 
|  | livemode | Boolean |  | 
|  | object | String |  | 
|  | instant\$1available | Daftar |  | 
|  | mengeluarkan | Struct |  | 
| Transaksi Saldo |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat |  | 
|  | tersedia\$1on | DateTime | =, >=, <=,<,> | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | deskripsi | String |  | 
|  | nilai tukar | BigDecimal |  | 
|  | biaya | Bilangan Bulat |  | 
|  | fee\$1details | Daftar |  | 
|  | net | Bilangan Bulat |  | 
|  | pelaporan\$1kategori | String |  | 
|  | sumber | String | = | 
|  | status | String |  | 
|  | jenis | String | = | 
|  | cross\$1border\$1classification | String |  | 
| Biaya |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | jumlah\$1ditangkap | Bilangan Bulat |  | 
|  | jumlah\$1dikembalikan | Bilangan Bulat |  | 
|  | application | String |  | 
|  | application\$1fee | String |  | 
|  | application\$1fee\$1amount | Bilangan Bulat |  | 
|  | balance\$1transaction | String |  | 
|  | billing\$1details | Struct |  | 
|  | calculated\$1statement\$1descriptor | String |  | 
|  | ditangkap | Boolean |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | pelanggan | String | = | 
|  | deskripsi | String |  | 
|  | tujuan | String |  | 
|  | pertikaian | String |  | 
|  | diperdebatkan | Boolean | = | 
|  | failure\$1balance\$1transaction | String |  | 
|  | failure\$1code | String |  | 
|  | failure\$1message | String |  | 
|  | penipuan\$1detail | Struct |  | 
|  | faktur | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | on\$1behalf\$1of | String |  | 
|  | memesan | String |  | 
|  | hasil | Struct |  | 
|  | digaji | Boolean |  | 
|  | pembayaran\$1niat | String | = | 
|  | metode pembayaran | String |  | 
|  | payment\$1method\$1details | Struct |  | 
|  | receipt\$1email | String |  | 
|  | receipt\$1number | String |  | 
|  | receipt\$1url | String |  | 
|  | dikembalikan | Boolean | = | 
|  | mengembalikan uang | Struct |  | 
|  | ulasan | String |  | 
|  | kirim | Struct |  | 
|  | sumber | Struct |  | 
|  | source\$1transfer | String |  | 
|  | statement\$1descriptor | String |  | 
|  | statement\$1descriptor\$1suffix | String |  | 
|  | status | String |  | 
|  | transfer | String |  | 
|  | transfer\$1data | Struct |  | 
|  | transfer\$1group | String | = | 
| Perselisihan |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | balance\$1transaction | String |  | 
|  | balance\$1transactions | Daftar |  | 
|  | biaya | String | = | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | bukti | Struct |  | 
|  | bukti\$1detail | Struct |  | 
|  | is\$1charge\$1refundable | Boolean |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | pembayaran\$1niat | String | = | 
|  | akal budi | String | = | 
|  | status | String |  | 
|  | payment\$1method\$1details | Struct |  | 
| Tautan File |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | kedaluwarsa | Boolean | = | 
|  | kedaluwarsa\$1at | DateTime |  | 
|  | file | String | = | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | url | String |  | 
| PaymentIntents |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat |  | 
|  | amount\$1capturable | Bilangan Bulat |  | 
|  | jumlah\$1detail | Struct |  | 
|  | jumlah\$1diterima | Bilangan Bulat |  | 
|  | application | String |  | 
|  | application\$1fee\$1amount | Bilangan Bulat |  | 
|  | automatic\$1payment\$1methods | Struct |  | 
|  | batal\$1at | DateTime |  | 
|  | pembatalan\$1alasan | String |  | 
|  | capture\$1method | String |  | 
|  | client\$1secret | String |  | 
|  | confirmation\$1method | String |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | pelanggan | String | = | 
|  | deskripsi | String |  | 
|  | faktur | String |  | 
|  | last\$1payment\$1error | Struct |  | 
|  | biaya terbaru\$1 | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | next\$1action | Struct |  | 
|  | on\$1behalf\$1of | String |  | 
|  | metode pembayaran | String |  | 
|  | payment\$1method\$1options | Struct |  | 
|  | payment\$1method\$1types | Daftar |  | 
|  | payment\$1method\$1configuration\$1details | Struct |  | 
|  | pengolahan | Struct |  | 
|  | receipt\$1email | String |  | 
|  | ulasan | String |  | 
|  | setup\$1future\$1usage | String |  | 
|  | kirim | Struct |  | 
|  | sumber | String |  | 
|  | statement\$1descriptor | String |  | 
|  | statement\$1descriptor\$1suffix | String |  | 
|  | status | String |  | 
|  | transfer\$1data | Struct |  | 
|  | transfer\$1group | String |  | 
| SetupIntents |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | application | String |  | 
|  | pembatalan\$1alasan | String |  | 
|  | client\$1secret | String |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | pelanggan | String | = | 
|  | deskripsi | String |  | 
|  | flow\$1arah | Daftar |  | 
|  | last\$1setup\$1error | Struct |  | 
|  | upaya terbaru\$1 | String |  | 
|  | livemode | Boolean |  | 
|  | mandat | String |  | 
|  | Metadata | Struct |  | 
|  | next\$1action | Struct |  | 
|  | on\$1behalf\$1of | String |  | 
|  | metode pembayaran | String |  | 
|  | payment\$1method\$1options | Struct |  | 
|  | payment\$1method\$1types | Daftar |  | 
|  | mandat single\$1use\$1 | String |  | 
|  | status | String |  | 
|  | pemakaian | String |  | 
|  | automatic\$1payment\$1methods | Struct |  | 
| Pembayaran |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | datang\$1tanggal | DateTime | =, >=, <=,<,> | 
|  | automatic | Boolean |  | 
|  | balance\$1transaction | String |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | deskripsi | String | = | 
|  | tujuan | String |  | 
|  | failure\$1balance\$1transaction | String |  | 
|  | failure\$1code | String |  | 
|  | failure\$1message | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | metode | String |  | 
|  | original\$1payout | String |  | 
|  | reversed\$1by | String |  | 
|  | rekonsiliasi\$1status | String |  | 
|  | source\$1type | String |  | 
|  | statement\$1descriptor | String |  | 
|  | status | String |  | 
|  | jenis | String |  | 
|  | application\$1fee | String |  | 
|  | application\$1fee\$1amount | Bilangan Bulat |  | 
| Pengembalian dana |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat |  | 
|  | balance\$1transaction | String |  | 
|  | biaya | String | = | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | Metadata | Struct |  | 
|  | destinasi\$1detail | Struct |  | 
|  | pembayaran\$1niat | String | = | 
|  | akal budi | String |  | 
|  | receipt\$1number | String |  | 
|  | source\$1transfer\$1reversal | String |  | 
|  | status | String |  | 
|  | transfer\$1reversal | String |  | 
| Produk |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | atribut | Daftar |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | default\$1price | String |  | 
|  | deskripsi | String |  | 
|  | citra | Daftar |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | name | String |  | 
|  | package\$1dimensions | Struct |  | 
|  | dapat dikirimkan | Boolean |  | 
|  | statement\$1descriptor | String |  | 
|  | tax\$1code | String |  | 
|  | jenis | String | = | 
|  | unit\$1label | String |  | 
|  | diperbarui | DateTime |  | 
|  | url | String |  | 
|  | fitur | Daftar |  | 
| Harga |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | billing\$1scheme | String |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String | = | 
|  | custom\$1unit\$1amount | Struct |  | 
|  | livemode | Boolean |  | 
|  | lookup\$1key | String |  | 
|  | Metadata | Struct |  | 
|  | nama panggilan | String |  | 
|  | produk | String | = | 
|  | berulang | Struct |  | 
|  | tax\$1behavior | String |  | 
|  | tiers\$1mode | String |  | 
|  | transform\$1kuantitas | Struct |  | 
|  | jenis | String | = | 
|  | unit\$1amount | Bilangan Bulat |  | 
|  | unit\$1amount\$1decimal | String |  | 
| Kupon |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | jumlah\$1off | Bilangan Bulat |  | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String | = | 
|  | durasi | String | = | 
|  | duration\$1in\$1months | Bilangan Bulat | =,<,> | 
|  | livemode | Boolean |  | 
|  | max\$1redemptions | Bilangan Bulat | =, <, > | 
|  | Metadata | Struct |  | 
|  | name | String |  | 
|  | persen | Ganda | = | 
|  | tebus | DateTime | =, >=, <=, <, > | 
|  | times\$1redeem | Bilangan Bulat |  | 
|  | sahih | Boolean |  | 
| Kode Promosi |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | code | String | = | 
|  | kupon | Struct |  | 
|  | dibuat | DateTime | =,>=,<=,<,> | 
|  | pelanggan | String |  | 
|  | kedaluwarsa\$1at | DateTime |  | 
|  | livemode | Boolean |  | 
|  | max\$1redemptions | Bilangan Bulat |  | 
|  | Metadata | Struct |  | 
|  | pembatasan | Struct |  | 
|  | times\$1redeem | Bilangan Bulat |  | 
| Kode Pajak |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | deskripsi | String |  | 
|  | name | String |  | 
| Tarif Pajak |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | negeri | String |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | deskripsi | String |  | 
|  | display\$1name | String |  | 
|  | inklusif | Boolean | = | 
|  | wilayah | String |  | 
|  | yurisdiksi\$1level | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | persentase | Ganda |  | 
|  | effective\$1percentage | Ganda |  | 
|  | status | String |  | 
|  | tax\$1type | String |  | 
| Tarif Pengiriman |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | pengiriman\$1estimasi | Struct |  | 
|  | display\$1name | String |  | 
|  | fixed\$1amount | Struct |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | tax\$1behavior | String |  | 
|  | tax\$1code | String |  | 
|  | jenis | String |  | 
| Sesi |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | setelah\$1kedaluwarsa | Struct |  | 
|  | allow\$1promotion\$1codes | Boolean |  | 
|  | jumlah\$1subtotal | Bilangan Bulat |  | 
|  | jumlah\$1total | Bilangan Bulat |  | 
|  | automatic\$1tax | Struct |  | 
|  | billing\$1address\$1collection | String |  | 
|  | cancel\$1url | String |  | 
|  | client\$1reference\$1id | String |  | 
|  | persetujuan | Struct |  | 
|  | consent\$1collection | Struct |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | mata uang | String |  | 
|  | custom\$1text | Struct |  | 
|  | pelanggan | String |  | 
|  | customer\$1creation | String |  | 
|  | customer\$1details | Struct |  | 
|  | email pelanggan | String |  | 
|  | kedaluwarsa\$1at | DateTime |  | 
|  | faktur | String |  | 
|  | invoice\$1creation | Struct |  | 
|  | livemode | Boolean |  | 
|  | tempat | String |  | 
|  | Metadata | Struct |  | 
|  | Mode | String |  | 
|  | pembayaran\$1niat | String | = | 
|  | payment\$1link | String |  | 
|  | payment\$1method\$1collection | String |  | 
|  | payment\$1method\$1options | Struct |  | 
|  | payment\$1method\$1types | Daftar |  | 
|  | pembayaran\$1status | String |  | 
|  | phone\$1number\$1collection | Struct |  | 
|  | dipulihkan\$1dari | String |  | 
|  | setup\$1niat | String |  | 
|  | shipping\$1address\$1collection | Struct |  | 
|  | pengiriman\$1cost | Struct |  | 
|  | shipping\$1details | Struct |  | 
|  | shipping\$1options | Daftar |  | 
|  | status | String |  | 
|  | submit\$1type | String |  | 
|  | langganan | String |  | 
|  | success\$1url | String |  | 
|  | tax\$1id\$1collection | Struct |  | 
|  | total\$1details | Struct |  | 
|  | url | String |  | 
|  | ui\$1mode | String |  | 
| Catatan Kredit |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | mata uang | String |  | 
|  | pelanggan | String | = | 
|  | customer\$1balance\$1transaction | String |  | 
|  | discount\$1amount | Bilangan Bulat |  | 
|  | discount\$1amount | Daftar |  | 
|  | faktur | String | = | 
|  | lini | Struct |  | 
|  | livemode | Boolean |  | 
|  | memo | String |  | 
|  | Metadata | Struct |  | 
|  | number | String |  | 
|  | keluar\$1of\$1band\$1amount | Bilangan Bulat |  | 
|  | pdf | String |  | 
|  | akal budi | String |  | 
|  | pengembalian dana | String |  | 
|  | status | String |  | 
|  | subtotal | Bilangan Bulat |  | 
|  | subtotal\$1excluding\$1tax | Bilangan Bulat |  | 
|  | tax\$1amount | Daftar |  | 
|  | total | Bilangan Bulat |  | 
|  | total\$1excluding\$1tax | Bilangan Bulat |  | 
|  | jenis | String |  | 
|  | voided\$1at | DateTime |  | 
|  | amount\$1shipping | Bilangan Bulat |  | 
|  | efektif\$1at | DateTime |  | 
|  | pengiriman\$1cost | Struct |  | 
| Pelanggan |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | alamat | Struct |  | 
|  | keseimbangan | Bilangan Bulat |  | 
|  | dibuat | DateTime |  | 
|  | mata uang | String | =, >=, <=, <, > | 
|  | default\$1source | String |  | 
|  | nakal | Boolean | = | 
|  | deskripsi | String |  | 
|  | discount | Struct |  | 
|  | Email | String | = | 
|  | invoice\$1prefix | String |  | 
|  | invoice\$1settings | Struct |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | name | String |  | 
|  | next\$1invoice\$1sequence | Bilangan Bulat |  | 
|  | telepon | String |  | 
|  | preferred\$1locales | Daftar |  | 
|  | kirim | Struct |  | 
|  | bebas pajak | String |  | 
|  | test\$1clock | String |  | 
| Faktur |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | account\$1country | String |  | 
|  | account\$1name | String |  | 
|  | account\$1tax\$1ids | Daftar |  | 
|  | jumlah\$1jatuh tempo | Bilangan Bulat |  | 
|  | jumlah\$1dibayar | Bilangan Bulat |  | 
|  | jumlah\$1sisa | Bilangan Bulat |  | 
|  | application | String |  | 
|  | application\$1fee\$1amount | Bilangan Bulat |  | 
|  | coba\$1hitung | Bilangan Bulat |  | 
|  | berusaha | Boolean | = | 
|  | auto\$1advance | Boolean | = | 
|  | automatic\$1tax | Struct |  | 
|  | tagihan\$1alasan | String |  | 
|  | biaya | String |  | 
|  | collection\$1method | String | = | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | mata uang | String |  | 
|  | custom\$1fields | Daftar |  | 
|  | pelanggan | String | = | 
|  | customer\$1address | Struct |  | 
|  | email pelanggan | String |  | 
|  | nama\$1pelanggan | String |  | 
|  | customer\$1phone | String |  | 
|  | customer\$1shipping | Struct |  | 
|  | customer\$1tax\$1exempt | String |  | 
|  | customer\$1tax\$1ids | Daftar |  | 
|  | default\$1payment\$1method | String |  | 
|  | default\$1source | String |  | 
|  | default\$1tax\$1rates | Daftar |  | 
|  | deskripsi | String |  | 
|  | discount | Struct |  | 
|  | diskon | Daftar |  | 
|  | due\$1date | DateTime | =, >=, <=, <, > | 
|  | ending\$1balance | Bilangan Bulat |  | 
|  | kaki halaman | String |  | 
|  | dari\$1invoice | Struct |  | 
|  | hosted\$1invoice\$1url | String |  | 
|  | faktur\$1pdf | String |  | 
|  | last\$1finalization\$1error | Struct |  | 
|  | revisi terbaru\$1 | String |  | 
|  | lini | Struct |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | next\$1payment\$1attempt | DateTime |  | 
|  | number | String |  | 
|  | on\$1behalf\$1of | String |  | 
|  | digaji | Boolean | = | 
|  | paid\$1out\$1of\$1band | Boolean |  | 
|  | pembayaran\$1niat | String |  | 
|  | payment\$1settings | Struct |  | 
|  | period\$1akhir | DateTime | =, >=, <=, <, > | 
|  | period\$1start | DateTime | =, >=, <=, <, > | 
|  | post\$1payment\$1credit\$1notes\$1amount | Bilangan Bulat |  | 
|  | pre\$1payment\$1credit\$1notes\$1amount | Bilangan Bulat |  | 
|  | kutipan | String |  | 
|  | receipt\$1number | String |  | 
|  | merender | Struct |  | 
|  | rendering\$1options | Struct |  | 
|  | starting\$1balance | Bilangan Bulat |  | 
|  | statement\$1descriptor | String |  | 
|  | status | String | = | 
|  | status\$1transisi | Struct |  | 
|  | langganan | String |  | 
|  | subscription\$1details | Struct |  | 
|  | subtotal | Bilangan Bulat | =, <, > | 
|  | subtotal\$1excluding\$1tax | Bilangan Bulat |  | 
|  | pajak | Bilangan Bulat |  | 
|  | test\$1clock | String |  | 
|  | total | Bilangan Bulat | =, <, > | 
|  | total\$1discount\$1amount | Daftar |  | 
|  | total\$1excluding\$1tax | Bilangan Bulat |  | 
|  | total\$1tax\$1amount | Daftar |  | 
|  | transfer\$1data | Struct |  | 
|  | webhooks\$1delivered\$1at | DateTime |  | 
|  | automatically\$1finalizes\$1at | DateTime |  | 
|  | efektif\$1at | DateTime |  | 
|  | penerbit | Struct |  | 
| Item Faktur |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | mata uang | String |  | 
|  | pelanggan | String | = | 
|  | tanggal | DateTime |  | 
|  | deskripsi | String |  | 
|  | diskon | Boolean |  | 
|  | diskon | Daftar |  | 
|  | faktur | String | = | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | periode | Struct |  | 
|  | rencana | Struct |  | 
|  | price | Struct |  | 
|  | prorasi | Boolean | = | 
|  | kuantitas | Bilangan Bulat |  | 
|  | langganan | String |  | 
|  | subscription\$1item | String |  | 
|  | tarif pajak | Daftar |  | 
|  | test\$1clock | String |  | 
|  | unit\$1amount | Bilangan Bulat |  | 
|  | unit\$1amount\$1decimal | String |  | 
| Rencana |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | aktif | Boolean | = | 
|  | aggregate\$1usage | String |  | 
|  | jumlah | Bilangan Bulat |  | 
|  | jumlah\$1desimal | String |  | 
|  | billing\$1scheme | String |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | mata uang | String | = | 
|  | interval | String | = | 
|  | interval\$1count | Bilangan Bulat |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | nama panggilan | String |  | 
|  | produk | String | = | 
|  | tiers\$1mode | String |  | 
|  | transform\$1usage | Struct |  | 
|  | percobaan\$1period\$1days | Bilangan Bulat | =, <, > | 
|  | usage\$1type | String |  | 
|  | meter | String |  | 
| Kutipan |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah\$1subtotal | Bilangan Bulat |  | 
|  | jumlah\$1total | Bilangan Bulat |  | 
|  | application | String |  | 
|  | application\$1fee\$1amount | Bilangan Bulat |  | 
|  | application\$1fee\$1percent | Ganda |  | 
|  | automatic\$1tax | Struct |  | 
|  | collection\$1method | String |  | 
|  | dihitung | Struct |  | 
|  | dibuat | DateTime |  | 
|  | mata uang | String |  | 
|  | pelanggan | String | = | 
|  | default\$1tax\$1rates | Daftar |  | 
|  | deskripsi | String |  | 
|  | diskon | Daftar |  | 
|  | kedaluwarsa\$1at | DateTime |  | 
|  | kaki halaman | String |  | 
|  | dari\$1quote | Struct |  | 
|  | header | String |  | 
|  | faktur | String |  | 
|  | invoice\$1settings | Struct |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | number | String |  | 
|  | on\$1behalf\$1of | String |  | 
|  | status | String | = | 
|  | status\$1transisi | Struct |  | 
|  | langganan | String |  | 
|  | subscription\$1data | Struct |  | 
|  | subscription\$1schedule | String |  | 
|  | test\$1clock | String |  | 
|  | total\$1details | Struct |  | 
|  | transfer\$1data | Struct |  | 
| Langganan |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | application | String |  | 
|  | application\$1fee\$1percent | Ganda |  | 
|  | automatic\$1tax | Struct |  | 
|  | billing\$1cycle\$1anchor | DateTime |  | 
|  | billing\$1thresholds | Struct |  | 
|  | batal\$1at | DateTime |  | 
|  | cancel\$1at\$1period\$1end | Boolean |  | 
|  | batal\$1at | DateTime |  | 
|  | collection\$1method | String | = | 
|  | dibuat | DateTime | =, >=, <=,<,> | 
|  | mata uang | String |  | 
|  | current\$1period\$1end | DateTime | =, >=, <= | 
|  | current\$1period\$1start | DateTime | =, >=, <= | 
|  | pelanggan | String | = | 
|  | days\$1until\$1due | Bilangan Bulat |  | 
|  | default\$1payment\$1method | String |  | 
|  | default\$1source | String |  | 
|  | default\$1tax\$1rates | Daftar |  | 
|  | deskripsi | String |  | 
|  | discount | Struct |  | 
|  | ended\$1at | DateTime |  | 
|  | item | Struct |  | 
|  | terbaru\$1invoice | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | next\$1pending\$1invoice\$1item\$1invoice | DateTime |  | 
|  | pause\$1collection | Struct |  | 
|  | payment\$1settings | Struct |  | 
|  | pending\$1invoice\$1item\$1interval | Struct |  | 
|  | pending\$1setup\$1niat | String |  | 
|  | pending\$1update | Struct |  | 
|  | rencana | Struct |  | 
|  | kuantitas | Bilangan Bulat |  | 
|  | jadwal | String |  | 
|  | start\$1date | DateTime |  | 
|  | status | String | = | 
|  | test\$1clock | String |  | 
|  | transfer\$1data | Struct |  | 
|  | mencoba\$1end | DateTime |  | 
|  | coba\$1start | DateTime |  | 
| Item Berlangganan |  |  |  | 
|  | Id | String |  | 
|  | object | String |  | 
|  | billing\$1thresholds | Struct |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | Metadata | Struct |  | 
|  | rencana | Struct |  | 
|  | price | Struct |  | 
|  | langganan | String |  | 
|  | tarif pajak | Daftar |  | 
|  | diskon | Daftar |  | 
| Jadwal Berlangganan |  |  |  | 
|  | object | String |  | 
|  | application | String |  | 
|  | batal\$1at | DateTime |  | 
|  | completed\$1at | DateTime |  | 
|  | dibuat | DateTime |  | 
|  | current\$1phase | Struct |  | 
|  | pelanggan | String | = | 
|  | default\$1settings | Struct |  | 
|  | end\$1behavior | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | fase | Daftar |  | 
|  | released\$1at | DateTime |  | 
|  | released\$1subscription | String |  | 
|  | renewal\$1interval | String |  | 
|  | status | String |  | 
|  | langganan | String |  | 
|  | test\$1clock | String |  | 
| Akun |  |  |  | 
|  | details\$1submit | Boolean |  | 
|  | tos\$1acceptance | Struct |  | 
|  | jenis | String |  | 
|  | Metadata | Struct |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | default\$1currency | String |  | 
|  | kemampuan | Struct |  | 
|  | charges\$1enabled | Boolean |  | 
|  | pengaturan | Struct |  | 
|  | persyaratan | Struct |  | 
|  | payouts\$1enabled | Boolean |  | 
|  | future\$1requirements | Struct |  | 
|  | external\$1accounts | Struct |  | 
|  | pengontrol | Struct |  | 
|  | negeri | String |  | 
|  | Email | String |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | profil bisnis | Struct |  | 
|  | business\$1type | String |  | 
|  | perusahaan | Struct |  | 
| Biaya Aplikasi |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | akun | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | jumlah\$1dikembalikan | Bilangan Bulat | =, <, > | 
|  | application | String |  | 
|  | balance\$1transaction | String |  | 
|  | biaya | String | = | 
|  | dibuat | DateTime |  | 
|  | mata uang | String |  | 
|  | livemode | Boolean |  | 
|  | originating\$1transaction | String |  | 
|  | dikembalikan | Boolean | = | 
|  | mengembalikan uang | Struct |  | 
|  | fee\$1source | Struct |  | 
| Spesifikasi Negara |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | default\$1currency | String |  | 
|  | supported\$1bank\$1account\$1currencies | Struct |  | 
|  | supported\$1payment\$1currencies | Daftar |  | 
|  | supported\$1payment\$1methods | Daftar |  | 
|  | supported\$1transfer\$1countries | Daftar |  | 
|  | verification\$1fields | Struct |  | 
| Transfer |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | jumlah | Bilangan Bulat | =, <, > | 
|  | amount\$1reversed | Bilangan Bulat |  | 
|  | balance\$1transaction | String |  | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | mata uang | String | = | 
|  | deskripsi | String |  | 
|  | tujuan | String | = | 
|  | destination\$1payment | String |  | 
|  | livemode | Boolean |  | 
|  | Metadata | Struct |  | 
|  | pembalikan | Struct |  | 
|  | terbalik | Boolean |  | 
|  | source\$1transaction | String |  | 
|  | source\$1type | String |  | 
|  | transfer\$1group | String | = | 
| Peringatan Penipuan Dini |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | dapat ditindaklanjuti | Boolean |  | 
|  | biaya | String | = | 
|  | dibuat | DateTime | =, >=, <=, <, > | 
|  | penipuan\$1type | String |  | 
|  | livemode | Boolean |  | 
|  | pembayaran\$1niat | String | = | 
| Tipe Laporan |  |  |  | 
|  | id | String |  | 
|  | object | String |  | 
|  | data\$1available\$1end | DateTime |  | 
|  | data\$1available\$1start | DateTime |  | 
|  | default\$1columns | Daftar |  | 
|  | livemode | Boolean |  | 
|  | name | String |  | 
|  | diperbarui | DateTime |  | 
|  | versi | Bilangan Bulat |  | 

 **Mempartisi kueri** 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-07-01T00:00:00.000Z"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 Detail dukungan bidang partisi yang bijaksana dari entitas ditangkap dalam tabel di bawah ini. 


| Nama Entitas | Bidang Partisi | Tipe data | 
| --- | --- | --- | 
| Transaksi Saldo | dibuat | DateTime | 
| Biaya | dibuat | DateTime | 
| Perselisihan | dibuat | DateTime | 
| Tautan File | dibuat | DateTime | 
| PaymentIntents | dibuat | DateTime | 
| SetupIntents | dibuat | DateTime | 
| Pembayaran | dibuat | DateTime | 
| Pengembalian dana | dibuat | DateTime | 
| Produk | dibuat | DateTime | 
| Harga | dibuat | DateTime | 
| Kupon | dibuat | DateTime | 
| Kode Promosi | dibuat | DateTime | 
| Tarif Pajak | dibuat | DateTime | 
| Tarif Pengiriman | dibuat | DateTime | 
| Sesi | dibuat | DateTime | 
| Catatan Kredit | dibuat | DateTime | 
| Pelanggan | dibuat | DateTime | 
| Faktur | dibuat | DateTime | 
| Rencana | dibuat | DateTime | 
| Langganan | dibuat | DateTime | 
| Jadwal Berlangganan | dibuat | DateTime | 
| Akun | dibuat | DateTime | 
| Biaya Aplikasi | dibuat | DateTime | 
| Transfer | dibuat | DateTime | 
| Peringatan Penipuan Dini | dibuat | DateTime | 

 **Contoh** 

```
stripe_read = glueContext.create_dynamic_frame.from_options(
    connection_type="stripe",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupons",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "created"
        "LOWER_BOUND": "2024-05-01T20:55:02.000Z"
        "UPPER_BOUND": "2024-07-11T20:55:02.000Z"
        "NUM_PARTITIONS": "10"
    }
)
```

# Opsi koneksi garis
<a name="stripe-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Stripe:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Object Anda di Stripe. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Stripe Rest API yang ingin Anda gunakan. Contoh: v1. 
+  `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. 
+  `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. 
+  `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. 
+  `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih. 
+  `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. 

# Batasan
<a name="stripe-limitations"></a>

Berikut ini adalah batasan untuk konektor Stripe:
+  Hanya Partisi Berbasis Bidang yang didukung oleh konektor. 
+  Partisi Berbasis Rekam tidak didukung oleh konektor, tidak ada ketentuan untuk mengambil jumlah total catatan. 
+  Jenis data kunci primer adalah String, jadi Partisi Berbasis Id tidak didukung oleh konektor. 

# Membuat akun Stripe baru dan mengonfigurasi aplikasi klien
<a name="stripe-new-account-creation"></a>

**Membuat akun Stripe**

1. Pilih pada **https://dashboard.stripe.comtautan/daftar**.

1. Masukkan Email Anda, Nama lengkap, Kata Sandi & pilih **Buat Akun**.

1. Setelah login dengan akun, verifikasi akun dengan memilih **Buka Gmail**.

1. Verifikasi akun dengan mengklik tautan verifikasi yang diterima di email.

1. Setelah mengklik verifikasi alamat email, itu akan mengarahkan ke halaman lain

1. Setelah mengklik **Aktifkan pembayaran** untuk mengaktifkan akun, itu akan mengarahkan ke halaman Aktifkan pembayaran (**https://dashboard.stripe.com/selamat datang**) dan pastikan untuk mengisi semua detail valid Anda dan setelah itu pilih tombol **Lanjutkan**.



**Membuat aplikasi pengembang Slack**

1. Masuk ke [Stripe](https://dashboard.stripe.com/login).

1. Pilih **Pengembang** seperti yang ditampilkan di bagian atas gambar di bawah ini.

1. Pilih **kunci API** di bawah Pengembang.

1. Pilih **Reveal test key** untuk mendapatkan kunci API.

# Menghubungkan ke Teradata Vantage di AWS Glue Studio
<a name="connecting-to-data-teradata"></a>

 AWS Gluemenyediakan dukungan bawaan untuk Teradata Vantage. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Teradata, membuat pekerjaan integrasi data, dan menjalankannya di runtime Spark tanpa AWS Glue Studio server. 

 AWS Glue Studio membuat koneksi terpadu untuk Teradata Vantage. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Membuat koneksi Teradata Vantage](creating-teradata-connection.md)
+ [Membuat node sumber Teradata](creating-teradata-source-node.md)
+ [Membuat node target Teradata](creating-teradata-target-node.md)
+ [Opsi lanjutan](#creating-teradata-connection-advanced-options)

# Membuat koneksi Teradata Vantage
<a name="creating-teradata-connection"></a>

Untuk terhubung ke Teradata Vantage dari AWS Glue, Anda harus membuat dan menyimpan kredenal Teradata Anda secara AWS Secrets Manager rahasia, lalu mengaitkan rahasia itu dengan koneksi Teradata. AWS Glue 

**Prasyarat**:
+ Jika Anda mengakses lingkungan Teradata Anda melalui Amazon VPC, konfigurasikan Amazon VPC untuk memungkinkan pekerjaan AWS Glue Anda berkomunikasi dengan lingkungan Teradata. Kami tidak menyarankan mengakses lingkungan Teradata melalui internet publik.

  Di Amazon VPC, identifikasi atau buat **grup **VPC**, **Subnet**, dan Keamanan** yang AWS Glue akan digunakan saat menjalankan pekerjaan. Selain itu, Anda perlu memastikan Amazon VPC dikonfigurasi untuk mengizinkan lalu lintas jaringan antara instans Teradata Anda dan lokasi ini. Pekerjaan Anda perlu membuat koneksi TCP dengan port klien Teradata Anda. Untuk informasi selengkapnya tentang port Teradata, lihat dokumentasi [Teradata](https://docs.teradata.com/r/Teradata-VantageTM-on-AWS-DIY-Installation-and-Administration-Guide/April-2020/Before-Deploying-Vantage-on-AWS-DIY/Security-Groups-and-Ports).

  Berdasarkan tata letak jaringan Anda, konektivitas VPC yang aman mungkin memerlukan perubahan di Amazon VPC dan layanan jaringan lainnya. Untuk informasi lebih lanjut tentang AWS konektivitas, lihat [Opsi AWS Konektivitas](https://docs.teradata.com/r/Teradata-VantageCloud-Enterprise/Get-Started/Connecting-Your-Environment/AWS-Connectivity-Options) di dokumentasi Teradata.

**Untuk mengkonfigurasi koneksi AWS Glue Teradata:**

1. Dalam konfigurasi Teradata Anda, identifikasi atau buat pengguna dan kata sandi AWS Glue akan terhubung dengan, *teradataUser* dan. *teradataPassword* Untuk informasi lebih lanjut, lihat [Ikhtisar Keamanan Vantage di dokumentasi](https://docs.teradata.com/r/Configuring-Teradata-VantageTM-After-Installation/January-2021/Security-Overview/Vantage-Security-Overview) Teradata.

1. Di AWS Secrets Manager, buat rahasia menggunakan kredenal Teradata Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `user` dengan nilainya. *teradataUsername*
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `password` dengan nilainya. *teradataPassword*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk langkah selanjutnya. 
   + Saat memilih **jenis Koneksi**, pilih Teradata.
   + Saat memberikan **URL JDBC**, berikan URL untuk instance Anda. Anda juga dapat membuat hardcode parameter koneksi yang dipisahkan koma tertentu di URL JDBC Anda. URL harus sesuai dengan format berikut: `jdbc:teradata://teradataHostname/ParameterName=ParameterValue,ParameterName=ParameterValue`

     Parameter URL yang didukung meliputi:
     + `DATABASE`— nama database pada host untuk mengakses secara default.
     + `DBS_PORT`— port database, digunakan saat berjalan pada port yang tidak standar.
   + Saat memilih **jenis Credential**, pilih **AWS Secrets Manager**, lalu atur **AWS Secret** ke*secretName*.

1. Dalam situasi berikut, Anda mungkin memerlukan konfigurasi tambahan:
   + 

     Untuk instans Teradata yang dihosting di VPC AWS Amazon
     + Anda harus memberikan informasi koneksi Amazon VPC ke AWS Glue koneksi yang menentukan kredenal keamanan Teradata Anda. **Saat membuat atau memperbarui koneksi Anda, atur **grup **VPC**, **Subnet**, dan Keamanan** dalam opsi Jaringan.**

# Membuat node sumber Teradata
<a name="creating-teradata-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-teradata-source-node-prerequisites"></a>
+ Koneksi AWS Glue Teradata Vantage, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Teradata Vantage](creating-teradata-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel Teradata yang ingin Anda baca,*tableName*, atau kueri. *targetQuery*

## Menambahkan sumber data Teradata
<a name="creating-teradata-source-node-add"></a>

**Untuk menambahkan **sumber Data — Teradata node**:**

1.  Pilih koneksi untuk sumber data Teradata Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi baru**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Teradata Vantage](creating-teradata-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1.  Pilih opsi **Sumber Teradata:** 
   +  **Pilih satu tabel** — akses semua data dari satu tabel. 
   +  **Masukkan kueri kustom** — akses kumpulan data dari beberapa tabel berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, masukkan*tableName*. 

    Jika Anda memilih **Masukkan kueri kustom**, masukkan kueri SQL SELECT. 

1.  Di **properti Custom Teradata**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat node target Teradata
<a name="creating-teradata-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-teradata-target-node-prerequisites"></a>
+ Koneksi AWS Glue Teradata Vantage, dikonfigurasi dengan AWS Secrets Manager rahasia, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Teradata Vantage](creating-teradata-connection.md)
+ Izin yang sesuai pada pekerjaan Anda untuk membaca rahasia yang digunakan oleh koneksi.
+ Tabel Teradata yang ingin Anda tulis,. *tableName*

## Menambahkan target data Teradata
<a name="creating-teradata-target-node-add"></a>

**Untuk menambahkan **target Data — Teradata node**:**

1.  Pilih koneksi untuk sumber data Teradata Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Teradata**. Untuk informasi selengkapnya, lihat [Ikhtisar penggunaan konektor dan koneksi](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Konfigurasikan **nama Tabel** dengan menyediakan*tableName*.

1.  Di **properti Custom Teradata**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-teradata-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat simpul Teradata. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Koneksi Teradata Vantage](aws-glue-programming-etl-connect-teradata-home.md). 

# Menghubungkan ke Twilio
<a name="connecting-to-data-twilio"></a>

Twilio menyediakan alat komunikasi yang dapat diprogram untuk membuat dan menerima panggilan telepon, mengirim, dan menerima pesan teks, dan melakukan fungsi komunikasi lainnya menggunakan layanan webnya. APIs Twilio memiliki APIs kekuatan platformnya untuk komunikasi. Di balik ini APIs adalah lapisan perangkat lunak yang menghubungkan dan mengoptimalkan jaringan komunikasi di seluruh dunia untuk memungkinkan pengguna Anda menelepon dan mengirim pesan kepada siapa pun, secara global. Sebagai pengguna Twilio, Anda dapat terhubung AWS Glue ke akun Twilio Anda. Kemudian, Anda dapat menggunakan Twilio sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Twilio dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue Dukungan untuk Twilio](twilio-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](twilio-configuring-iam-permissions.md)
+ [Mengkonfigurasi Twilio](twilio-configuring.md)
+ [Mengkonfigurasi koneksi Twilio](twilio-configuring-connections.md)
+ [Membaca dari entitas Twilio](twilio-reading-from-entities.md)
+ [Opsi koneksi Twilio](twilio-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Twilio](twilio-connector-limitations.md)

# AWS Glue Dukungan untuk Twilio
<a name="twilio-support"></a>

AWS Glue mendukung Twilio sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Twilio.

**Didukung sebagai target?**  
Tidak.

**Versi Twilio API yang didukung**  
Versi Twilio API berikut didukung:
+ v1
+ 2010-04-01

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="twilio-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Twilio
<a name="twilio-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Twilio, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="twilio-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Twilio dengan nama pengguna dan kata sandi.
+ Akun Twilio Anda diaktifkan untuk akses API.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Twilio Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Twilio.

# Mengkonfigurasi koneksi Twilio
<a name="twilio-configuring-connections"></a>

Twilio mendukung username dan password untuk Basic Authentication. Basic Authentication adalah metode otentikasi sederhana di mana klien memberikan kredensi langsung untuk mengakses sumber daya yang dilindungi. AWS Glue dapat menggunakan nama pengguna (Akun SID) dan kata sandi (Token Auth) untuk mengautentikasi Twilio. APIs

Untuk dokumentasi Twilio publik untuk alur Autentikasi Dasar, lihat Otentikasi [Dasar](https://www.twilio.com/docs/glossary/what-is-basic-authentication) \$1 Twilio.

Untuk mengkonfigurasi koneksi Twilio:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:
   + Untuk Otentikasi Dasar: Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan **SID Akun** (Nama Pengguna) dan **Token Auth** (Kata Sandi).
**catatan**  
Anda harus membuat rahasia untuk koneksi Anda AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Twilio.

   1. Berikan contoh Twilio yang ingin Anda sambungkan. `[Edge\$1Location](https://www.twilio.com/docs/global-infrastructure/edge-locations)`

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Twilio
<a name="twilio-reading-from-entities"></a>

**Prasyarat**

Objek Twilio yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `SMS-Message` atau`SMS-CountryPricing`.

**Entitas yang didukung untuk sumber**:


| Entitas | Antarmuka | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | --- | 
| SMS-pesan | REST | Ya | Ya | Tidak | Ya | Ya | 
| SMS- CountryPricing | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Panggilan Suara | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Aplikasi Suara | REST | Ya | Ya | Tidak | Ya | Tidak | 
| OutgoingCallerID Suara | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Antrian Suara | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Percakapan-Percakapan | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Percakapan-Pengguna | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Peran Percakapan | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Percakapan-Konfigurasi | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Percakapan- AddressConfiguration | REST | Ya | Ya | Tidak | Ya | Tidak | 
| Percakapan- WebhookConfiguration | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Percakapan- ParticipantConversation | REST | Tidak | Tidak | Tidak | Ya | Tidak | 
| Percakapan-Kredensi | REST | Tidak | Ya | Tidak | Ya | Tidak | 
| Percakapan- ConversationService | REST | Tidak | Ya | Tidak | Ya | Tidak | 

**Contoh:**

```
twilio_read = glueContext.create_dynamic_frame.from_options(
    connection_type="twilio",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "sms-message",
        "API_VERSION": "2010-04-01",
        "Edge_Location": "sydney.us1"
    }
```

**Entitas Twilio dan detail bidang**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/twilio-reading-from-entities.html)

## Mempartisi kueri
<a name="twilio-reading-partitioning-queries"></a>

**Bidang yang mendukung partisi**:

Di Twilio, bidang DateTime tipe data mendukung partisi berbasis lapangan.

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-05-01T20:55:02.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
twilio_read = glueContext.create_dynamic_frame.from_options(
    connection_type="twilio",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "sms-message",
        "API_VERSION": "2010-04-01",
        "PARTITION_FIELD": "date_sent"
        "LOWER_BOUND": "2024-05-01T20:55:02.000Z"
        "UPPER_BOUND": "2024-06-01T20:55:02.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Twilio
<a name="twilio-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Twilio:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Twilio.
+ `EDGE_LOCATION`(String) - (Diperlukan) Lokasi tepi Twilio yang valid.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Twilio Rest API yang ingin Anda gunakan. Twilio mendukung dua versi API: 'v1' dan '2010-04-01'.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk Baca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL contoh Twilio yang valid.

# Keterbatasan dan catatan untuk konektor Twilio
<a name="twilio-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Twilio:
+ Partisi berbasis rekaman tidak didukung, karena tidak ada ketentuan untuk mengambil jumlah total catatan dari Twilio.
+ Bidang`date_sent`,`start_time`, dan `end_time` merupakan tipe data Datetime, tetapi saat memfilter, mereka hanya mendukung nilai tanggal (komponen waktu tidak dipertimbangkan).
+ Memfilter bidang “dari” atau “ke” hanya berfungsi jika nilainya tidak menyertakan awalan apa pun (misalnya, protokol atau label). Jika ada awalan, pemfilteran untuk bidang masing-masing tidak berfungsi. Misalnya jika Anda meneruskan “to”: “whatsapp: \$114xxxxxxxxxx” sebagai filter maka Twilio tidak akan mengembalikan respons. Anda harus meneruskannya sebagai “to”: “\$114xxxxxxxx”, maka itu akan mengembalikan catatan jika ada.
+ Filter bidang “identitas” wajib saat menanyakan `conversation-participant-conversation` entitas.

# Menghubungkan ke Vertica di AWS Glue Studio
<a name="connecting-to-data-vertica"></a>

 AWS Gluemenyediakan dukungan bawaan untuk Vertica. AWS Glue Studiomenyediakan antarmuka visual untuk terhubung ke Vertica, membuat pekerjaan integrasi data, dan menjalankannya di runtime Spark AWS Glue Studio tanpa server. 

 AWS Glue Studio menciptakan koneksi terpadu untuk Vertica. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Membuat koneksi Vertica](creating-vertica-connection.md)
+ [Membuat simpul sumber Vertica](creating-vertica-source-node.md)
+ [Membuat simpul target Vertica](creating-vertica-target-node.md)
+ [Opsi lanjutan](#creating-vertica-connection-advanced-options)

# Membuat koneksi Vertica
<a name="creating-vertica-connection"></a>

**Prasyarat**:
+ Bucket atau folder Amazon S3 yang akan digunakan untuk penyimpanan sementara saat membaca dari dan menulis ke database, dirujuk oleh. *tempS3Path*
**catatan**  
Saat menggunakan Vertica dalam pratinjau data AWS Glue pekerjaan, file sementara mungkin tidak dihapus secara otomatis. *tempS3Path* Untuk memastikan penghapusan file sementara, langsung akhiri sesi pratinjau data dengan memilih **Akhiri sesi** di panel **pratinjau data**.  
Jika Anda tidak dapat menjamin sesi pratinjau data berakhir secara langsung, pertimbangkan untuk menyetel konfigurasi Siklus Hidup Amazon S3 untuk menghapus data lama. Sebaiknya hapus data yang lebih lama dari 49 jam, berdasarkan runtime pekerjaan maksimum ditambah margin. Untuk informasi selengkapnya tentang mengonfigurasi Siklus Hidup Amazon S3, [lihat Mengelola siklus hidup penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) di dokumentasi Amazon S3.
+ Kebijakan IAM dengan izin yang sesuai ke jalur Amazon S3 yang dapat Anda kaitkan dengan AWS Glue peran pekerjaan Anda.
+ Jika instans Vertica Anda ada di VPC Amazon, konfigurasikan Amazon VPC untuk memungkinkan pekerjaan AWS Glue Anda berkomunikasi dengan instans Vertica tanpa lalu lintas melintasi internet publik. 

  Di Amazon VPC, identifikasi atau buat **grup **VPC**, **Subnet**, dan Keamanan** yang AWS Glue akan digunakan saat menjalankan pekerjaan. Selain itu, Anda perlu memastikan Amazon VPC dikonfigurasi untuk mengizinkan lalu lintas jaringan antara instans Vertica Anda dan lokasi ini. Pekerjaan Anda perlu membuat koneksi TCP dengan port klien Vertica Anda, (default 5433). Berdasarkan tata letak jaringan Anda, ini mungkin memerlukan perubahan pada aturan grup keamanan, Jaringan, Gateway NAT ACLs, dan koneksi Peering.

**Untuk mengonfigurasi koneksi ke Vertica:**

1. Di AWS Secrets Manager, buat rahasia menggunakan kredensi Vertica Anda, dan. *verticaUsername* *verticaPassword* Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di [Buat AWS Secrets Manager rahasia](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia, *secretName* untuk langkah selanjutnya. 
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `user` dengan nilainya. *verticaUsername*
   + Saat memilih **pasangan kunci/nilai**, buat pasangan untuk kunci `password` dengan nilainya. *verticaPassword*

1. Di AWS Glue konsol, buat koneksi dengan mengikuti langkah-langkah di[Menambahkan AWS Glue koneksi](console-connections.md). Setelah membuat koneksi, pertahankan nama koneksi,*connectionName*, untuk langkah selanjutnya. 
   + Saat memilih **jenis Koneksi**, pilih Vertica.
   + Saat memilih **Vertica Host**, berikan nama host instalasi Vertica Anda.
   + Saat memilih **Port Vertica**, port instalasi Vertica Anda tersedia.
   + Saat memilih **AWS Rahasia**, berikan*secretName*.

1. Dalam situasi berikut, Anda mungkin memerlukan konfigurasi tambahan:
   + 

     Untuk instans Vertica yang dihosting AWS di VPC Amazon
     + Berikan informasi koneksi Amazon VPC ke AWS Glue koneksi yang menentukan kredensi keamanan Vertica Anda. **Saat membuat atau memperbarui koneksi Anda, atur **grup **VPC**, **Subnet**, dan Keamanan** dalam opsi Jaringan.**

Anda perlu melakukan langkah-langkah berikut sebelum menjalankan AWS Glue pekerjaan Anda:
+ Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda. *tempS3Path*
+ Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca*secretName*.

# Membuat simpul sumber Vertica
<a name="creating-vertica-source-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-vertica-source-node-prerequisites"></a>
+ Koneksi Katalog AWS Glue Data tipe Vertica, *connectionName* dan lokasi Amazon S3 sementara*tempS3Path*, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Vertica](creating-vertica-connection.md)
+ Tabel Vertica yang ingin Anda baca,*tableName*, atau kueri*targetQuery*.

## Menambahkan sumber data Vertica
<a name="creating-vertica-source-node-add"></a>

**Untuk menambahkan **sumber Data — simpul Vertica**:**

1.  Pilih koneksi untuk sumber data Vertica Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Vertica**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Vertica](creating-vertica-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Database** yang berisi tabel Anda.

1. Pilih **area Staging di Amazon** S3, masukkan URI S3A ke. *tempS3Path*

1. Pilih **Sumber Vertica**.
   +  **Pilih satu tabel** — akses semua data dari satu tabel. 
   +  **Masukkan kueri kustom** — akses kumpulan data dari beberapa tabel berdasarkan kueri kustom Anda. 

1.  Jika Anda memilih satu tabel, masukkan *tableName* dan pilih **Skema** secara opsional. 

    **Jika Anda memilih **Masukkan kueri kustom**, masukkan kueri SQL SELECT dan pilih Skema secara opsional.** 

1.  Di **properti Custom Vertica**, masukkan parameter dan nilai sesuai kebutuhan. 

# Membuat simpul target Vertica
<a name="creating-vertica-target-node"></a>

## Prasyarat yang dibutuhkan
<a name="creating-vertica-target-node-prerequisites"></a>
+ Koneksi Katalog AWS Glue Data tipe Vertica, *connectionName* dan lokasi Amazon S3 sementara*tempS3Path*, seperti yang dijelaskan di bagian sebelumnya,. [Membuat koneksi Vertica](creating-vertica-connection.md)

## Menambahkan target data Vertica
<a name="creating-vertica-target-node-add"></a>

**Untuk menambahkan **target Data — simpul Vertica**:**

1.  Pilih koneksi untuk sumber data Vertica Anda. Karena Anda telah membuatnya, itu harus tersedia di dropdown. Jika Anda perlu membuat koneksi, pilih **Buat koneksi Vertica**. Untuk informasi lebih lanjut lihat bagian sebelumnya,[Membuat koneksi Vertica](creating-vertica-connection.md). 

    Setelah Anda memilih koneksi, Anda dapat melihat properti koneksi dengan mengklik **Lihat properti**. 

1. Pilih **Database** yang berisi tabel Anda.

1. Pilih **area Staging di Amazon** S3, masukkan URI S3A ke. *tempS3Path*

1. **Masuk *tableName* dan pilih Skema secara opsional.** 

1.  Di **properti Custom Vertica**, masukkan parameter dan nilai sesuai kebutuhan. 

## Opsi lanjutan
<a name="creating-vertica-connection-advanced-options"></a>

Anda dapat memberikan opsi lanjutan saat membuat simpul Vertica. Opsi ini sama dengan yang tersedia saat pemrograman AWS Glue untuk skrip Spark.

Lihat [Koneksi Vertica](aws-glue-programming-etl-connect-vertica-home.md).

# Menghubungkan ke WooCommerce
<a name="connecting-to-data-woocommerce"></a>

WooCommerce adalah solusi perangkat lunak fleksibel sumber terbuka yang dibangun untuk situs web WordPress berbasis. Ini biasanya digunakan untuk membuat toko e-commerce online. Dengan solusi perangkat lunak ini, siapa pun dapat mengubah situs web reguler mereka menjadi toko online yang berfungsi penuh.

**Topics**
+ [AWS Glue dukungan untuk WooCommerce](woocommerce-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](woocommerce-configuring-iam-permissions.md)
+ [Mengkonfigurasi WooCommerce](woocommerce-configuring.md)
+ [Mengkonfigurasi koneksi WooCommerce](woocommerce-configuring-connections.md)
+ [Membaca dari WooCommerce entitas](woocommerce-reading-from-entities.md)
+ [WooCommerce opsi koneksi](woocommerce-connection-options.md)

# AWS Glue dukungan untuk WooCommerce
<a name="woocommerce-support"></a>

AWS Glue mendukung WooCommerce sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari WooCommerce.

**Didukung sebagai target?**  
Tidak.

**Versi WooCommerce API yang didukung**  
Versi WooCommerce API berikut didukung:
+ v3

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="woocommerce-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi WooCommerce
<a name="woocommerce-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari WooCommerce, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="woocommerce-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki WooCommerce akun dengan a `consumerKey` dan a`consumerSecret`.
+  WooCommerce Akun Anda memiliki akses API dengan lisensi yang valid.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke WooCommerce akun Anda. Untuk koneksi yang khas, Anda tidak perlu melakukan hal lain WooCommerce.

# Mengkonfigurasi koneksi WooCommerce
<a name="woocommerce-configuring-connections"></a>

WooCommerce mendukung otentikasi kustom. Untuk WooCommerce dokumentasi publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat [Authentication — WooCommerce REST API](https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication) Documentation.

Untuk mengkonfigurasi WooCommerce koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:
   + Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan `consumerKey` dan `consumerSecret` sebagai kunci. Catatan: Anda harus membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih WooCommerce.

   1. Berikan WooCommerce contoh `INSTANCE_URL` yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari WooCommerce entitas
<a name="woocommerce-reading-from-entities"></a>

**Prasyarat**

 WooCommerce Objek yang ingin Anda baca. Anda akan memerlukan nama objek seperti kupon, pesanan, produk, dll.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Kupon | Ya | Ya | Ya | Ya | Ya | 
| Total Kupon | Tidak | Tidak | Tidak | Ya | Tidak | 
| Jumlah Pelanggan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Order | Ya | Ya | Ya | Ya | Ya | 
| Jumlah Pesanan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Gerbang Pembayaran | Tidak | Tidak | Tidak | Ya | Tidak | 
| Produk | Ya | Ya | Ya | Ya | Ya | 
| Atribut produk | Ya | Ya | Ya | Ya | Ya | 
| Kategori produk | Ya | Ya | Ya | Ya | Ya | 
| Ulasan produk | Ya | Ya | Ya | Ya | Ya | 
| Kelas pengiriman produk | Ya | Ya | Ya | Ya | Ya | 
| Tag produk | Ya | Ya | Ya | Ya | Ya | 
| Variasi produk | Ya | Ya | Ya | Ya | Ya | 
| Total Produk | Tidak | Tidak | Tidak | Ya | Tidak | 
| Laporan (Daftar) | Tidak | Tidak | Tidak | Ya | Tidak | 
| Ulasan Total | Tidak | Tidak | Tidak | Ya | Tidak | 
| Laporan Penjualan | Ya | Tidak | Tidak | Ya | Tidak | 
| Metode Pengiriman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Zona Pengiriman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Lokasi Zona Pengiriman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Metode Zona Pengiriman | Tidak | Tidak | Tidak | Ya | Tidak | 
| Tarif Pajak | Ya | Ya | Ya | Ya | Ya | 
| Kelas Pajak | Tidak | Tidak | Tidak | Ya | Tidak | 
| Laporan Penjual Teratas | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
woocommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.woocommerce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupon",
        "API_VERSION": "v3",
        "INSTANCE_URL": "instanceUrl"
    }
```

**WooCommerce detail entitas dan bidang**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/woocommerce-reading-from-entities.html)

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String, dan tipe DateTime data dikonversi ke Timestamp sebagai respons konektor.

## Mempartisi kueri
<a name="woocommerce-reading-partitioning-queries"></a>

Partisi **berbasis rekaman**:

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis rekaman, jumlah total catatan yang ada ditanyakan dari WooCommerce API, dan dibagi dengan nomor yang disediakan. `NUM_PARTITIONS` Jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Entitas berikut mendukung partisi berbasis rekaman:
+ kupon
+ memesan
+ produk
+ produk-atribut
+ product-attribute-term
+ kategori produk
+ ulasan produk
+ product-shipping-class
+ tag produk
+ variasi produk
+ tarif pajak

Contoh:

```
woocommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.woocommerce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupon",
        "API_VERSION": "v3",
        "INSTANCE_URL": "instanceUrl"
        "NUM_PARTITIONS": "10"
    }
```

Partisi **berbasis rekaman**:

Kueri asli dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan:
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
WooCommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="WooCommerce",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "1234567890123456789",
        "ENTITY_NAME": "Bill",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```

# WooCommerce opsi koneksi
<a name="woocommerce-connection-options"></a>

Berikut ini adalah opsi koneksi untuk WooCommerce:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di WooCommerce.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. WooCommerce Rest versi API yang ingin Anda gunakan.
+ `REALM_ID`(String) - ID yang mengidentifikasi perusahaan WooCommerce Online individu tempat Anda mengirim permintaan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `INSTANCE_URL`<instance>(String) - (Wajib) URL WooCommerce contoh yang valid dengan format: https://.wpcomstaging.com
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Menyambung ke Zendesk
<a name="connecting-to-data-zendesk"></a>

Zendesk adalah solusi manajemen help desk berbasis cloud yang menawarkan alat yang dapat disesuaikan untuk membangun portal layanan pelanggan, basis pengetahuan, dan komunitas online.

**Topics**
+ [AWS Glue dukungan untuk Zendesk](zendesk-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](zendesk-configuring-iam-permissions.md)
+ [Mengkonfigurasi Zendesk](zendesk-configuring.md)
+ [Mengkonfigurasi koneksi Zendesk](zendesk-configuring-connections.md)
+ [Membaca dari entitas Zendesk](zendesk-reading-from-entities.md)
+ [Opsi koneksi Zendesk](zendesk-connection-options.md)
+ [Batasan](zendesk-limitations.md)

# AWS Glue dukungan untuk Zendesk
<a name="zendesk-support"></a>

AWS Glue mendukung Zendesk sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari Zendesk.

**Didukung sebagai target?**  
Tidak.

**Versi API Zendesk yang didukung**  
Versi API Zendesk berikut didukung
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="zendesk-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Zendesk
<a name="zendesk-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Zendesk, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="zendesk-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Zendesk. Untuk informasi selengkapnya, lihat [Membuat akun Zendesk](#zendesk-configuring-creating-account).
+ Akun Zendesk Anda diaktifkan untuk akses API.
+ Akun Zendesk Anda memungkinkan Anda menginstal aplikasi yang terhubung.

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Zendesk Anda.

## Membuat akun Zendesk
<a name="zendesk-configuring-creating-account"></a>

Untuk membuat akun Zendesk:

1. Pergi ke https://www.zendesk.com/in/ register/

1. Masukkan detail seperti email kantor Anda, nama depan, nama belakang, nomor telepon, jabatan, nama perusahaan, jumlah karyawan di perusahaan, kata sandi, dan bahasa pilihan. Kemudian pilih **Uji coba Lengkapi Pendaftaran.**

1. Setelah akun Anda dibuat, lengkapi tautan verifikasi yang Anda terima untuk memverifikasi alamat email Anda.

1. Setelah alamat email kantor diverifikasi, Anda akan diarahkan ke akun Zendesk Anda. Pilih opsi **Beli Zendesk** untuk paket pilihan Anda. Catatan: untuk konektor Zendesk disarankan untuk membeli paket Suite Enterprise.

## Membuat aplikasi klien dan kredensi OAuth 2.0
<a name="zendesk-configuring-creating-client-app"></a>

Untuk membuat aplikasi klien dan kredensi OAuth 2.0:

1. Masuk ke akun Zendesk Anda di mana Anda ingin aplikasi OAuth 2.0 dibuat https://www.zendesk.com/in/ login/

1. Klik ikon roda gigi. Pilih tautan **Pergi ke pusat admin** untuk membuka halaman pusat admin.

1. Pilih **Aplikasi dan integrasi** di sidebar kiri, lalu pilih **APIs**> **Zendesk API**.

1. Pada halaman API Zendesk, pilih tab **OAuth Klien**.

1. Pilih **Tambahkan Klien Oauth** di sisi kanan.

1. Lengkapi bidang berikut untuk membuat klien:

   1. Nama Klien - Masukkan nama untuk aplikasi Anda. Ini adalah nama yang akan dilihat pengguna ketika diminta untuk memberikan akses ke aplikasi Anda, dan ketika mereka memeriksa daftar aplikasi pihak ketiga yang memiliki akses ke Zendesk mereka.

   1. Deskripsi - Opsional. Deskripsi singkat tentang aplikasi Anda yang akan dilihat pengguna saat diminta untuk memberikan akses ke aplikasi tersebut.

   1. Perusahaan - Opsional. Nama perusahaan yang akan dilihat pengguna ketika diminta untuk memberikan akses ke aplikasi Anda. Informasi tersebut dapat membantu mereka memahami kepada siapa mereka memberikan akses.

   1. Logo - Opsional. Ini adalah logo yang akan dilihat pengguna ketika diminta untuk memberikan akses ke aplikasi Anda. Gambar dapat berupa JPG, GIF, atau PNG. Untuk hasil terbaik, unggah gambar persegi. Ini akan diubah ukurannya untuk halaman otorisasi.

   1. Pengenal Unik - Bidang diisi otomatis dengan versi nama yang Anda masukkan untuk aplikasi yang telah diformat ulang. Anda dapat mengubahnya jika Anda mau.

   1. Redirect URLs - Masukkan URL atau URLs yang harus digunakan Zendesk untuk mengirim keputusan pengguna untuk memberikan akses ke aplikasi Anda.

      Misalnya: https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Klik **Simpan**.

1. Setelah halaman diperbarui, bidang **Rahasia** baru yang telah diisi sebelumnya muncul di sisi bawah. Ini adalah nilai “client\$1secret” yang ditentukan dalam spesifikasi. OAuth2 Salin nilai Rahasia ke clipboard Anda dan simpan di tempat yang aman. Catatan: Karakter dapat melampaui lebar kotak teks, jadi pastikan untuk memilih semuanya sebelum menyalin.

1. Klik **Simpan**.

# Mengkonfigurasi koneksi Zendesk
<a name="zendesk-configuring-connections"></a>

Konektor Zendesk mendukung jenis hibah Kode Otorisasi.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki (aplikasi klien yang AWS Glue dikelola) di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk URL instance Zendesk mereka. AWS Glue Konsol akan mengarahkan pengguna ke Zendesk di mana pengguna harus login dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Zendesk mereka.
+ Anda masih dapat memilih untuk membuat aplikasi terhubung Anda sendiri di Zendesk dan memberikan ID klien dan rahasia klien Anda sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, Anda masih akan diarahkan ke Zendesk untuk login dan otorisasi AWS Glue untuk mengakses sumber daya Anda.
+ Jenis hibah ini menghasilkan token akses. Token akses tidak pernah kedaluwarsa.

Untuk dokumentasi Zendesk publik tentang membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [OAuth Token untuk Jenis Hibah](https://developer.zendesk.com/api-reference/ticketing/oauth/grant_type_tokens/).

Untuk mengkonfigurasi koneksi Zendesk:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk jenis AuthorizationCode hibah: untuk aplikasi terhubung yang dikelola pelanggan, rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia per koneksi di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Zendesk.

   1. Berikan INSTANCE\$1URL dari Zendesk yang ingin Anda sambungkan.

   1. Menyediakan lingkungan Zendesk.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Zendesk
<a name="zendesk-reading-from-entities"></a>

**Prasyarat**

Objek Zendesk yang ingin Anda baca. Anda akan memerlukan nama objek seperti tiket atau pengguna atau artikel, seperti yang disebutkan dalam tabel berikut.


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Tiket | Y | Y | Y | Y | T | 
| Pengguna | Y | Y | Y | Y | T | 
| Organisasi | Y | Y | Y | Y | T | 
| Artikel | Y | Y | T | Y | T | 
| Tiket Event | Y | Y | T | Y | T | 
| Acara Metrik Tiket | Y | Y | T | Y | T | 
| Komentar Tiket | Y | Y | Y | Y | T | 
| Bidang Tiket | Y | Y | T | Y | T | 
| Metrik Tiket | Y | Y | T | Y | T | 
| Aktivitas Tiket | Y | Y | T | Y | T | 
| Lewati Tiket | T | Y | T | Y | T | 
| Kelompok | Y | Y | Y | Y | T | 
| Keanggotaan Grup | T | Y | Y | Y | T | 
| Peringkat Kepuasan | Y | Y | T | Y | T | 
| Tampilan | Y | Y | Y | Y | T | 
| Pemicu | Y | Y | Y | Y | T | 
| Kategori Trigger | T | Y | Y | Y | T | 
| Makro | Y | Y | Y | Y | T | 
| Otomatisasi | T | Y | Y | Y | T | 

**Contoh:**

```
Zendesk_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Zendesk",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v2"
    }
```

**Entitas Zendesk dan detail bidang**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/zendesk-reading-from-entities.html)

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String dalam respons konektor.

## Mempartisi kueri
<a name="zendesk-reading-partitioning-queries"></a>

Partisi tidak didukung di Zendesk.

# Opsi koneksi Zendesk
<a name="zendesk-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Zendesk:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama Objek Anda di Zendesk.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Zendesk Rest API yang ingin Anda gunakan. Misalnya: v2.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek. Misalnya: id, nama, url, created\$1at
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL. Misalnya: group\$1id = 100
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh. Misalnya: “PILIH id, url DARI pengguna WHERE role=\$1" end-user\$1 "”
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri. Bidang default adalah `update_at` untuk entitas yang mendukung API ekspor tambahan (`created_at`untuk `ticket-events` dan `time` untuk`ticket-metric-events`).
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih. Opsional; opsi ini akan ditangani oleh konektor jika tidak disediakan dalam opsi pekerjaan. Nilai default - “2024-05-01T 20:55:02.000 Z
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Opsional; opsi ini akan ditangani oleh konektor jika tidak disediakan dalam opsi pekerjaan. Nilai default: 1.
+ `IMPORT_DELETED_RECORDS`(String) - Default: FALSE. Digunakan untuk membaca. Untuk mendapatkan catatan hapus saat melakukan query.
+ `ACCESS_TOKEN`- Token akses yang akan digunakan dalam permintaan.
+ `INSTANCE_URL`- URL dari contoh di mana pengguna ingin menjalankan operasi. Sebagai contoh: https://\$1subdomain\$1/.zendesk.com

# Batasan
<a name="zendesk-limitations"></a>

Berikut ini adalah batasan konektor Zendesk:
+ Pagination berbasis offset membatasi jumlah halaman yang dapat diambil hingga 100, tetapi tidak disarankan karena jumlah total catatan yang dapat diambil adalah 10.000. Namun, pagination berbasis kursor yang diterapkan untuk konektor Zendesk mengatasi batasan ini. Hanya operator filter EQUAL\$1TO yang didukung melalui Zendesk API.

  Karena keterbatasan ini, partisi tidak didukung untuk konektor Zendesk.
+ Untuk entitas “Acara Tiket”, Batas Harga adalah 10 permintaan per menit. Saat menjalankan pekerjaan AWS Glue ETL, Anda mungkin menerima kesalahan 429 (terlalu banyak permintaan).

# Menyambung ke Zoho CRM
<a name="connecting-to-data-zoho-crm"></a>

Zoho CRM bertindak sebagai repositori tunggal untuk menyatukan aktivitas penjualan, pemasaran, dan dukungan pelanggan, serta merampingkan proses, kebijakan, dan orang-orang dalam satu platform. Zoho CRM dapat dengan mudah disesuaikan untuk memenuhi kebutuhan spesifik jenis dan ukuran bisnis apa pun.

Platform pengembang Zoho CRM menawarkan perpaduan yang tepat antara alat kode rendah dan pro-kode businesses/enterprises untuk mengotomatiskan pekerjaan, mengintegrasikan data di seluruh tumpukan perusahaan, dan membuat solusi khusus untuk web dan seluler.

**Topics**
+ [AWS Glue dukungan untuk Zoho CRM](zoho-crm-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](zoho-crm-configuring-iam-permissions.md)
+ [Mengkonfigurasi Zoho CRM](zoho-crm-configuring.md)
+ [Mengkonfigurasi koneksi Zoho CRM](zoho-crm-configuring-connections.md)
+ [Membaca dari entitas Zoho CRM](zoho-crm-reading-from-entities.md)
+ [Opsi koneksi Zoho CRM](zoho-crm-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Zoho CRM](zoho-crm-connector-limitations.md)

# AWS Glue dukungan untuk Zoho CRM
<a name="zoho-crm-support"></a>

AWS Glue mendukung Zoho CRM sebagai berikut:

**Didukung sebagai sumber?**  
Ya — Sinkronisasi dan Async. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Zoho CRM.

**Didukung sebagai target?**  
Tidak.

**Versi Zoho CRM API yang didukung**  
Versi Zoho CRM API berikut didukung:
+ v7

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="zoho-crm-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Zoho CRM
<a name="zoho-crm-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Zoho CRM, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="zoho-crm-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Zoho CRM.
+ Akun Zoho CRM Anda diaktifkan untuk akses API.
+ Anda memiliki klien API terdaftar di bawah Konsol API untuk mendapatkan OAuth Kredensial.

# Mengkonfigurasi koneksi Zoho CRM
<a name="zoho-crm-configuring-connections"></a>

Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Zoho CRM untuk meminta akses ke data Anda. Pilihan Anda memengaruhi persyaratan yang harus Anda penuhi sebelum membuat koneksi. Zoho CRM hanya mendukung jenis hibah AUTHORIZATION\$1CODE untuk 2.0. OAuth 
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. AWS Glue Konsol akan mengarahkan pengguna ke Zoho CRM di mana pengguna harus masuk dan mengizinkan Glue izin yang diminta untuk mengakses instance Zoho CRM mereka.
+ Pengguna masih dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Zoho CRM dan memberikan ID klien, URL Auth, URL Token, dan URL Instance mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Zoho CRM untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses akan tetap berlaku selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ [Untuk dokumentasi Zoho CRM publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat Otentikasi.](https://www.zoho.com/crm/developer/docs/api/v7/oauth-overview.html)

Untuk mengonfigurasi koneksi Zoho CRM:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Zoho CRM.

   1. Berikan instance Zoho CRM yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Berikan ID klien aplikasi klien pengguna.

   1. Pilih **URL Auth** yang sesuai dari dropdown.

   1. Pilih **URL Token** yang sesuai dari dropdown.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari entitas Zoho CRM
<a name="zoho-crm-reading-from-entities"></a>

**Prasyarat**

Objek Zoho CRM yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber Sinkronisasi**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Produk | Ya | Ya | Ya | Ya | Ya | 
| Kutipan | Ya | Ya | Ya | Ya | Ya | 
| Pesanan Pembelian | Ya | Ya | Ya | Ya | Ya | 
| Solusi | Ya | Ya | Ya | Ya | Ya | 
| Panggilan | Ya | Ya | Ya | Ya | Ya | 
| Tugas | Ya | Ya | Ya | Ya | Ya | 
| Peristiwa | Ya | Ya | Ya | Ya | Ya | 
| Faktur | Ya | Ya | Ya | Ya | Ya | 
| Akun | Ya | Ya | Ya | Ya | Ya | 
| Kontak | Ya | Ya | Ya | Ya | Ya | 
| Penjual | Ya | Ya | Ya | Ya | Ya | 
| Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Kesepakatan | Ya | Ya | Ya | Ya | Ya | 
| Prospek | Ya | Ya | Ya | Ya | Ya | 
| Modul Kustom | Ya | Ya | Ya | Ya | Ya | 
| Pesanan Penjualan | Ya | Ya | Ya | Ya | Ya | 
| Harga Buku | Ya | Ya | Ya | Ya | Ya | 
| Kasus | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="ZOHO",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "INSTANCE_URL": "https://www.zohoapis.in/"
    }
```

**Entitas yang didukung untuk sumber Async**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Produk | Ya | Tidak | Tidak | Ya | Tidak | 
| Kutipan | Ya | Tidak | Tidak | Ya | Tidak | 
| Pesanan Pembelian | Ya | Tidak | Tidak | Ya | Tidak | 
| Solusi | Ya | Tidak | Tidak | Ya | Tidak | 
| Panggilan | Ya | Tidak | Tidak | Ya | Tidak | 
| Tugas | Ya | Tidak | Tidak | Ya | Tidak | 
| Peristiwa | Ya | Tidak | Tidak | Ya | Tidak | 
| Faktur | Ya | Tidak | Tidak | Ya | Tidak | 
| Akun | Ya | Tidak | Tidak | Ya | Tidak | 
| Kontak | Ya | Tidak | Tidak | Ya | Tidak | 
| Penjual | Ya | Tidak | Tidak | Ya | Tidak | 
| Kampanye | Ya | Tidak | Tidak | Ya | Tidak | 
| Kesepakatan | Ya | Tidak | Tidak | Ya | Tidak | 
| Prospek | Ya | Tidak | Tidak | Ya | Tidak | 
| Modul Kustom | Ya | Tidak | Tidak | Ya | Tidak | 
| Pesanan Penjualan | Ya | Tidak | Tidak | Ya | Tidak | 
| Harga Buku | Ya | Tidak | Tidak | Ya | Tidak | 
| Kasus | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="ZOHO",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "INSTANCE_URL": "https://www.zohoapis.in/",
        "TRANSFER_MODE": "ASYNC"
    }
```

Detail **bidang Zoho CRM**:

Zoho CRM menyediakan titik akhir untuk mengambil metadata secara dinamis untuk entitas yang didukung. Oleh karena itu, dukungan operator ditangkap pada tingkat tipe data.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/zoho-crm-reading-from-entities.html)

## Mempartisi kueri
<a name="zoho-crm-reading-partitioning-queries"></a>

Partisi tidak didukung dalam mode Async.

**Partisi berbasis filter (Mode sinkronisasi)**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="zohocrm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "PARTITION_FIELD": "Created_Time"
        "LOWER_BOUND": "2022-01-01T01:01:01.000Z"
        "UPPER_BOUND": "2024-01-01T01:01:01.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Zoho CRM
<a name="zoho-crm-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Zoho CRM:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Zoho CRM.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Zoho CRM Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL instans Zoho CRM yang valid.
+ `TRANSFER_MODE`(String) - Digunakan untuk menunjukkan apakah query harus dijalankan pada modus Async.

# Keterbatasan dan catatan untuk konektor Zoho CRM
<a name="zoho-crm-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Zoho CRM:
+ Dengan API versi v7, Anda dapat mengambil maksimal 100.000 catatan. Lihat [dokumentasi Zoho](https://www.zoho.com/crm/developer/docs/api/v7/get-records.html).
+ Untuk entitas Event, label “Rapat” ditampilkan seperti yang disebutkan dalam [dokumentasi Zoho](https://www.zoho.com/crm/developer/docs/api/v7/modules-api.html).
+ Untuk Select All fungsionalitas:
  + Anda dapat mengambil maksimal 50 bidang dari SaaS untuk panggilan GET dan POST.
  + Jika Anda ingin memiliki data untuk beberapa bidang tertentu yang tidak termasuk dalam 50 bidang pertama, Anda harus memberikan daftar bidang yang dipilih secara manual.
  + Jika lebih dari 50 bidang dipilih, bidang apa pun di luar 50 bidang akan dipangkas dan akan berisi data nol di Amazon S3. 
  + Dalam kasus ekspresi filter, jika daftar 50 bidang yang disediakan pengguna tidak menyertakan “id” dan “Created\$1Time,” pengecualian khusus akan dimunculkan untuk meminta pengguna memasukkan bidang ini.
+ Operator filter dapat bervariasi dari field-to-field meskipun memiliki tipe data yang sama. Oleh karena itu, Anda harus secara manual menentukan operator yang berbeda untuk bidang apa pun yang memicu kesalahan di platform SaaS. 
+ Untuk fungsionalitas Urutkan Berdasarkan:
  + Data hanya dapat diurutkan berdasarkan satu bidang tanpa ekspresi filter, sedangkan data dapat diurutkan berdasarkan beberapa bidang saat ekspresi filter diterapkan.
  + Jika tidak ada urutan pengurutan yang ditentukan untuk bidang yang dipilih, data akan diambil dalam urutan menaik secara default. 
+ Wilayah yang didukung untuk konektor Zoho CRM adalah AS, Eropa, India, Australia, dan Jepang.
+ [Batasan fungsionalitas baca asinkron:](https://www.zoho.com/crm/developer/docs/api/v7/bulk-read/limitations.html)
  + Batas urutan oleh dan partisi tidak didukung dalam mode Async. 
  + Dalam mode Async kita dapat mentransfer data hingga 500 halaman dengan 200.000 catatan per halaman.
  + Untuk interval satu menit, hanya 10 permintaan yang diizinkan untuk diunduh. Ketika Anda melebihi batas unduhan, sistem mengembalikan kesalahan HTTP 429 dan menjeda semua permintaan unduhan selama satu menit sebelum pemrosesan dapat dilanjutkan.
  + Setelah menyelesaikan pekerjaan massal, Anda dapat mengakses file yang dapat diunduh hanya untuk jangka waktu satu hari. Setelah itu, Anda tidak dapat mengakses file melalui titik akhir.
  + Maksimal 200 bidang pilih dapat diberikan melalui titik akhir. Jika Anda menentukan lebih dari 200 bidang pilih di titik akhir, sistem akan secara otomatis mengekspor semua bidang yang tersedia untuk modul itu.
  + Bidang eksternal yang dibuat dalam modul apa pun tidak didukung dalam Pembacaan Massal APIs.
  + Penyortiran dan `Group_by` klausa tidak didukung melalui titik akhir API ini.
  + **Nilai bidang dengan data kesehatan sensitif akan diambil hanya jika opsi Batasi **akses Data melalui API di pengaturan kepatuhan dinonaktifkan**.** Jika opsi diaktifkan, nilainya akan **kosong** di hasilnya.
  + Batas Filtrasi/Kriteria
    + Jumlah maksimum kriteria yang dapat digunakan dalam kueri adalah 25.
    + Filtrasi/Kriteria pada bidang teks multiline tidak didukung.

# Menghubungkan ke Rapat Zoom
<a name="connecting-to-data-zoom-meetings"></a>

Zoom Meetings adalah platform konferensi video berbasis cloud yang dapat digunakan untuk rapat konferensi video, konferensi audio, webinar, rekaman rapat, dan obrolan langsung.

**Topics**
+ [AWS Glue dukungan untuk Zoom Meetings](zoom-meetings-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](zoom-meetings-configuring-iam-permissions.md)
+ [Mengkonfigurasi Rapat Zoom](zoom-meetings-configuring.md)
+ [Mengonfigurasi aplikasi klien Zoom Meetings](zoom-meetings-configuring-client-app.md)
+ [Mengkonfigurasi koneksi Zoom Meetings](zoom-meetings-configuring-connections.md)
+ [Membaca dari entitas Zoom Meetings](zoom-meetings-reading-from-entities.md)
+ [Opsi koneksi Zoom Rapat](zoom-meetings-connection-options.md)
+ [Batasan Rapat Zoom](zoom-meetings-limitations.md)

# AWS Glue dukungan untuk Zoom Meetings
<a name="zoom-meetings-support"></a>

AWS Glue mendukung Rapat Zoom sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Rapat Zoom.

**Didukung sebagai target?**  
Tidak.

**Versi API Zoom Meetings yang didukung**  
Versi API Zoom Meetings berikut didukung:
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="zoom-meetings-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Rapat Zoom
<a name="zoom-meetings-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Rapat Zoom, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="zoom-meetings-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Zoom Meetings.
+ Akun Zoom Anda diaktifkan untuk akses API.
+ Anda telah membuat OAuth2 aplikasi di akun Zoom Meetings Anda. Integrasi ini menyediakan kredensi yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi aplikasi klien Zoom Meetings](zoom-meetings-configuring-client-app.md).

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Rapat Zoom Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Zoom Meetings.

# Mengonfigurasi aplikasi klien Zoom Meetings
<a name="zoom-meetings-configuring-client-app"></a>

1. Masuk ke Marketplace Aplikasi Zoom.

1. Pilih **Kembangkan** > **Bangun Aplikasi**.

1. Pilih **Aplikasi Umum** untuk aplikasi berbasis OAuth 2.0.

1. Pada halaman **Info Dasar**, tambahkan atau perbarui informasi tentang aplikasi seperti nama aplikasi, cara aplikasi dikelola, kredensi aplikasi, dan OAuth informasi.

1. Di bagian **Pilih cara aplikasi dikelola**, konfirmasikan bagaimana Anda ingin aplikasi dikelola:

   1. **Admin-managed**: Admin akun menambah dan mengelola aplikasi

   1. **Dikelola pengguna**: Pengguna individu menambahkan dan mengelola aplikasi. Aplikasi ini hanya memiliki akses ke data resmi pengguna.

1. **Kredensial Aplikasi**: Alur build secara otomatis menghasilkan kredensi aplikasi (ID klien dan rahasia klien) untuk aplikasi Anda.

1. Di bagian OAuth Informasi, siapkan OAuth untuk aplikasi Anda.

   1. **OAuth URL pengalihan** (wajib): Masukkan URL pengalihan atau titik akhir untuk disiapkan OAuth antara aplikasi dan Zoom.

   1. **Gunakan URL Mode Ketat** (opsional)

   1. **Pemeriksaan subdomain** (opsional)

   1. **OAuth allow lists** (required): Tambahkan keunikan apa pun URLs yang harus diizinkan Zoom sebagai pengalihan yang valid untuk alur Anda OAuth .

1. Pada halaman **Scopes**, pilih metode Zoom API yang diizinkan untuk dipanggil oleh aplikasi Anda. Cakupan menentukan informasi dan kemampuan mana yang tersedia untuk pengguna Anda. Pilih cakupan granular berikut:
   + pengguna:baca:list\$1users:admin
   + zoom\$1rooms:baca:list\$1rooms:admin
   + kelompok:baca:list\$1members:admin
   + grup: baca: administrator: admin
   + kelompok:baca: list\$1groups:admin
   + laporan:baca:admin
   + peran: baca: list\$1roles, peran: baca: list\$1roles:admin

   Setelah cakupan ditambahkan pilih **Lanjutkan** dan aplikasi siap digunakan.

Untuk informasi selengkapnya tentang penyiapan OAuth 2.0, lihat [Integrasi (OAuth aplikasi)](https://developers.zoom.us/docs/integrations/).

# Mengkonfigurasi koneksi Zoom Meetings
<a name="zoom-meetings-configuring-connections"></a>

Zoom Meetings mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Rapat Zoom untuk meminta akses ke data Anda.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. Pengguna yang membuat koneksi perlu memberikan informasi OAuth terkait seperti Client ID dan Client Secret untuk aplikasi klien Zoom Meetings mereka. AWS Glue Konsol akan mengarahkan pengguna ke Zoom di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Zoom Meetings mereka.
+ Pengguna masih dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Zoom Meetings dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Zoom Meetings untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk dokumentasi Rapat Zoom publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Menggunakan OAuth 2.0](https://developers.zoom.us/docs/api/using-zoom-apis/#using-oauth-20).

Untuk mengonfigurasi koneksi Zoom Meetings:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Zoom Meetings.

   1. Sediakan lingkungan Zoom Meetings yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari entitas Zoom Meetings
<a name="zoom-meetings-reading-from-entities"></a>

**Prasyarat**

Objek Zoom Meetings yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `Group` atau`Zoom Rooms`.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Ruang Zoom | Tidak | Ya | Tidak | Ya | Tidak | 
| Kelompok | Tidak | Tidak | Tidak | Ya | Tidak | 
| Anggota Grup | Ya | Ya | Tidak | Ya | Tidak | 
| Admin Grup | Tidak | Ya | Tidak | Ya | Tidak | 
| Laporan (harian) | Ya | Tidak | Tidak | Ya | Tidak | 
| Peran | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pengguna | Ya | Ya | Tidak | Ya | Tidak | 

**Contoh:**

```
zoom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="zoom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "organization",
        "API_VERSION": "v2"
    }
)
```

**Entitas Zoom Rapat dan detail bidang**:

Zoom Meetings secara dinamis memuat bidang yang tersedia di bawah entitas yang dipilih. Tergantung pada tipe data bidang, ini mendukung operator filter berikut.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/zoom-meetings-reading-from-entities.html)

## Mempartisi kueri
<a name="zoom-meetings-reading-partitioning-queries"></a>

Zoom Meetings tidak mendukung partisi berbasis filter atau partisi berbasis rekaman.

# Opsi koneksi Zoom Rapat
<a name="zoom-meetings-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Zoom Meetings:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama entitas Zoom Meetings. Misalnya, `group`.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Zoom Meetings Rest versi API yang ingin Anda gunakan. Nilainya adalah`v2`, karena Zoom Meetings saat ini hanya mendukung versi v2.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Daftar kolom yang dipisahkan koma yang ingin Anda pilih untuk entitas yang dipilih.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.

# Batasan Rapat Zoom
<a name="zoom-meetings-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Zoom Meetings:
+ Zoom Meetings tidak mendukung orderby.
+ Zoom Meetings tidak mendukung partisi berbasis filter karena tidak ada bidang yang dapat memenuhi kriteria yang diperlukan.
+ Zoom Meetings tidak mendukung partisi berbasis rekaman karena batas pagination dan pagination berbasis offset tidak didukung.

# Menambahkan koneksi JDBC menggunakan driver JDBC Anda sendiri
<a name="console-connections-jdbc-drivers"></a>

 Anda dapat menggunakan driver JDBC Anda sendiri saat menggunakan koneksi JDBC. Ketika driver default yang digunakan oleh AWS Glue crawler tidak dapat terhubung ke database, Anda dapat menggunakan Driver JDBC Anda sendiri. Misalnya, jika Anda ingin menggunakan SHA-256 dengan database Postgres Anda, dan driver postgres yang lebih lama tidak mendukung ini, Anda dapat menggunakan driver JDBC Anda sendiri. 

## Sumber data yang didukung
<a name="w2aac25c27d135b5"></a>


| Sumber data yang didukung | Sumber data yang tidak didukung | 
| --- | --- | 
| MySQL | Kepingan salju | 
| Postgres |  | 
| Oracle |  | 
| Redshift |  | 
| SQL Server |  | 
| Aurora\$1 |  | 

 \$1 Didukung jika driver JDBC asli sedang digunakan. Tidak semua fitur driver dapat dimanfaatkan. 

## Menambahkan driver JDBC ke koneksi JDBC
<a name="w2aac25c27d135b9"></a>

**catatan**  
 Jika Anda memilih untuk membawa versi driver JDBC Anda sendiri, AWS Glue crawler akan menggunakan sumber daya dalam AWS Glue pekerjaan dan bucket Amazon S3 untuk memastikan driver yang Anda berikan dijalankan di lingkungan Anda. Penggunaan sumber daya tambahan akan tercermin di akun Anda. Biaya untuk AWS Glue crawler dan pekerjaan berada di bawah AWS Glue kategori dalam penagihan. Selain itu, menyediakan driver JDBC Anda sendiri tidak berarti bahwa crawler dapat memanfaatkan semua fitur pengemudi. 

**Untuk menambahkan driver JDBC Anda sendiri ke koneksi JDBC:**

1.  Tambahkan file driver JDBC ke lokasi Amazon S3. Anda dapat membuat and/or folder bucket atau menggunakan and/or folder bucket yang sudah ada. 

1.  Di AWS Glue konsol, pilih **Koneksi** di menu sebelah kiri di bawah **Katalog Data**, lalu buat koneksi baru. 

1.  Lengkapi bidang untuk **properti Koneksi** dan pilih JDBC untuk jenis **Koneksi**. 

1.  *Dalam **akses Koneksi**, masukkan **URL JDBC** dan nama **Kelas Driver JDBC** - opsional.* Nama kelas driver harus untuk sumber data yang didukung oleh crawler. AWS Glue   
![\[Tangkapan layar menunjukkan sumber data dengan JDBC dipilih dan koneksi di jendela Tambahkan sumber data.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/add-connection-connection-access.png)

1.  *Pilih jalur Amazon S3 tempat driver JDBC berada di JDBC **Driver Amazon S3 Path —** bidang opsional.* 

1.  Lengkapi bidang untuk Jenis kredenal jika memasukkan nama pengguna dan kata sandi atau rahasia. Setelah selesai, pilih **Buat koneksi**. 
**catatan**  
 Koneksi pengujian tidak didukung saat ini. Saat merayapi sumber data dengan driver JDBC yang Anda berikan, crawler melewatkan langkah ini. 

1.  Tambahkan koneksi yang baru dibuat ke crawler. Di AWS Glue konsol, pilih **Crawler** di menu sebelah kiri di bawah **Katalog Data**, lalu buat crawler baru. 

1.  Di Wizard **Add crawler**, di Langkah 2 pilih **Tambahkan sumber data**.   
![\[Tangkapan layar menunjukkan sumber data dengan JDBC dipilih dan koneksi di jendela Tambahkan sumber data.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/add-crawler-add-data-source.png)

1.  Pilih **JDBC** sebagai sumber data dan pilih koneksi yang dibuat pada langkah sebelumnya. Selesai 

1.  Untuk menggunakan driver JDBC Anda sendiri dengan AWS Glue crawler, tambahkan izin berikut ke peran yang digunakan oleh crawler:
   +  Berikan izin untuk tindakan pekerjaan berikut:`CreateJob`,,`DeleteJob`, `GetJob``GetJobRun`,`StartJobRun`. 
   +  Berikan izin untuk tindakan IAM: `iam:PassRole` 
   +  Berikan izin untuk tindakan Amazon S3`s3:DeleteObjects`:`s3:GetObject`,,,`s3:ListBucket`. `s3:PutObject` 
   +  Berikan akses utama layanan ke bucket/folder dalam kebijakan IAM. 

    Contoh kebijakan IAM: 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/driver-parent-folder/driver.jar",
           "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
       }
     ]
   }
   ```

------

    AWS Glue Crawler membuat dua folder: \$1glue\$1job\$1crawler dan \$1crawler.

   Jika toples driver terletak di `s3://amzn-s3-demo-bucket/driver.jar"` folder, tambahkan sumber daya berikut: 

   ```
   "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/_glue_job_crawler/*",
     		 "arn:aws:s3:::amzn-s3-demo-bucket/_crawler/*"
               ]
   ```

   Jika toples driver terletak di `s3://amzn-s3-demo-bucket/tmp/driver/subfolder/driver.jar"` folder, tambahkan sumber daya berikut: 

   ```
   "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket/tmp/_glue_job_crawler/*",
     		"arn:aws:s3:::amzn-s3-demo-bucket/tmp/_crawler/*"
               ]
   ```

1.  Jika Anda menggunakan VPC, Anda harus mengizinkan akses ke titik akhir dengan membuat AWS Glue titik akhir antarmuka dan menambahkannya ke tabel rute Anda. Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC antarmuka](https://docs.aws.amazon.com/glue/latest/dg/vpc-interface-endpoints.html#vpc-endpoint-create) untuk AWS Glue

1.  Jika Anda menggunakan enkripsi di Katalog Data Anda, buat titik akhir AWS KMS antarmuka dan tambahkan ke tabel rute Anda. Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html#vpce-create-endpoint) untuk. AWS KMS