

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

# 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
  + /