

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

# Menghubungkan ke database sumber dengan AWS Schema Conversion Tool
<a name="CHAP_Source"></a>

AWS Schema Conversion Tool (AWS SCT) dapat mengkonversi skema dari database sumber berikut dan gudang data ke database target atau gudang data. Untuk informasi tentang izin, koneksi, dan apa yang AWS SCT dapat dikonversi untuk digunakan dengan database target atau gudang data, lihat detail dalam topik berikut.

**Informasi enkripsi**  
[Menghubungkan ke Amazon RDS dan dan Aurora yang dienkripsi ](CHAP_Source.Encrypt.RDS.md)

**Sumber basis data**
+ [Menghubungkan ke Apache Cassandra](CHAP_Source.Cassandra.md)
+ [Menyambung ke Azure SQL](CHAP_Source.AzureSQL.md)
+ [Menghubungkan ke IBM DB2 untuk z/OS](CHAP_Source.DB2zOS.md)
+ [Database IBM Db2 LUW](CHAP_Source.DB2LUW.md)
+ [Menggunakan MySQL sebagai sumber](CHAP_Source.MySQL.md)
+ [Database Oracle](CHAP_Source.Oracle.md)
+ [Database PostgreSQL](CHAP_Source.PostgreSQL.md)
+ [Database SAP](CHAP_Source.SAP.md)
+ [Database SQL Server](CHAP_Source.SQLServer.md)

**Sumber gudang data**
+ [Amazon Redshift](CHAP_Source.Redshift.md)
+ [Azure Synapse Analytics sebagai sumber](CHAP_Source.AzureSynapse.md)
+ [BigQuery sebagai sumber](CHAP_Source.BigQuery.md)
+ [Database Greenplum](CHAP_Source.Greenplum.md)
+ [Database Netezza](CHAP_Source.Netezza.md)
+ [Gudang data Oracle](CHAP_Source.OracleDW.md)
+ [Kepingan salju](CHAP_Source.Snowflake.md)
+ [Gudang Data SQL Server](CHAP_Source.SQLServerDW.md)
+ [Database Teradata](CHAP_Source.Teradata.md)
+ [Database Vertica](CHAP_Source.Vertica.md)

**Sumber data besar**
+ [Menghubungkan ke Apache Hadoop](CHAP_Source.Hadoop.md)
+ [Menghubungkan ke Apache Oozie](CHAP_Source.Oozie.md)

# Menghubungkan ke Amazon Relational Database Service terenkripsi dan database Amazon Aurora dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Encrypt.RDS"></a>

Untuk membuka koneksi terenkripsi ke database Amazon RDS atau Amazon Aurora dari aplikasi, Anda perlu mengimpor sertifikat AWS root ke dalam beberapa bentuk penyimpanan kunci. Anda dapat mengunduh root certificate dari AWS at [Using SSL/TLS untuk mengenkripsi koneksi ke instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) di *Panduan Pengguna Amazon RDS*. 

Dua opsi tersedia, sertifikat root yang berfungsi untuk semua AWS Wilayah dan bundel sertifikat yang berisi sertifikat root lama dan baru.

Bergantung pada mana yang ingin Anda gunakan, ikuti langkah-langkah di salah satu dari dua prosedur berikut.

**Untuk mengimpor sertifikat atau sertifikat ke penyimpanan sistem Windows**

1. Unduh sertifikat atau sertifikat dari salah satu sumber berikut:

   Untuk informasi tentang mengunduh sertifikat, lihat [Menggunakan SSL/TLS untuk mengenkripsi sambungan ke instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) di *Panduan Pengguna Amazon RDS*.

1. Di jendela pencarian Windows Anda, masukkan**Manage computer certificates**. Ketika diminta apakah akan membiarkan aplikasi membuat perubahan pada komputer Anda, pilih **Ya**.

1. Ketika jendela sertifikat terbuka, jika diperlukan perluas **Sertifikat - Komputer Lokal** sehingga Anda dapat melihat daftar sertifikat. Buka menu konteks (klik kanan) untuk **Otoritas Sertifikasi Root Tepercaya**, lalu pilih **Semua Tugas**, **Impor**.

1. Pilih **Berikutnya**, lalu **Jelajahi**, dan temukan `*.pem` file yang Anda unduh di langkah 1. Pilih **Buka** untuk memilih file sertifikat, pilih **Berikutnya**, lalu pilih **Selesai**.
**catatan**  
Untuk menemukan file, ubah jenis file di jendela browse ke **Semua file (\$1.\$1)**, karena `.pem` bukan ekstensi sertifikat standar.

1. Di Microsoft Management Console, perluas **Sertifikat**. Kemudian perluas **Otoritas Sertifikasi Root Tepercaya**, pilih **Sertifikat**, dan temukan sertifikat untuk mengonfirmasi bahwa sertifikat itu ada. Nama sertifikat dimulai dengan`Amazon RDS`.

1. Mulai ulang komputer Anda.

**Untuk mengimpor sertifikat atau sertifikat ke Java KeyStore**

1. Unduh sertifikat atau sertifikat dari salah satu sumber berikut:

   Untuk informasi tentang mengunduh sertifikat, lihat [Menggunakan SSL/TLS untuk mengenkripsi sambungan ke instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) di *Panduan Pengguna Amazon RDS*.

1. Jika Anda mengunduh bundel sertifikat, bagi menjadi file sertifikat individual. Untuk melakukannya, tempatkan setiap blok sertifikat, dimulai dengan `-----BEGIN CERTIFICATE-----` dan diakhiri dengan `-----END CERTIFICATE-----` ke dalam `*.pem` file terpisah. Setelah Anda membuat `*.pem` file terpisah untuk setiap sertifikat, Anda dapat dengan aman menghapus file bundel sertifikat.

1. Buka jendela perintah atau sesi terminal di direktori tempat Anda mengunduh sertifikat, dan jalankan perintah berikut untuk setiap `*.pem` file yang Anda buat pada langkah sebelumnya.

   ```
   keytool -importcert -file <filename>.pem -alias <filename>.pem -keystore storename
   ```  
**Example**  

   Contoh berikut mengasumsikan bahwa Anda mengunduh `eu-west-1-bundle.pem` file.

   ```
   keytool -importcert -file eu-west-1-bundle.pem -alias eu-west-1-bundle.pem -keystore trust-2019.ks
   Picked up JAVA_TOOL_OPTIONS: -Dlog4j2.formatMsgNoLookups=true
   Enter keystore password:
   Re-enter new password:
   Owner: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
   Issuer: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
   Serial number: c73467369250ae75
   Valid from: Thu Aug 22 19:08:50 CEST 2019 until: Thu Aug 22 19:08:50 CEST 2024
   Certificate fingerprints:
            SHA1: D4:0D:DB:29:E3:75:0D:FF:A6:71:C3:14:0B:BF:5F:47:8D:1C:80:96
            SHA256: F2:54:C7:D5:E9:23:B5:B7:51:0C:D7:9E:F7:77:7C:1C:A7:E6:4A:3C:97:22:E4:0D:64:54:78:FC:70:AA:D0:08
   Signature algorithm name: SHA256withRSA
   Subject Public Key Algorithm: 2048-bit RSA key
   Version: 3
   
   Extensions:
   
   #1: ObjectId: 2.5.29.35 Criticality=false
   AuthorityKeyIdentifier [
   KeyIdentifier [
   0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
   0010: 60 FF BC 1F                                        `...
   ]
   ]
   
   #2: ObjectId: 2.5.29.19 Criticality=true
   BasicConstraints:[
     CA:true
     PathLen:2147483647
   ]
   
   #3: ObjectId: 2.5.29.15 Criticality=true
   KeyUsage [
     Key_CertSign
     Crl_Sign
   ]
   
   #4: ObjectId: 2.5.29.14 Criticality=false
   SubjectKeyIdentifier [
   KeyIdentifier [
   0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
   0010: 60 FF BC 1F                                        `...
   ]
   ]
   
   Trust this certificate? [no]:  yes
   Certificate was added to keystore
   ```

1. Tambahkan keystore sebagai toko kepercayaan di AWS SCT. Untuk melakukannya, dari menu utama pilih **Settings, **Global settings****, **Security**, **Trust store**, lalu **pilih Select existing trust store**. 

   Setelah menambahkan toko kepercayaan, Anda dapat menggunakannya untuk mengonfigurasi koneksi berkemampuan SSL saat Anda membuat AWS SCT koneksi ke database. Dalam dialog AWS SCT **Connect to database**, pilih **Use SSL** dan pilih trust store yang dimasukkan sebelumnya.

# Menghubungkan ke database Apache Cassandra dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Cassandra"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi keyspaces dari Apache Cassandra ke Amazon DynamoDB. 

## Menghubungkan ke Apache Cassandra sebagai sumber
<a name="CHAP_Source.Cassandra.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Apache Cassandra Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Apache Cassandra**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Cassandra**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Apache Cassandra secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Cassandra.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Menghubungkan ke database Apache Hadoop dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Hadoop"></a>

Anda dapat menggunakan antarmuka baris AWS SCT perintah (CLI) untuk bermigrasi dari Apache Hadoop ke Amazon EMR. AWS SCT menggunakan bucket Amazon S3 Anda sebagai penyimpanan sementara untuk data Anda selama migrasi.

AWS SCT mendukung sebagai sumber Apache Hadoop versi 2.2.0 dan lebih tinggi. Juga, AWS SCT mendukung Apache Hive versi 0.13.0 dan lebih tinggi.

AWS SCT mendukung sebagai target Amazon EMR versi 6.3.0 dan lebih tinggi. Juga, AWS SCT mendukung sebagai target Apache Hadoop versi 2.6.0 dan lebih tinggi, dan Apache Hive versi 0.13.0 dan lebih tinggi.

**Topics**
+ [Prasyarat untuk menggunakan Apache Hadoop sebagai sumber](#CHAP_Source.Hadoop.Prerequisites)
+ [Izin untuk menggunakan Hive sebagai sumber](#CHAP_Source.Hadoop.Permissions)
+ [Izin untuk menggunakan HDFS sebagai sumber](#CHAP_Source.Hadoop.PermissionsHDFS)
+ [Izin untuk menggunakan HDFS sebagai target](#CHAP_Source.Hadoop.PermissionsHDFSTarget)
+ [Menghubungkan ke Apache Hadoop sebagai sumber](#CHAP_Source.Hadoop.Connecting)
+ [Menghubungkan ke sumber Anda Hive dan layanan HDFS](#CHAP_Source.Hadoop.Hive)
+ [Menghubungkan ke Amazon EMR sebagai target](#CHAP_Source.Hadoop.Target)

## Prasyarat untuk menggunakan Apache Hadoop sebagai sumber
<a name="CHAP_Source.Hadoop.Prerequisites"></a>

Prasyarat berikut diperlukan untuk terhubung ke Apache Hadoop dengan CLI. AWS SCT 
+ Buat bucket Amazon S3 untuk menyimpan data selama migrasi. Anda kemudian dapat menyalin data ke Amazon EMR HDFS atau menggunakan Amazon S3 sebagai repositori data untuk beban kerja Hadoop Anda. Lihat informasi yang lebih lengkap di [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dalam *Panduan Pengguna Amazon S3*.
+ Buat peran AWS Identity and Access Management (IAM) dengan `AmazonS3FullAccess` kebijakan. AWS SCT menggunakan peran IAM ini untuk mengakses bucket Amazon S3 Anda.
+ Catat kunci AWS rahasia dan kunci akses AWS rahasia Anda. Untuk informasi selengkapnya tentang kunci AWS akses, lihat [Mengelola kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan Pengguna IAM*.
+ Buat dan konfigurasikan kluster EMR Amazon target. Untuk informasi selengkapnya, lihat [Memulai Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html) di Panduan Manajemen *EMR* Amazon.
+ Instal `distcp` utilitas pada cluster Apache Hadoop sumber Anda. Juga, instal `s3-dist-cp` utilitas pada kluster EMR Amazon target Anda. Pastikan bahwa pengguna database Anda memiliki izin untuk menjalankan utilitas ini.
+ Konfigurasikan `core-site.xml` file di cluster Hadoop sumber Anda untuk menggunakan protokol s3a. Untuk melakukannya, atur `fs.s3a.aws.credentials.provider` parameter ke salah satu nilai berikut.
  + `org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider`

  Anda dapat menambahkan contoh kode berikut ke dalam `core-site.xml` file.

  ```
  <property>
    <name>fs.s3a.aws.credentials.provider</name>
    <value>org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider</value>
  </property>
  ```

  Contoh sebelumnya menunjukkan salah satu dari empat opsi dari daftar opsi sebelumnya. Jika Anda tidak mengatur `fs.s3a.aws.credentials.provider` parameter dalam `core-site.xml` file, AWS SCT pilih penyedia secara otomatis.

## Izin untuk menggunakan Hive sebagai sumber
<a name="CHAP_Source.Hadoop.Permissions"></a>

Izin yang diperlukan untuk pengguna sumber Hive adalah sebagai berikut:
+ `READ`akses ke folder data sumber dan ke bucket Amazon S3 sumber
+ `READ+WRITE`akses ke bucket Amazon S3 menengah dan target

Untuk meningkatkan kecepatan migrasi, sebaiknya Anda menjalankan pemadatan untuk tab sumber transaksional asam.

Izin yang diperlukan untuk pengguna target Amazon EMR Hive adalah sebagai berikut:
+ `READ`akses ke bucket Amazon S3 target
+ `READ+WRITE`akses ke bucket Amazon S3 menengah
+ `READ+WRITE`akses ke folder HDFS target

## Izin untuk menggunakan HDFS sebagai sumber
<a name="CHAP_Source.Hadoop.PermissionsHDFS"></a>

Izin yang diperlukan untuk HDFS sebagai sumber adalah sebagai berikut:
+ `EXECUTE`untuk NameNode
+ `EXECUTE+READ`untuk semua folder sumber dan file yang Anda sertakan dalam proyek migrasi
+ `READ+WRITE`agar `tmp` direktori di NameNode menjalankan pekerjaan Spark dan menyimpan file sebelum migrasi ke Amazon S3

Dalam HDFS, semua operasi memerlukan akses traversal. Akses traversal menuntut `EXECUTE` izin pada semua komponen jalur yang ada, kecuali untuk komponen jalur akhir. Misalnya, untuk setiap operasi yang mengakses`/foo/bar/baz`, pengguna Anda harus memiliki `EXECUTE` izin`/`,`/foo`, dan`/foo/bar`.

Contoh kode berikut menunjukkan cara memberikan `EXECUTE+READ` izin untuk folder sumber dan file Anda, dan `READ+WRITE` izin untuk direktori. `tmp`

```
hadoop fs –chmod –R 744 /user/hdfs-data
hadoop fs –chmod –R 766 /tmp
```

## Izin untuk menggunakan HDFS sebagai target
<a name="CHAP_Source.Hadoop.PermissionsHDFSTarget"></a>

Izin yang diperlukan untuk Amazon EMR HDFS sebagai target adalah sebagai berikut:
+ `EXECUTE`untuk target cluster EMR Amazon NameNode 
+ `READ+WRITE`untuk folder HDFS target tempat Anda akan menyimpan data setelah migrasi

## Menghubungkan ke Apache Hadoop sebagai sumber
<a name="CHAP_Source.Hadoop.Connecting"></a>

Anda dapat menggunakan Apache Hadoop sebagai sumber dalam AWS SCT versi 1.0.670 atau lebih tinggi. Anda dapat memigrasikan cluster Hadoop ke Amazon EMR hanya di antarmuka baris AWS SCT perintah (CLI). Sebelum Anda mulai, biasakan diri Anda dengan antarmuka baris perintah AWS SCT. Untuk informasi selengkapnya, lihat [Referensi CLI untuk AWS Schema Conversion Tool](CHAP_Reference.md).

**Untuk terhubung ke Apache Hadoop di CLI AWS SCT**

1. Buat skrip AWS SCT CLI baru atau edit template skenario yang ada. Misalnya, Anda dapat mengunduh dan mengedit `HadoopMigrationTemplate.scts` template. Untuk informasi selengkapnya, lihat [Mendapatkan skenario CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

1. Konfigurasikan pengaturan AWS SCT aplikasi seperti lokasi driver dan folder log.

   Unduh driver JDBC yang diperlukan dan tentukan lokasi tempat Anda menyimpan file. Untuk informasi selengkapnya, lihat [Menginstal driver JDBC untuk AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

   Contoh kode berikut menunjukkan cara menambahkan jalur ke driver Apache Hive. Setelah Anda menjalankan contoh kode ini, AWS SCT menyimpan file log di `c:\sct` folder.

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "hive_driver_file": "c:\\sct\\HiveJDBC42.jar",
           "log_folder": "c:\\sct",
           "console_log_folder": "c:\\sct"
       }'
   /
   ```

   Anda dapat menggunakan contoh ini dan contoh berikut di Windows.

1. Buat AWS SCT proyek baru.

   Contoh kode berikut membuat `hadoop_emr` proyek dalam `c:\sct` folder.

   ```
   CreateProject
       -name: 'hadoop_emr'
       -directory: 'c:\sct'
   /
   ```

1. Tambahkan cluster Hadoop sumber Anda ke proyek.

   Gunakan `AddSourceCluster` perintah untuk terhubung ke cluster Hadoop sumber. Pastikan Anda memberikan nilai untuk parameter wajib berikut:`name`,, `host``port`, dan`user`. Parameter lainnya adalah opsional.

   Contoh kode berikut menambahkan sumber cluster Hadoop. Contoh ini ditetapkan `HADOOP_SOURCE` sebagai nama cluster sumber. Gunakan nama objek ini untuk menambahkan layanan Hive dan HDFS ke proyek dan membuat aturan pemetaan.

   ```
   AddSourceCluster
       -name: 'HADOOP_SOURCE'
       -vendor: 'HADOOP'
       -host: 'hadoop_address'
       -port: '22'
       -user: 'hadoop_user'
       -password: 'hadoop_password'
       -useSSL: 'true'
       -privateKeyPath: 'c:\path\name.pem'
       -passPhrase: 'hadoop_passphrase'
   /
   ```

   Pada contoh sebelumnya, ganti *hadoop\$1address* dengan alamat IP cluster Hadoop Anda. Jika perlu, konfigurasikan nilai opsi port. Selanjutnya, ganti *hadoop\$1user* dan *hadoop\$1password* dengan nama pengguna Hadoop Anda dan kata sandi untuk pengguna ini. Untuk*path\$1name*, masukkan nama dan path ke file PEM untuk cluster Hadoop sumber Anda.

1. Simpan skrip CLI Anda. Selanjutnya, tambahkan informasi koneksi untuk layanan Hive dan HDFS Anda.

## Menghubungkan ke sumber Anda Hive dan layanan HDFS
<a name="CHAP_Source.Hadoop.Hive"></a>

Anda dapat terhubung ke sumber Anda Hive dan layanan HDFS dengan CLI AWS SCT . Untuk terhubung ke Apache Hive, gunakan driver Hive JDBC versi 2.3.4 atau lebih tinggi. Untuk informasi selengkapnya, lihat [Menginstal driver JDBC untuk AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

AWS SCT terhubung ke Apache Hive dengan pengguna `hadoop` cluster. Untuk melakukannya, gunakan `AddSourceClusterHDFS` perintah `AddSourceClusterHive` dan. Anda dapat menggunakan salah satu pendekatan berikut.
+ Buat terowongan SSH baru.

  Untuk `createTunnel`, masukkan **true**. Untuk`host`, masukkan alamat IP internal dari sumber Anda Hive atau layanan HDFS. Untuk`port`, masukkan port layanan layanan Hive atau HDFS Anda.

  Selanjutnya, masukkan kredensi Hive atau HDFS Anda untuk dan. `user` `password` Untuk informasi selengkapnya tentang terowongan SSH, lihat [Mengatur terowongan SSH ke node utama menggunakan penerusan port lokal](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel-local.html) di Panduan Manajemen EMR Amazon.
+ Gunakan terowongan SSH yang ada.

  Untuk `host`, masukkan **localhost**. Untuk`port`, masukkan port lokal dari parameter terowongan SSH.
+ Connect ke layanan Hive dan HDFS Anda secara langsung.

  Untuk`host`, masukkan alamat IP atau nama host dari sumber Anda Hive atau layanan HDFS. Untuk`port`, masukkan port layanan layanan Hive atau HDFS Anda. Selanjutnya, masukkan kredensi Hive atau HDFS Anda untuk dan. `user` `password`

**Untuk terhubung ke Hive dan HDFS di CLI AWS SCT**

1. Buka skrip CLI Anda yang mencakup informasi koneksi untuk cluster Hadoop sumber Anda. Pastikan Anda menggunakan nama cluster Hadoop yang Anda tentukan pada langkah sebelumnya.

1. Tambahkan layanan Hive sumber Anda ke proyek.

   Gunakan `AddSourceClusterHive` perintah untuk menghubungkan layanan sumber Hive. Pastikan Anda memberikan nilai untuk parameter wajib berikut:`user`,, `password``cluster`,`name`, dan`port`. Parameter lainnya adalah opsional.

   Contoh kode berikut membuat terowongan AWS SCT untuk bekerja dengan layanan Hive Anda. Layanan Hive sumber ini berjalan pada PC yang sama dengan. AWS SCT Contoh ini menggunakan cluster `HADOOP_SOURCE` sumber dari contoh sebelumnya.

   ```
   AddSourceClusterHive
       -cluster: 'HADOOP_SOURCE'
       -name: 'HIVE_SOURCE'
       -host: 'localhost'
       -port: '10005'
       -user: 'hive_user'
       -password: 'hive_password'
       -createTunnel: 'true'
       -localPort: '10005'
       -remoteHost: 'hive_remote_address'
       -remotePort: 'hive_port'
   /
   ```

   Contoh kode berikut terhubung ke layanan Hive Anda tanpa terowongan.

   ```
   AddSourceClusterHive
       -cluster: 'HADOOP_SOURCE'
       -name: 'HIVE_SOURCE'
       -host: 'hive_address'
       -port: 'hive_port'
       -user: 'hive_user'
       -password: 'hive_password'
   /
   ```

   Dalam contoh sebelumnya, ganti *hive\$1user* dan *hive\$1password* dengan nama pengguna Hive Anda dan kata sandi untuk pengguna ini.

   Selanjutnya, ganti *hive\$1address* dan *hive\$1port* dengan alamat NameNode IP dan port cluster Hadoop sumber Anda.

   Untuk*hive\$1remote\$1address*, Anda dapat menggunakan nilai default `127.0.0.1` atau alamat NameNode IP dari layanan Hive sumber Anda.

1. Tambahkan layanan HDFS sumber Anda ke proyek.

   Gunakan `AddSourceClusterHDFS` perintah untuk menghubungkan layanan HDFS sumber. Pastikan Anda memberikan nilai untuk parameter wajib berikut:`user`,, `password``cluster`,`name`, dan`port`. Parameter lainnya adalah opsional.

   Pastikan pengguna Anda memiliki izin yang diperlukan untuk memigrasi data dari layanan HDFS sumber Anda. Untuk informasi selengkapnya, lihat [Izin untuk menggunakan Hive sebagai sumber](#CHAP_Source.Hadoop.Permissions).

   Contoh kode berikut membuat terowongan AWS SCT untuk bekerja dengan layanan Apache HDFS Anda. Contoh ini menggunakan cluster `HADOOP_SOURCE` sumber yang Anda buat sebelumnya.

   ```
   AddSourceClusterHDFS
       -cluster: 'HADOOP_SOURCE'
       -name: 'HDFS_SOURCE'
       -host: 'localhost'
       -port: '9005'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
       -createTunnel: 'true'
       -localPort: '9005'
       -remoteHost: 'hdfs_remote_address'
       -remotePort: 'hdfs_port'
   /
   ```

   Kode berikut terhubung ke layanan Apache HDFS Anda tanpa terowongan.

   ```
   AddSourceClusterHDFS
       -cluster: 'HADOOP_SOURCE'
       -name: 'HDFS_SOURCE'
       -host: 'hdfs_address'
       -port: 'hdfs_port'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
   /
   ```

   Dalam contoh sebelumnya, ganti *hdfs\$1user* dan *hdfs\$1password* dengan nama pengguna HDFS Anda dan kata sandi untuk pengguna ini.

   Selanjutnya, ganti *hdfs\$1address* dan *hdfs\$1port* dengan alamat NameNode IP dan port cluster Hadoop sumber Anda.

   Untuk*hdfs\$1remote\$1address*, Anda dapat menggunakan nilai default `127.0.0.1` atau alamat NameNode IP dari layanan Hive sumber Anda.

1. Simpan skrip CLI Anda. Selanjutnya, tambahkan informasi koneksi untuk kluster EMR Amazon target Anda, dan perintah migrasi.

## Menghubungkan ke Amazon EMR sebagai target
<a name="CHAP_Source.Hadoop.Target"></a>

Anda dapat terhubung ke cluster EMR Amazon target Anda dengan CLI AWS SCT . Untuk melakukannya, Anda mengotorisasi lalu lintas masuk dan menggunakan SSH. Dalam hal ini, AWS SCT memiliki semua izin yang diperlukan untuk bekerja dengan cluster EMR Amazon Anda. Untuk informasi selengkapnya, lihat [Sebelum Anda menyambung](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-ssh-prereqs.html) dan [Connect ke node utama menggunakan SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) di Panduan Manajemen EMR Amazon.

AWS SCT terhubung ke Amazon EMR Hive dengan pengguna cluster. `hadoop` Untuk terhubung ke Amazon EMR Hive, gunakan driver Hive JDBC versi 2.6.2.1002 atau lebih tinggi. Untuk informasi selengkapnya, lihat [Menginstal driver JDBC untuk AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

**Untuk terhubung ke Amazon EMR di CLI AWS SCT**

1. Buka skrip CLI Anda yang mencakup informasi koneksi untuk cluster Hadoop sumber Anda. Tambahkan kredensi EMR Amazon target ke dalam file ini.

1. Tambahkan kluster EMR Amazon target Anda ke proyek.

   Contoh kode berikut menambahkan target Amazon EMR cluster. Contoh ini ditetapkan `HADOOP_TARGET` sebagai nama cluster target. Gunakan nama objek ini untuk menambahkan layanan Hive dan HDFS serta Amazon S3, folder bucket ke project dan buat aturan pemetaan.

   ```
   AddTargetCluster
   	-name: 'HADOOP_TARGET'
   	-vendor: 'AMAZON_EMR'
   	-host: 'ec2-44-44-55-66.eu-west-1.EXAMPLE.amazonaws.com'
   	-port: '22'
   	-user: 'emr_user'
   	-password: 'emr_password'
   	-useSSL: 'true'
   	-privateKeyPath: 'c:\path\name.pem'
   	-passPhrase: '1234567890abcdef0!'
   	-s3Name: 'S3_TARGET'
   	-accessKey: 'AKIAIOSFODNN7EXAMPLE'
   	-secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
   	-region: 'eu-west-1'
   	-s3Path: 'doc-example-bucket/example-folder'
   /
   ```

   Dalam contoh sebelumnya, masukkan nama AWS sumber daya dan informasi koneksi Amazon EMR Anda. Ini termasuk alamat IP kluster EMR Amazon Anda, kunci AWS akses, kunci akses AWS rahasia, dan bucket Amazon S3. Jika diperlukan, konfigurasikan nilai variabel port. Selanjutnya, ganti *emr\$1user* dan *emr\$1password* dengan nama pengguna EMR Amazon Anda dan kata sandi untuk pengguna ini. Untuk*path\$1name*, masukkan nama dan jalur ke file PEM untuk kluster EMR Amazon target Anda. Untuk informasi selengkapnya, lihat [Mengunduh File PEM untuk Akses Kluster EMR](https://docs.aws.amazon.com/whitepapers/latest/teaching-big-data-skills-with-amazon-emr/download-pem-file-for-emr-cluster-access.html).

1. Tambahkan bucket Amazon S3 target Anda ke proyek.

   Contoh kode berikut menambahkan bucket Amazon S3 target. Contoh ini menggunakan `HADOOP_TARGET` cluster yang Anda buat sebelumnya.

   ```
   AddTargetClusterS3
   	-cluster: 'HADOOP_TARGET'
   	-Name: 'S3_TARGET'
   	-accessKey: 'AKIAIOSFODNN7EXAMPLE'
   	-secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
   	-region: 'eu-west-1'
   	-s3Path: 'doc-example-bucket/example-folder'
   /
   ```

   Pada contoh sebelumnya, masukkan kunci akses, kunci AWS akses AWS rahasia, dan bucket Amazon S3.

1. Tambahkan layanan Hive target Anda ke proyek.

   Contoh kode berikut membuat terowongan AWS SCT untuk bekerja dengan layanan Hive target Anda. Contoh ini menggunakan cluster `HADOOP_TARGET` target yang Anda buat sebelumnya.

   ```
   AddTargetClusterHive
       -cluster: 'HADOOP_TARGET'
       -name: 'HIVE_TARGET'
       -host: 'localhost'
       -port: '10006'
       -user: 'hive_user'
       -password: 'hive_password'
       -createTunnel: 'true'
       -localPort: '10006'
       -remoteHost: 'hive_address'
       -remotePort: 'hive_port'
   /
   ```

   Pada contoh sebelumnya, ganti *hive\$1user* dan *hive\$1password* dengan nama pengguna Hive Anda dan kata sandi untuk pengguna ini.

   Selanjutnya, ganti *hive\$1address* dengan nilai default `127.0.0.1` atau dengan alamat NameNode IP layanan Hive target Anda. Selanjutnya, ganti *hive\$1port* dengan port layanan Hive target Anda.

1. Tambahkan layanan HDFS target Anda ke proyek.

   Contoh kode berikut membuat terowongan AWS SCT untuk bekerja dengan layanan Apache HDFS Anda. Contoh ini menggunakan cluster `HADOOP_TARGET` target yang Anda buat sebelumnya.

   ```
   AddTargetClusterHDFS
       -cluster: 'HADOOP_TARGET'
       -name: 'HDFS_TARGET'
       -host: 'localhost'
       -port: '8025'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
       -createTunnel: 'true'
       -localPort: '8025'
       -remoteHost: 'hdfs_address'
       -remotePort: 'hdfs_port'
   /
   ```

   Dalam contoh sebelumnya, ganti *hdfs\$1user* dan *hdfs\$1password* dengan nama pengguna HDFS Anda dan kata sandi untuk pengguna ini.

   Selanjutnya, ganti *hdfs\$1address* dan *hdfs\$1port* dengan alamat IP pribadi dan port layanan HDFS target Anda. NameNode 

1. Simpan skrip CLI Anda. Selanjutnya, tambahkan aturan pemetaan dan perintah migrasi. Untuk informasi selengkapnya, lihat [Memigrasi beban kerja Hadoop](big-data-hadoop.md).

# Menghubungkan ke alur kerja Apache Oozie dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oozie"></a>

Anda dapat menggunakan antarmuka baris AWS SCT perintah (CLI) untuk mengonversi alur kerja Apache Oozie menjadi. AWS Step Functions Setelah memigrasikan beban kerja Apache Hadoop Anda ke Amazon EMR, Anda dapat menggunakan layanan asli untuk mengatur pekerjaan Anda. AWS Cloud Untuk informasi selengkapnya, lihat [Menghubungkan ke Apache Hadoop](CHAP_Source.Hadoop.md).

AWS SCT mengonversi alur kerja Oozie Anda menjadi AWS Step Functions dan menggunakan AWS Lambda untuk meniru fitur yang tidak mendukung. AWS Step Functions Juga, AWS SCT ubah properti pekerjaan Oozie Anda menjadi. AWS Systems Manager

Untuk mengonversi alur kerja Apache Oozie, pastikan Anda menggunakan AWS SCT versi 1.0.671 atau yang lebih tinggi. Juga, biasakan diri Anda dengan antarmuka baris perintah AWS SCT. Untuk informasi selengkapnya, lihat [Referensi CLI untuk AWS Schema Conversion Tool](CHAP_Reference.md).

## Prasyarat untuk menggunakan Apache Oozie sebagai sumber
<a name="CHAP_Source.Oozie.Prerequisites"></a>

Prasyarat berikut diperlukan untuk terhubung ke Apache Oozie dengan CLI. AWS SCT 
+ Buat bucket Amazon S3 untuk menyimpan definisi mesin status. Anda dapat menggunakan definisi ini untuk mengonfigurasi mesin status Anda. Lihat informasi yang lebih lengkap di [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dalam *Panduan Pengguna Amazon S3*.
+ Buat peran AWS Identity and Access Management (IAM) dengan `AmazonS3FullAccess` kebijakan. AWS SCT menggunakan peran IAM ini untuk mengakses bucket Amazon S3 Anda.
+ Catat kunci AWS rahasia dan kunci akses AWS rahasia Anda. Untuk informasi selengkapnya tentang kunci AWS akses, lihat [Mengelola kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan Pengguna IAM*.
+ Simpan AWS kredensil Anda dan informasi tentang bucket Amazon S3 Anda di profil layanan AWS di pengaturan aplikasi global. Kemudian, AWS SCT gunakan profil AWS layanan ini untuk bekerja dengan AWS sumber daya Anda. Untuk informasi selengkapnya, lihat [Mengelola Profil di AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md).

Untuk bekerja dengan alur kerja Apache Oozie sumber Anda, AWS SCT memerlukan struktur spesifik dari file sumber Anda. Setiap folder aplikasi Anda harus menyertakan `job.properties` file. File ini mencakup pasangan nilai kunci dari properti pekerjaan Anda. Selain itu, setiap folder aplikasi Anda harus menyertakan `workflow.xml` file. File ini menjelaskan node tindakan dan node alur kontrol alur kerja Anda.

## Menghubungkan ke Apache Oozie sebagai sumber
<a name="CHAP_Source.Oozie.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke file sumber Apache Oozie Anda.

**Untuk terhubung ke Apache Oozie di CLI AWS SCT**

1. Buat skrip AWS SCT CLI baru atau edit template skenario yang ada. Misalnya, Anda dapat mengunduh dan mengedit `OozieConversionTemplate.scts` template. Untuk informasi selengkapnya, lihat [Mendapatkan skenario CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

1. Konfigurasikan pengaturan AWS SCT aplikasi.

   Contoh kode berikut menyimpan pengaturan aplikasi dan memungkinkan untuk menyimpan kata sandi dalam proyek Anda. Anda dapat menggunakan pengaturan yang disimpan ini di proyek lain.

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "store_password": "true"
       }'
   /
   ```

1. Buat AWS SCT proyek baru.

   Contoh kode berikut membuat `oozie` proyek dalam `c:\sct` folder.

   ```
   CreateProject
       -name: 'oozie'
       -directory: 'c:\sct'
   /
   ```

1. Tambahkan folder dengan file Apache Oozie sumber Anda ke proyek menggunakan perintah. `AddSource` Pastikan Anda menggunakan `APACHE_OOZIE` nilai untuk `vendor` parameter. Juga, berikan nilai untuk parameter yang diperlukan berikut: `name` dan`mappingsFolder`.

   Contoh kode berikut menambahkan Apache Oozie sebagai sumber dalam proyek Anda. AWS SCT Contoh ini membuat objek sumber dengan nama`OOZIE`. Gunakan nama objek ini untuk menambahkan aturan pemetaan. Setelah Anda menjalankan contoh kode ini, AWS SCT gunakan `c:\oozie` folder untuk memuat file sumber Anda dalam proyek.

   ```
   AddSource
       -name: 'OOZIE'
       -vendor: 'APACHE_OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

   Anda dapat menggunakan contoh ini dan contoh berikut di Windows.

1. Connect ke file Apache Oozie sumber Anda menggunakan perintah. `ConnectSource` Gunakan nama objek sumber yang Anda tentukan pada langkah sebelumnya.

   ```
   ConnectSource
       -name: 'OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

1. Simpan skrip CLI Anda. Selanjutnya, tambahkan informasi koneksi untuk AWS Step Functions layanan Anda.

## Izin untuk menggunakan AWS Lambda fungsi dalam paket ekstensi
<a name="CHAP_Source.Oozie.TargetPrerequisites"></a>

Untuk fungsi sumber yang AWS Step Functions tidak mendukung, AWS SCT buat paket ekstensi. Paket ekstensi ini mencakup AWS Lambda fungsi, yang meniru fungsi sumber Anda.

Untuk menggunakan paket ekstensi ini, buat peran AWS Identity and Access Management (IAM) dengan izin berikut.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "lambda",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:498160209112:function:LoadParameterInitialState:*",
                "arn:aws:lambda:*:498160209112:function:EvaluateJSPELExpressions:*"
            ]
        },
        {
            "Sid": "emr",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:AddJobFlowSteps"
            ],
            "Resource": [
                "arn:aws:elasticmapreduce:*:498160209112:cluster/*"
            ]
        },
        {
            "Sid": "s3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::*/*"
            ]
        }
    ]
}
```

------

Untuk menerapkan paket ekstensi, AWS SCT memerlukan peran IAM dengan izin berikut.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies",
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/sct/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/lambda_LoadParameterInitialStateRole",
                "arn:aws:iam::111122223333:role/lambda_EvaluateJSPELExpressionsRole",
                "arn:aws:iam::111122223333:role/stepFunctions_MigratedOozieWorkflowRole"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:CreateFunction",
                "lambda:UpdateFunctionCode",
                "lambda:DeleteFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:LoadParameterInitialState",
                "arn:aws:lambda:*:111122223333:function:EvaluateJSPELExpressions"
            ]
        }
    ]
}
```

------

## Menghubungkan AWS Step Functions sebagai target
<a name="CHAP_Source.Oozie.Target"></a>

Gunakan prosedur berikut untuk terhubung AWS Step Functions sebagai target.

**Untuk terhubung ke AWS Step Functions dalam AWS SCT CLI**

1. Buka skrip CLI Anda yang mencakup informasi koneksi untuk file sumber Apache Oozie Anda.

1. Tambahkan informasi tentang target migrasi Anda dalam AWS SCT proyek menggunakan `AddTarget` perintah. Pastikan Anda menggunakan `STEP_FUNCTIONS` nilai untuk `vendor` parameter. Juga, berikan nilai untuk parameter yang diperlukan berikut: `name` dan`profile`.

   Contoh kode berikut ditambahkan AWS Step Functions sebagai sumber dalam AWS SCT proyek Anda. Contoh ini menciptakan objek target dengan nama`AWS_STEP_FUNCTIONS`. Gunakan nama objek ini saat Anda membuat aturan pemetaan. Juga, contoh ini menggunakan profil AWS SCT layanan yang Anda buat di langkah prasyarat. Pastikan Anda mengganti *profile\$1name* dengan nama profil Anda.

   ```
   AddTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -vendor: 'STEP_FUNCTIONS'
       -profile: 'profile_name'
   /
   ```

   Jika Anda tidak menggunakan profil AWS layanan, pastikan Anda memberikan nilai untuk parameter yang diperlukan berikut:`accessKey`,`secretKey`,`awsRegion`, dan`s3Path`. Gunakan parameter ini untuk menentukan kunci akses AWS rahasia, kunci AWS rahasia Wilayah AWS, dan jalur ke bucket Amazon S3 Anda.

1. Connect untuk AWS Step Functions menggunakan `ConnectTarget` perintah. Gunakan nama objek target Anda yang Anda tentukan pada langkah sebelumnya.

   Contoh kode berikut terhubung ke objek `AWS_STEP_FUNCTIONS` target menggunakan profil AWS layanan Anda. Pastikan Anda mengganti *profile\$1name* dengan nama profil Anda.

   ```
   ConnectTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -profile: 'profile_name'
   /
   ```

1. Simpan skrip CLI Anda. Selanjutnya, tambahkan aturan pemetaan dan perintah migrasi. Untuk informasi selengkapnya, lihat [Mengonversi alur kerja Oozie;](big-data-oozie.md).

# Menghubungkan ke Microsoft Azure SQL Database dengan AWS SCT
<a name="CHAP_Source.AzureSQL"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Azure SQL Database ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

**Topics**
+ [Hak istimewa untuk Azure SQL Database sebagai sumber](#CHAP_Source.AzureSQL.Permissions)
+ [Menghubungkan ke Azure SQL Database sebagai sumber](#CHAP_Source.AzureSQL.Connecting)

## Hak istimewa untuk Azure SQL Database sebagai sumber
<a name="CHAP_Source.AzureSQL.Permissions"></a>

Hak istimewa yang diperlukan untuk Azure SQL Database sebagai sumber adalah sebagai berikut: 
+ LIHAT DEFINISI 
+ LIHAT STATUS BASIS DATA 

Ulangi hibah untuk setiap database yang skema Anda konversi. 

Hak istimewa yang diperlukan untuk database target MySQL dan PostgreSQL dijelaskan di bagian berikut.
+ [Hak istimewa untuk MySQL sebagai basis data target](CHAP_Source.SQLServer.ToMySQL.md#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget) 
+ [Hak istimewa untuk PostgreSQL sebagai database target](CHAP_Source.SQLServer.ToPostgreSQL.md#CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL) 

## Menghubungkan ke Azure SQL Database sebagai sumber
<a name="CHAP_Source.AzureSQL.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Azure SQL Database Anda dengan file. AWS Schema Conversion Tool

**Untuk menyambung ke database sumber Azure SQL Database**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Azure SQL Database**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Azure SQL Database secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.AzureSQL.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Menghubungkan ke IBM DB2 untuk z/OS Database dengan AWS Schema Conversion Tool
<a name="CHAP_Source.DB2zOS"></a>

Anda dapat menggunakan AWS SCT untuk mengkonversi skema, objek kode, dan kode aplikasi dari IBM Db2 z/OS untuk target berikut.
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

## Prasyarat untuk Db2 untuk sebagai database sumber z/OS
<a name="CHAP_Source.DB2zOS.Prerequisites"></a>

IBM Db2 untuk z/OS versi 12 fungsi level 100 versi basis data tidak mendukung sebagian besar kemampuan baru IBM Db2 untuk versi 12. z/OS Versi database ini menyediakan dukungan untuk fallback ke Db2 versi 11 dan berbagi data dengan Db2 versi 11. Untuk menghindari konversi fitur Db2 versi 11 yang tidak didukung, kami sarankan Anda menggunakan IBM Db2 untuk fungsi z/OS database tingkat 500 atau lebih tinggi sebagai sumber untuk. AWS SCT

Anda dapat menggunakan contoh kode berikut untuk memeriksa versi sumber Anda IBM Db2 untuk database. z/OS 

```
SELECT GETVARIABLE('SYSIBM.VERSION') as version FROM SYSIBM.SYSDUMMY1;
```

Pastikan kode ini mengembalikan versi `DSN12015` atau lebih tinggi.

Anda dapat menggunakan contoh kode berikut untuk memeriksa nilai register `APPLICATION COMPATIBILITY` khusus di sumber Anda IBM Db2 untuk database. z/OS 

```
SELECT CURRENT APPLICATION COMPATIBILITY as version FROM SYSIBM.SYSDUMMY1;
```

Pastikan kode ini mengembalikan versi `V12R1M500` atau lebih tinggi.

## Hak istimewa untuk Db2 z/OS sebagai database sumber
<a name="CHAP_Source.DB2zOS.Permissions"></a>

Hak istimewa yang diperlukan untuk terhubung ke Db2 untuk z/OS database dan membaca katalog dan tabel sistem adalah sebagai berikut:
+ PILIH DI SYSIBM.LOCATIONS
+ PILIH PADA SYSIBM.SYSCHECKS
+ PILIH PADA SYSIBM.SYSCOLUMNS
+ PILIH PADA SYSIBM.SYSDATABASE
+ PILIH PADA SYSIBM.SYSDATATYPES
+ PILIH PADA SYSIBM. SYSDUMMY1
+ PILIH PADA SYSIBM.SYSFOREIGNKEYS
+ PILIH PADA SYSIBM.SYSINDEXES
+ PILIH PADA SYSIBM.SYSKEYCOLUSE
+ PILIH PADA SYSIBM.SYSKEYS
+ PILIH PADA SYSIBM.SYSKEYTARGETS
+ PILIH PADA SYSIBM.SYSJAROBJECTS
+ PILIH PADA SYSIBM.SYSPACKAGE
+ PILIH PADA SYSIBM.SYSPARMS
+ PILIH PADA SYSIBM.SYSRELS
+ PILIH PADA SYSIBM.SYSROUTINES
+ PILIH PADA SYSIBM.SYSSEQUENCES
+ PILIH PADA SYSIBM.SYSSEQUENCESDEP
+ PILIH PADA SYSIBM.SYSSYNONYMS
+ PILIH PADA SYSIBM.SYSTABCONST
+ PILIH PADA SYSIBM.SYSTABLES
+ PILIH DI SYSIBM.SYSTABLESPACE
+ PILIH DI SYSIBM.SYSTRIGGERS
+ PILIH PADA SYSIBM.SYSVARIABLE
+ PILIH PADA SYSIBM.SYSVIEWS

Untuk mengonversi Db2 untuk z/OS tabel ke tabel yang dipartisi PostgreSQL, kumpulkan statistik pada ruang tabel dan tabel di database Anda menggunakan utilitas seperti yang ditunjukkan berikut. `RUNSTATS`

```
LISTDEF YOURLIST INCLUDE TABLESPACES DATABASE YOURDB 
RUNSTATS TABLESPACE
LIST YOURLIST
TABLE (ALL) INDEX (ALL KEYCARD)
UPDATE ALL
REPORT YES
SHRLEVEL REFERENCE
```

Pada contoh sebelumnya, ganti `YOURDB` placeholder dengan nama database sumber.

## Menghubungkan ke Db2 untuk z/OS sebagai sumber
<a name="CHAP_Source.DB2zOS.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke Db2 Anda untuk database z/OS sumber dengan. AWS SCT

**Untuk terhubung ke IBM Db2 untuk database sumber z/OS**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**.

1. **Pilih **Db2 untuk z/OS**, lalu pilih Berikutnya.**

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan IBM Db2 untuk informasi koneksi database z/OS sumber secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda.

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.DB2zOS.ConfigureMySQL"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT PADA \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA\$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ PILIH DI mysql.proc
+ SISIPKAN, PERBARUI PADA AWS\$1DB 2ZOS\$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1DB 2ZOS\$1EXT\$1DATA. \$1
+ BUAT TABEL SEMENTARA DI AWS\$1DB 2ZOS\$1EXT\$1DATA. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT SELECT ON mysql.proc TO 'user_name';
GRANT INSERT, UPDATE ON AWS_DB2ZOS_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for MySQL sebagai target, `log_bin_trust_function_creators` tetapkan parameter ke true, dan ke. `character_set_server` `latin1` Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

Untuk menggunakan Aurora MySQL sebagai target, atur `log_bin_trust_function_creators` parameter ke true, dan ke. `character_set_server` `latin1` Juga, atur `lower_case_table_names` parameter ke true. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.DB2zOS.ConfigurePostgreSQL"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap database PostgreSQL target.

Untuk menggunakan Amazon RDS for PostgreSQL sebagai target, memerlukan hak istimewa. AWS SCT `rds_superuser`

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
GRANT rds_superuser TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

## Db2 untuk pengaturan konversi z/OS PostgreSQL
<a name="CHAP_Source.DB2zOS.PostgreSQLConversionSettings"></a>

****Untuk mengedit Db2 untuk pengaturan konversi z/OS PostgreSQL, pilih Pengaturan, lalu pilih Pengaturan konversi.**** Dari daftar atas, pilih **Db2 untuk z/OS, lalu pilih Db2 untuk** - **PostgreSQL atau **Db2** untuk z/OS - Amazon Aurora (PostgreSQL kompatibel)**. z/OS AWS SCT menampilkan semua pengaturan yang tersedia untuk IBM Db2 untuk konversi z/OS PostgreSQL.

Db2 untuk pengaturan konversi z/OS PostgreSQL di menyertakan opsi untuk berikut: AWS SCT 
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk menghasilkan nama unik untuk kendala dalam database target.

  Di PostgreSQL, semua nama kendala yang Anda gunakan harus unik. AWS SCT dapat menghasilkan nama unik untuk kendala dalam kode yang dikonversi dengan menambahkan awalan dengan nama tabel ke nama kendala Anda. Untuk memastikan bahwa AWS SCT menghasilkan nama unik untuk batasan Anda, pilih **Hasilkan nama unik untuk** batasan.
+ Untuk menjaga pemformatan nama kolom, ekspresi, dan klausa dalam pernyataan DHTML dalam kode yang dikonversi.

  AWS SCT dapat menjaga tata letak nama kolom, ekspresi, dan klausa dalam pernyataan DHTML dalam posisi dan urutan yang sama seperti pada kode sumber. Untuk melakukannya, pilih **Ya** untuk **Pertahankan pemformatan nama kolom, ekspresi, dan klausa dalam** pernyataan DHTML.
+ Untuk mengecualikan partisi tabel dari lingkup konversi.

  AWS SCT dapat melewati semua partisi tabel sumber selama konversi. Untuk melakukannya, pilih **Kecualikan partisi tabel dari lingkup konversi**.
+ Untuk menggunakan partisi otomatis untuk tabel yang dipartisi oleh pertumbuhan.

  Untuk migrasi data, secara otomatis AWS SCT dapat partisi semua tabel yang lebih besar dari ukuran yang ditentukan. Untuk menggunakan opsi ini, pilih **Terapkan partisi tabel yang lebih besar dari**, dan masukkan ukuran tabel dalam gigabyte. Selanjutnya, masukkan jumlah partisi. AWS SCT mempertimbangkan ukuran perangkat penyimpanan akses langsung (DASD) dari basis data sumber Anda saat Anda mengaktifkan opsi ini.

  AWS SCT dapat menentukan jumlah partisi secara otomatis. Untuk melakukannya, pilih **Tingkatkan jumlah partisi secara proporsional**, dan masukkan jumlah partisi maksimum.
+ Untuk mengembalikan set hasil dinamis sebagai larik nilai tipe data refkursor.

  AWS SCT dapat mengubah prosedur sumber yang mengembalikan set hasil dinamis menjadi prosedur yang memiliki array refkursor terbuka sebagai parameter output tambahan. Untuk melakukannya, pilih **Gunakan array refkursor untuk mengembalikan semua set hasil dinamis**.
+ Untuk menentukan standar yang akan digunakan untuk konversi nilai tanggal dan waktu ke representasi string.

  AWS SCT dapat mengonversi nilai tanggal dan waktu menjadi representasi string menggunakan salah satu format industri yang didukung. Untuk melakukannya, pilih **Gunakan representasi string dari nilai tanggal** atau **Gunakan representasi string dari nilai waktu**. Selanjutnya, pilih salah satu standar berikut.
  + Organisasi Standar Internasional (ISO)
  + Standar Eropa IBM (EUR)
  + IBM USA Standard (AS)
  + Era Kristen Standar Industri Jepang (JIS)

# ConnConnecting ke IBM DB2 untuk Linux, UNIX, dan Windows Database dengan AWS Schema Conversion Tool
<a name="CHAP_Source.DB2LUW"></a>

Anda dapat menggunakan AWS SCT untuk mengkonversi skema, objek kode dalam bahasa SQL, dan kode aplikasi dari IBM Db2 untuk Linux, Unix, dan Windows (Db2 LUW) ke target berikut.
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon RDS for MariaDB

AWS SCT mendukung sebagai sumber Db2 LUW versi 9.1, 9.5, 9.7, 10.1, 10.5, 11.1, dan 11.5.

## Hak istimewa untuk Db2 LUW sebagai sumber
<a name="CHAP_Source.DB2LUW.Permissions"></a>

Hak istimewa yang diperlukan untuk terhubung ke database Db2 LUW, untuk memeriksa hak istimewa yang tersedia dan membaca metadata skema untuk sumber adalah sebagai berikut: 
+ Hak istimewa yang diperlukan untuk membuat koneksi:
  + TERHUBUNG PADA DATABASE
+ Hak istimewa diperlukan untuk menjalankan pernyataan SQL:
  + JALANKAN PADA PAKET NULLID. SYSSH200
+ Hak istimewa yang diperlukan untuk mendapatkan informasi tingkat instans:
  + JALANKAN PADA FUNGSI SYSPROC.ENV\$1GET\$1INST\$1INFO
  + PILIH DI SYSIBMADM.ENV\$1INST\$1INFO
  + PILIH DI SYSIBMADM.ENV\$1SYS\$1INFO
+ Hak istimewa yang diperlukan untuk memeriksa hak istimewa yang diberikan melalui peran, kelompok, dan otoritas:
  + JALANKAN PADA FUNGSI SYSPROC.AUTH\$1LIST\$1AUTHORITIES\$1FOR\$1AUTHID
  + JALANKAN PADA FUNGSI SYSPROC.AUTH\$1LIST\$1GROUPS\$1FOR\$1AUTHID
  + JALANKAN PADA FUNGSI SYSPROC.AUTH\$1LIST\$1ROLES\$1FOR\$1AUTHID
  + PILIH DI SYSIBMADM.PRIVILEGES
+ Hak istimewa yang diperlukan pada katalog dan tabel sistem:
  + PILIH DI SYSCAT.ATTRIBUTES
  + PILIH DI SYSCAT.CHECKS
  + PILIH DI SYSCAT.COLIDENTATTRIBUTES
  + PILIH DI SYSCAT.COLUMNS
  + PILIH PADA SYSCAT.DATAPARTITIONEXPRESSION
  + PILIH DI SYSCAT.DATAPARTITIONS
  + PILIH DI SYSCAT.DATATYPEDEP
  + PILIH DI SYSCAT.DATATYPES
  + PILIH DI SYSCAT.HIERARCHIES
  + PILIH DI SYSCAT.INDEXCOLUSE
  + PILIH DI SYSCAT.INDEXES
  + PILIH PADA SYSCAT.INDEXPARTITIONS
  + PILIH DI SYSCAT.KEYCOLUSE
  + PILIH DI SYSCAT.MODULEOBJECTS
  + PILIH DI SYSCAT.MODULES
  + PILIH DI SYSCAT.NICKIES
  + PILIH DI SYSCAT.PERIODS
  + PILIH DI SYSCAT.REFERENCES
  + PILIH DI SYSCAT.ROUTINEPARMS
  + PILIH DI SYSCAT.ROUTINES
  + PILIH DI SYSCAT.ROWFIELDS
  + PILIH DI SYSCAT.SCHEMATA
  + PILIH DI SYSCAT.SEQUENCES
  + PILIH DI SYSCAT.TABCONST
  + PILIH DI SYSCAT.TABLES
  + PILIH DI SYSCAT.TRIGGERS
  + PILIH DI SYSCAT.VARIABLEDEP
  + PILIH DI SYSCAT.VARIABLES
  + PILIH DI SYSCAT.VIEWS
  + PILIH PADA SYSIBM. SYSDUMMY1
+  Untuk menjalankan pernyataan SQL, akun pengguna memerlukan hak istimewa untuk menggunakan setidaknya salah satu beban kerja yang diaktifkan dalam database. Jika tidak ada beban kerja yang ditetapkan ke pengguna, pastikan bahwa beban kerja pengguna default dapat diakses oleh pengguna:
  + PENGGUNAAN PADA BEBAN KERJA SYSDEFAULTUSERWORKLOAD

Untuk menjalankan kueri, Anda perlu membuat ruang tabel sementara sistem dengan ukuran halaman 8K, 16K, dan 32K, jika tidak ada. Untuk membuat ruang tabel sementara, jalankan skrip berikut.

```
CREATE BUFFERPOOL BP8K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 8K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_8K 
  PAGESIZE 8192 
  BUFFERPOOL BP8K;
  
CREATE BUFFERPOOL BP16K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 16K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP16K 
  PAGESIZE 16384 
  BUFFERPOOL BP16K;  
  
CREATE BUFFERPOOL BP32K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 32K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP32K 
  PAGESIZE 32768 
  BUFFERPOOL BP32K;
```

## Menghubungkan ke Db2 LUW sebagai sumber
<a name="CHAP_Source.DB2LUW.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Db2 LUW Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Db2 LUW**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Db2 LUW**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber IBM Db2 LUW secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Migrasi dari IBM DB2 untuk Linux, UNIX, dan Windows ke Amazon Relational Database Service untuk PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan PostgreSQL
<a name="CHAP_Source.DB2LUW.ToPostgreSQL"></a>

Ketika Anda memigrasikan IBM Db2 LUW ke PostgreSQL, dapat mengonversi berbagai pernyataan pemicu yang digunakan dengan Db2 LUW. AWS SCT Pernyataan pemicu ini meliputi:
+ **Peristiwa pemicu — peristiwa** pemicu INSERT, DELETE, dan UPDATE menentukan bahwa tindakan yang dipicu berjalan setiap kali acara diterapkan ke tabel subjek atau tampilan subjek. Anda dapat menentukan kombinasi apa pun dari acara INSERT, DELETE, dan UPDATE, tetapi Anda dapat menentukan setiap acara hanya sekali. AWS SCT mendukung peristiwa pemicu tunggal dan ganda. Untuk acara, PostgreSQL praktis memiliki fungsi yang sama. 
+ **Event OF COLUMN** - Anda dapat menentukan nama kolom dari tabel dasar. Pemicu diaktifkan hanya dengan pembaruan kolom yang diidentifikasi dalam daftar nama kolom. PostgreSQL memiliki fungsi yang sama.
+ **Pemicu pernyataan** — Ini menentukan bahwa tindakan yang dipicu diterapkan hanya sekali untuk seluruh pernyataan. Anda tidak dapat menentukan jenis granularitas pemicu ini untuk pemicu SEBELUM atau pemicu BUKAN. Jika ditentukan, pemicu UPDATE atau DELETE diaktifkan, meskipun tidak ada baris yang terpengaruh. PostgreSQL juga memiliki fungsi ini dan memicu deklarasi untuk pemicu pernyataan identik untuk PostgreSQL dan Db2 LUW.
+ **Klausa referensi** - Ini menentukan nama korelasi untuk variabel transisi dan nama tabel untuk tabel transisi. Nama korelasi mengidentifikasi baris tertentu dalam kumpulan baris yang dipengaruhi oleh operasi SQL pemicu. Nama tabel mengidentifikasi set lengkap baris yang terpengaruh. Setiap baris yang dipengaruhi oleh operasi SQL pemicu tersedia untuk tindakan yang dipicu dengan mengkualifikasi kolom dengan nama korelasi tertentu. PostgreSQL tidak mendukung fungsi ini, dan hanya menggunakan nama korelasi BARU atau LAMA.
+ **BUKAN pemicu** - AWS SCT mendukung ini.

## Mengonversi tabel dipartisi Db2 LUW ke PostgreSQL versi 10 tabel dipartisi
<a name="CHAP_Source.DB2LUW.ToPostgreSQL.PartitionedTables"></a>

AWS SCT dapat mengkonversi tabel Db2 LUW ke tabel dipartisi di PostgreSQL 10. Ada beberapa batasan saat mengonversi tabel partisi Db2 LUW ke PostgreSQL:
+ Anda dapat membuat tabel dipartisi dengan kolom nullable di Db2 LUW, dan Anda dapat menentukan partisi untuk menyimpan nilai NULL. Namun, PostgreSQL tidak mendukung nilai NULL untuk partisi RANGE.
+ Db2 LUW dapat menggunakan klausa INCLUSIVE atau EXCLUSIVE untuk menetapkan nilai batas rentang. PostgreSQL hanya mendukung INCLUSIVE untuk batas awal dan EKSKLUSIF untuk batas akhir. Nama partisi yang dikonversi dalam format <original\$1table\$1name>\$1<original\$1partition\$1name>.
+ Anda dapat membuat kunci primer atau unik untuk tabel yang dipartisi di Db2 LUW. PostgreSQL mengharuskan Anda untuk membuat kunci primer atau unik untuk setiap partisi secara langsung. Batasan kunci primer atau unik harus dihapus dari tabel induk. Nama kunci yang dikonversi ada dalam format <original\$1key\$1name>\$1<original\$1partition \$1name>.
+ Anda dapat membuat batasan kunci asing dari dan ke tabel yang dipartisi di Db2 LUW. Namun, PostgreSQL tidak mendukung referensi kunci asing dalam tabel yang dipartisi. PostgreSQL juga tidak mendukung referensi kunci asing dari tabel yang dipartisi ke tabel lain.
+ Anda dapat membuat indeks pada tabel yang dipartisi di Db2 LUW. Namun, PostgreSQL mengharuskan Anda untuk membuat indeks untuk setiap partisi secara langsung. Indeks harus dihapus dari tabel induk. Nama indeks yang dikonversi dalam format <original\$1index\$1name>\$1<original\$1partition\$1name>.
+ Anda harus menentukan pemicu baris pada partisi individual, bukan pada tabel yang dipartisi. Pemicu harus dihapus dari tabel induk. Nama pemicu yang dikonversi ada dalam format <original\$1trigger\$1name>\$1<original\$1partition\$1name>.

## Hak istimewa untuk PostgreSQL sebagai target
<a name="CHAP_Source.DB2LUW.ToPostgreSQL.ConfigureTarget"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap database PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

# Migrasi dari IBM DB2 untuk Linux, UNIX, dan Windows ke Amazon RDS for MySQL atau Amazon Aurora MySQL
<a name="CHAP_Source.DB2LUW.ToMySQL"></a>

Saat Anda mengonversi database IBM Db2 LUW ke RDS untuk MySQL atau Amazon Aurora MySQL, perhatikan hal-hal berikut.

## Hak istimewa untuk MySQL sebagai target
<a name="CHAP_Source.DB2LUW.ToMySQL.ConfigureTarget"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT PADA \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA\$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ PILIH DI mysql.proc
+ SISIPKAN, PERBARUI PADA AWS\$1DB 2\$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1DB 2\$1EXT\$1DATA. \$1
+ BUAT TABEL SEMENTARA PADA AWS\$1DB 2\$1EXT\$1DATA. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT SELECT ON mysql.proc TO 'user_name';
GRANT INSERT, UPDATE ON AWS_DB2_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_DB2_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_DB2_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

# Menggunakan MySQL sebagai sumber AWS SCT
<a name="CHAP_Source.MySQL"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode database, dan kode aplikasi dari MySQL ke target berikut: 
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon RDS for MySQL

Untuk informasi selengkapnya, lihat bagian berikut:

**Topics**
+ [Hak istimewa untuk MySQL sebagai database sumber](#CHAP_Source.MySQL.Permissions)
+ [Menghubungkan ke MySQL sebagai sumber](#CHAP_Source.MySQL.Connecting)
+ [Hak istimewa untuk PostgreSQL sebagai database target](#CHAP_Source.MySQL.ConfigurePostgreSQL)

## Hak istimewa untuk MySQL sebagai database sumber
<a name="CHAP_Source.MySQL.Permissions"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai sumber adalah sebagai berikut: 
+ PILIH PADA \$1 . \$1 
+ TAMPILKAN TAMPILAN DI \$1 . \$1 

## Menghubungkan ke MySQL sebagai sumber
<a name="CHAP_Source.MySQL.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber MySQL Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber MySQL**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **MySQL**, lalu pilih Berikutnya.**

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber MySQL secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.MySQL.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.MySQL.ConfigurePostgreSQL"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap basis data PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

# Menghubungkan ke Database Oracle dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode database, dan kode aplikasi dari Oracle Database ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon RDS for Oracle
+ Amazon RDS for MariaDB

Ketika sumbernya adalah database Oracle, komentar dapat dikonversi ke format yang sesuai, misalnya, database PostgreSQL. AWS SCT dapat mengkonversi komentar pada tabel, tampilan, dan kolom. Komentar dapat menyertakan apostrof; AWS SCT menggandakan apostrof saat mengonversi pernyataan SQL, seperti halnya untuk literal string.

Untuk informasi selengkapnya, lihat hal berikut.

**Topics**
+ [Hak istimewa untuk Oracle sebagai sumber](#CHAP_Source.Oracle.Permissions)
+ [Menghubungkan ke Oracle sebagai sumber](#CHAP_Source.Oracle.Connecting)
+ [Bermigrasi dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL dengan AWS Schema Conversion Tool](CHAP_Source.Oracle.ToPostgreSQL.md)
+ [Bermigrasi dari Oracle ke Amazon RDS untuk MySQL atau Amazon Aurora dengan AWS Schema Conversion Tool](CHAP_Source.Oracle.ToMySQL.md)
+ [Migrasi dari Oracle Database ke Amazon RDS for Oracle AWS Schema Conversion Tool](CHAP_Source.Oracle.ToRDSOracle.md)

## Hak istimewa untuk Oracle sebagai sumber
<a name="CHAP_Source.Oracle.Permissions"></a>

Hak istimewa yang diperlukan untuk Oracle sebagai sumber adalah sebagai berikut: 
+ MENGHUBUNG 
+ SELECT\$1CATALOG\$1ROLE 
+ PILIH KAMUS APA SAJA 
+ PILIH DI SYS.ARGUMENT\$1

## Menghubungkan ke Oracle sebagai sumber
<a name="CHAP_Source.Oracle.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Oracle Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Oracle**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. Pilih **Oracle**, lalu pilih **Berikutnya**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Oracle secara manual, gunakan petunjuk berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Bermigrasi dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToPostgreSQL"></a>

Saat Anda mengonversi database Oracle ke RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL, perhatikan hal-hal berikut.

**Topics**
+ [Hak istimewa untuk PostgreSQL sebagai database target](#CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget)
+ [Pengaturan konversi Oracle ke PostgreSQL](#CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings)
+ [Mengonversi urutan Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences)
+ [Mengonversi Oracle ROWID](#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)
+ [Mengonversi SQL dinamis Oracle](#CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL)
+ [Mengonversi partisi Oracle](#CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning)

Saat mengkonversi objek sistem Oracle ke PostgreSQL, AWS SCT melakukan konversi seperti yang ditunjukkan pada tabel berikut.


| Objek sistem Oracle | Deskripsi | Dikonversi objek PostgreSQL | 
| --- | --- | --- | 
| V\$1 VERSI  | Menampilkan nomor versi komponen pustaka inti di Oracle Database | aws\$1oracle\$1ext.v \$1versi | 
| V\$1 CONTOH | Tampilan yang menunjukkan keadaan instance saat ini. | aws\$1oracle\$1ext.v \$1contoh | 

Anda dapat menggunakan AWS SCT untuk mengonversi file Oracle SQL\$1 Plus ke psql, yang merupakan front-end berbasis terminal ke PostgreSQL. Untuk informasi selengkapnya, lihat [Mengonversi aplikasi SQL menggunakan AWS SCT](CHAP_Converting.App.md).

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap basis data PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for PostgreSQL sebagai target, memerlukan hak istimewa. AWS SCT `rds_superuser`

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

## Pengaturan konversi Oracle ke PostgreSQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Oracle ke PostgreSQL, pilih Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL.

Pengaturan AWS SCT konversi Oracle ke PostgreSQL termasuk opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk memungkinkan AWS SCT untuk mengkonversi tampilan terwujud Oracle ke tabel atau tampilan terwujud pada PostgreSQL. Untuk **konversi tampilan terwujud sebagai**, pilih cara mengonversi tampilan terwujud sumber Anda.
+ Untuk bekerja dengan kode Oracle sumber Anda ketika menyertakan`TO_CHAR`,`TO_DATE`, dan `TO_NUMBER` fungsi dengan parameter yang PostgreSQL tidak mendukung. Secara default, AWS SCT mengemulasi penggunaan parameter ini dalam kode yang dikonversi.

  Ketika kode Oracle sumber Anda hanya menyertakan parameter yang didukung PostgreSQL, Anda dapat menggunakan PostgreSQL asli,, dan fungsi. `TO_CHAR` `TO_DATE` `TO_NUMBER` Dalam hal ini, kode yang dikonversi bekerja lebih cepat. Untuk memasukkan hanya parameter ini, pilih nilai berikut:
  + **Fungsi TO\$1CHAR () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1DATE () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1NUMBER () tidak menggunakan string pemformatan khusus Oracle**
+ Untuk mengatasi ketika database Oracle sumber Anda hanya menyimpan nilai integer di kolom kunci primer atau asing dari tipe `NUMBER` data, AWS SCT dapat mengonversi kolom ini ke tipe `BIGINT` data. Pendekatan ini meningkatkan kinerja kode Anda yang dikonversi. Untuk mengambil pendekatan ini, pilih **Konversi kolom kunci utama/asing NOMOR ke kolom BIGINT**. Pastikan sumber Anda tidak menyertakan nilai floating point di kolom ini untuk menghindari kehilangan data.
+ Untuk melewati pemicu dan kendala yang dinonaktifkan dalam kode sumber Anda. Untuk melakukannya, pilih **Abaikan pemicu dan kendala yang dinonaktifkan**.
+ Untuk digunakan AWS SCT untuk mengkonversi variabel string yang disebut sebagai SQL dinamis. Kode database Anda dapat mengubah nilai variabel string ini. Untuk memastikan bahwa AWS SCT selalu mengonversi nilai terbaru dari variabel string ini, pilih **Konversi kode SQL dinamis yang dibuat dalam rutinitas yang disebut**.
+ Untuk mengatasi PostgreSQL versi 10 dan sebelumnya tidak mendukung prosedur. Jika Anda atau pengguna Anda tidak terbiasa menggunakan prosedur di PostgreSQL, dapat mengonversi prosedur Oracle ke fungsi PostgreSQL AWS SCT . Untuk melakukannya, pilih **Konversi prosedur ke fungsi**.
+ Untuk melihat informasi tambahan tentang item tindakan yang terjadi. Untuk melakukannya, Anda dapat menambahkan fungsi tertentu ke paket ekstensi dengan memilih **Tambah pada blok peningkatan pengecualian untuk masalah migrasi dengan tingkat keparahan berikutnya**. Kemudian pilih tingkat keparahan untuk meningkatkan pengecualian yang ditentukan pengguna.
+ Untuk bekerja dengan database Oracle sumber yang mungkin menyertakan kendala dengan nama yang dihasilkan secara otomatis. Jika kode sumber Anda menggunakan nama-nama ini, pastikan Anda memilih **Konversi nama kendala yang dihasilkan sistem menggunakan nama asli sumber**. Jika kode sumber Anda menggunakan batasan ini tetapi tidak menggunakan namanya, hapus opsi ini untuk meningkatkan kecepatan konversi.
+ Untuk mengatasi apakah database dan aplikasi Anda berjalan di zona waktu yang berbeda. Secara default, AWS SCT mengemulasi zona waktu dalam kode yang dikonversi. Namun, Anda tidak memerlukan emulasi ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Dalam hal ini, pilih **Zona waktu di sisi klien cocok dengan zona waktu di server**.
+ Untuk mengatasi apakah basis data sumber dan target Anda berjalan di zona waktu yang berbeda. Jika mereka melakukannya, fungsi yang mengemulasi fungsi Oracle `SYSDATE` bawaan mengembalikan nilai yang berbeda dibandingkan dengan fungsi sumber. Untuk memastikan bahwa fungsi sumber dan target Anda mengembalikan nilai yang sama, pilih **Setel zona waktu default untuk emulasi SYSDATE**.
+ Untuk menggunakan fungsi dari ekstensi orafce dalam kode konversi Anda. Untuk melakukannya, untuk **implementasi Use orafce**, pilih fungsi yang akan digunakan. Untuk informasi lebih lanjut tentang orafce, lihat [orafce](https://github.com/orafce/orafce) di. GitHub

## Mengonversi urutan Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences"></a>

AWS SCT mengkonversi urutan dari Oracle ke PostgreSQL. Jika Anda menggunakan urutan untuk mempertahankan batasan integritas, pastikan nilai baru dari urutan yang dimigrasi tidak tumpang tindih dengan nilai yang ada.

**Untuk mengisi urutan yang dikonversi dengan nilai terakhir dari database sumber**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih **Pengaturan**, lalu pilih **Pengaturan konversi**. 

1. Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL. 

1. Pilih **Isi urutan yang dikonversi dengan nilai terakhir yang dihasilkan di sisi sumber**.

1. Pilih **OK** untuk menyimpan pengaturan dan menutup kotak dialog **Pengaturan konversi**. 

## Mengonversi Oracle ROWID
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID"></a>

 Dalam database Oracle, pseudocolumn ROWID berisi alamat baris tabel. Pseudocolumn ROWID unik untuk Oracle, sehingga AWS SCT mengkonversi pseudocolumn ROWID ke kolom data pada PostgreSQL. Dengan menggunakan konversi ini, Anda dapat menyimpan informasi ROWID. 

Ketika mengkonversi pseudocolumn ROWID, AWS SCT dapat membuat kolom data dengan tipe data. `bigint` Jika tidak ada kunci primer, AWS SCT menetapkan kolom ROWID sebagai kunci utama. Jika kunci utama ada, AWS SCT menetapkan kolom ROWID dengan kendala unik.

Jika kode database sumber Anda mencakup operasi dengan ROWID, yang tidak dapat Anda jalankan menggunakan tipe data numerik, AWS SCT dapat membuat kolom data dengan tipe `character varying` data.

**Untuk membuat kolom data untuk Oracle ROWID untuk sebuah proyek**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih **Pengaturan**, lalu pilih **Pengaturan konversi**. 

1. Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL. 

1. Untuk **Menghasilkan ID baris**, lakukan salah satu hal berikut: 
   + Pilih **Hasilkan sebagai identitas** untuk membuat kolom data numerik.
   + Pilih **Hasilkan sebagai tipe domain karakter** untuk membuat kolom data karakter.

1. Pilih **OK** untuk menyimpan pengaturan dan menutup kotak dialog **Pengaturan konversi**. 

## Mengonversi SQL dinamis Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL"></a>

 Oracle menyediakan dua cara untuk mengimplementasikan SQL dinamis: menggunakan pernyataan EXECUTE IMMEDIATE atau memanggil prosedur dalam paket DBMS\$1SQL. Jika database Oracle sumber Anda menyertakan objek dengan SQL dinamis, gunakan AWS SCT untuk mengonversi pernyataan SQL dinamis Oracle ke PostgreSQL.

**Untuk mengkonversi SQL dinamis Oracle ke PostgreSQL**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih objek database yang menggunakan SQL dinamis dalam tampilan pohon sumber Oracle.

1. Buka menu konteks (klik kanan) untuk objek, pilih **Convert schema**, dan setuju untuk mengganti objek jika ada. Tangkapan layar berikut menunjukkan prosedur yang dikonversi di bawah prosedur Oracle dengan SQL dinamis.  
![\[Konversi SQL dinamis\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/images/dynamicsql1.png)

## Mengonversi partisi Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning"></a>

AWS SCT saat ini mendukung metode partisi berikut: 
+ Kisaran
+ Daftar
+ Rentang multicolumn
+ Hash
+ Komposit (daftar-daftar, daftar rentang, daftar-rentang, daftar-hash, rentang-hash, hash hash)

# Bermigrasi dari Oracle ke Amazon RDS untuk MySQL atau Amazon Aurora dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToMySQL"></a>

Untuk meniru fungsi database Oracle dalam kode MySQL Anda yang dikonversi, gunakan paket ekstensi Oracle ke MySQL. AWS SCT Untuk informasi selengkapnya tentang paket ekstensi, lihat[Menggunakan paket ekstensi dengan AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.Oracle.ToMySQL.ConfigureTarget)
+ [Pengaturan konversi Oracle ke MySQL](#CHAP_Source.Oracle.ToMySQL.ConversionSettings)
+ [Pertimbangan migrasi](#CHAP_Source.Oracle.ToMySQL.MigrationConsiderations)
+ [Mengonversi pernyataan WITH di Oracle ke RDS untuk MySQL atau Amazon Aurora MySQL](#CHAP_Source.Oracle.ToMySQL.With)

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.Oracle.ToMySQL.ConfigureTarget"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ BUAT TABEL SEMENTARA DI \$1 . \$1
+ AWS\$1LAMBDA\$1AKSES
+ SISIPKAN, PERBARUI PADA AWS\$1ORACLE \$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1ORACLE \$1EXT\$1DATA. \$1

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka berikan izin INVOKE LAMBDA \$1.\$1 alih-alih \$1ACCESS. AWS\$1LAMBDA Untuk database MySQL versi 8.0 dan yang lebih tinggi, berikan izin. AWS\$1LAMBDA\$1ACCESS 

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name';
GRANT AWS_LAMBDA_ACCESS TO 'user_name';
GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka gunakan sebagai gantinya. `GRANT INVOKE LAMBDA ON *.* TO 'user_name'` `GRANT AWS_LAMBDA_ACCESS TO 'user_name'`

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## Pengaturan konversi Oracle ke MySQL
<a name="CHAP_Source.Oracle.ToMySQL.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Oracle ke MySQL, pilih Pengaturan AWS SCT di, **lalu pilih** Pengaturan konversi.** Dari daftar atas, pilih **Oracle**, dan kemudian pilih **Oracle - MySQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke MySQL.

Pengaturan konversi Oracle ke MySQL AWS SCT di menyertakan opsi untuk yang berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatasi bahwa database Oracle sumber Anda dapat menggunakan `ROWID` pseudocolumn tetapi MySQL tidak mendukung fungsionalitas serupa. AWS SCT dapat meniru `ROWID` pseudocolumn dalam kode yang dikonversi. Untuk melakukannya, pilih **Hasilkan sebagai identitas** untuk **Hasilkan ID baris?** .

  Jika kode Oracle sumber Anda tidak menggunakan `ROWID` pseudocolumn, pilih **Don't generate for Generate row** **ID?** Dalam hal ini, kode yang dikonversi bekerja lebih cepat.
+ Untuk bekerja dengan kode Oracle sumber Anda ketika menyertakan`TO_CHAR`,`TO_DATE`, dan `TO_NUMBER` fungsi dengan parameter yang MySQL tidak mendukung. Secara default, AWS SCT mengemulasi penggunaan parameter ini dalam kode yang dikonversi.

  Ketika kode Oracle sumber Anda hanya menyertakan parameter yang didukung PostgreSQL, Anda dapat menggunakan MySQL asli,, dan fungsi. `TO_CHAR` `TO_DATE` `TO_NUMBER` Dalam hal ini, kode yang dikonversi bekerja lebih cepat. Untuk memasukkan hanya parameter ini, pilih nilai berikut:
  + **Fungsi TO\$1CHAR () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1DATE () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1NUMBER () tidak menggunakan string pemformatan khusus Oracle**
+ Untuk menambahkan apakah database dan aplikasi Anda berjalan di zona waktu yang berbeda. Secara default, AWS SCT mengemulasi zona waktu dalam kode yang dikonversi. Namun, Anda tidak memerlukan emulasi ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Dalam hal ini, pilih **Zona waktu di sisi klien cocok dengan zona waktu di server**.

## Pertimbangan migrasi
<a name="CHAP_Source.Oracle.ToMySQL.MigrationConsiderations"></a>

Saat Anda mengonversi Oracle ke RDS untuk MySQL atau Aurora MySQL, untuk mengubah urutan pernyataan berjalan, Anda dapat menggunakan pernyataan dan label. `GOTO` Setiap pernyataan PL/SQL yang mengikuti `GOTO` pernyataan dilewati, dan pemrosesan berlanjut pada label. Anda dapat menggunakan `GOTO` pernyataan dan label di mana saja dalam blok prosedur, batch, atau pernyataan. Anda juga dapat melanjutkan pernyataan GOTO.

MySQL tidak menggunakan pernyataan. `GOTO` Ketika AWS SCT mengkonversi kode yang berisi `GOTO` pernyataan, itu mengubah pernyataan untuk menggunakan pernyataan `BEGIN…END` atau`LOOP…END LOOP`. 

Anda dapat menemukan contoh bagaimana AWS SCT mengkonversi `GOTO` pernyataan dalam tabel berikut.


| Pernyataan Oracle | Pernyataan MySQL | 
| --- | --- | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   GOTO label1;<br />   statement2;<br />   ....<br />   label1:<br />   Statement3;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br /> label1:<br /> BEGIN<br />   ....<br />   statement1;<br />   ....<br />   LEAVE label1;<br />   statement2;<br />   ....<br /> END;<br />   Statement3;<br />   ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   GOTO label1;<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   LOOP<br />    statement2;<br />    ....<br />    ITERATE label1;<br />    LEAVE label1;<br />   END LOOP; <br />    statement3;<br />    ....<br />    statement4;<br />    ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   BEGIN<br />    statement2;<br />    ....    <br />    statement3;<br />    ....<br />    statement4;<br />    ....    <br />   END; <br />END<br /></pre>  | 

## Mengonversi pernyataan WITH di Oracle ke RDS untuk MySQL atau Amazon Aurora MySQL
<a name="CHAP_Source.Oracle.ToMySQL.With"></a>

Anda menggunakan klausa WITH (subquery\$1factoring) di Oracle untuk menetapkan nama (query\$1name) ke blok subquery. Anda kemudian dapat mereferensikan blok subquery beberapa tempat dalam kueri dengan menentukan query\$1name. Jika blok subquery tidak berisi link atau parameter (lokal, prosedur, fungsi, paket), kemudian AWS SCT mengkonversi klausa ke tampilan atau tabel sementara. 

Keuntungan dari mengkonversi klausa ke tabel sementara adalah bahwa referensi berulang ke subquery mungkin lebih efisien. Efisiensi yang lebih besar adalah karena data mudah diambil dari tabel sementara daripada diminta oleh setiap referensi. Anda dapat meniru ini dengan menggunakan tampilan tambahan atau tabel sementara. Nama tampilan menggunakan format`<procedure_name>$<subselect_alias>`.

Anda dapat menemukan contoh dalam tabel berikut. 


| Pernyataan Oracle | Pernyataan MySQL | 
| --- | --- | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01<br />     (p_state IN NUMBER)<br />AS<br />  l_dept_id NUMBER := 1; <br />BEGIN<br />FOR cur IN  <br />           (WITH dept_empl(id, name, surname, <br />              lastname, state, dept_id)<br />              AS<br />                  (<br />                    SELECT id, name, surname,  <br />                     lastname, state, dept_id <br />                      FROM test_ora_pg.dept_employees<br />                     WHERE state = p_state AND <br />                       dept_id = l_dept_id)<br />            SELECT id,state   <br />              FROM dept_empl<br />            ORDER BY id)  LOOP<br />  NULL;<br />END LOOP;<br /></pre>  |  <pre>CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 1;<br />    DECLARE var$id VARCHAR (8000);<br />    DECLARE var$state VARCHAR (8000);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        ID, STATE<br />        FROM (SELECT<br />            ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID<br />            FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />            WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl<br />        ORDER BY ID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$id, var$state;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01<br />AS    <br />BEGIN<br /><br /> FOR cur IN  (<br />               WITH dept_empl AS<br />                   (<br />                        SELECT id, name, surname, <br />                         lastname, state, dept_id <br />                          FROM test_ora_pg.dept_employees<br />                         WHERE state = 1),<br />                    dept AS <br />                   (SELECT id deptid, parent_id, <br />                      name deptname<br />                      FROM test_ora_pg.department                <br />                   )<br />                SELECT dept_empl.*,dept.*          <br />                 FROM dept_empl, dept<br />                 WHERE dept_empl.dept_id = dept.deptid<br />              ) LOOP<br />              NULL;<br />            END LOOP;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br /> `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT id, name, surname, lastname, state, dept_id <br />   FROM test_ora_pg.dept_employees<br />  WHERE state = 1);<br />  <br />CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br /> `(deptid, parent_id,deptname)<br />AS<br />(SELECT id deptid, parent_id, name deptname<br />   FROM test_ora_pg.department);  <br /><br /><br />CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br />BEGIN<br />    DECLARE var$ID DOUBLE;<br />    DECLARE var$NAME VARCHAR (30);<br />    DECLARE var$SURNAME VARCHAR (30);<br />    DECLARE var$LASTNAME VARCHAR (30);<br />    DECLARE var$STATE DOUBLE;<br />    DECLARE var$DEPT_ID DOUBLE;<br />    DECLARE var$deptid DOUBLE;<br />    DECLARE var$PARENT_ID DOUBLE;<br />    DECLARE var$deptname VARCHAR (200);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        dept_empl.*, dept.*<br />        FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br />          ` AS dept_empl,<br />             TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br />          ` AS dept<br />        WHERE dept_empl.DEPT_ID = dept.DEPTID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />    FETCH cur INTO var$ID, var$NAME, var$SURNAME, <br />     var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, <br />     var$PARENT_ID, var$deptname;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /><br />call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br />  TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)<br />AS    <br />   l_dept_id NUMBER := 10;<br />BEGIN<br /> FOR cur IN  (<br />               WITH emp AS              <br />                    (SELECT id, name, surname, <br />                      lastname, state, dept_id <br />                       FROM test_ora_pg.dept_employees<br />                      WHERE dept_id > 10                 <br />                    ),<br />                    active_emp AS<br />                    (<br />                      SELECT id<br />                        FROM emp<br />                       WHERE emp.state = p_state <br />                    )<br />                    <br />                SELECT *          <br />                  FROM active_emp                 <br />              ) LOOP<br />         NULL;<br />  END LOOP;<br />  <br />END;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp<br />    `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT<br />       id, name, surname, lastname, <br />       state, dept_id<br />  FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />  WHERE DEPT_ID > 10);<br /><br /><br />CREATE PROCEDURE <br />   test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 10;<br />    DECLARE var$ID DOUBLE;<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT *<br />                             FROM (SELECT<br />                                      ID<br />                                     FROM <br />                             TEST_ORA_PG.<br />                              `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp<br />                                   WHERE emp.STATE = par_p_state) <br />                                    AS active_emp;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$ID;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 

# Migrasi dari Oracle Database ke Amazon RDS for Oracle AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Beberapa hal yang perlu dipertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+ AWS SCT dapat menambahkan objek direktori ke pohon objek. *Objek direktori* adalah struktur logis yang masing-masing mewakili direktori fisik pada sistem file server. Anda dapat menggunakan objek direktori dengan paket seperti DBMS\$1LOB, UTL\$1FILE, DBMS\$1FILE\$1TRANSFER, utilitas DATAPUMP, dan sebagainya.
+ AWS SCT mendukung konversi ruang meja Oracle ke Amazon RDS for Oracle DB instans. Oracle menyimpan data secara logis di tablespaces dan secara fisik dalam file data yang terkait dengan tablespace yang sesuai. Di Oracle, Anda dapat membuat tablespace dengan nama file data. Amazon RDS mendukung Oracle Managed Files (OMF) untuk file data, file log, dan file kontrol saja. AWS SCT membuat file data yang dibutuhkan selama konversi.
+ AWS SCT dapat mengonversi peran dan hak istimewa tingkat server. Mesin database Oracle menggunakan keamanan berbasis peran. Peran adalah kumpulan hak istimewa yang dapat Anda berikan atau cabut dari pengguna. Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya ke peran pengguna Amazon RDS for Oracle, termasuk hak istimewa pemfilteran dan kolom lanjutan.
+ AWS SCT mendukung konversi pekerjaan Oracle menjadi pekerjaan yang dapat berjalan di Amazon RDS for Oracle. Ada beberapa batasan untuk konversi, termasuk yang berikut:
  + Pekerjaan yang dapat dieksekusi tidak didukung.
  + Menjadwalkan pekerjaan yang menggunakan tipe data ANYDATA sebagai argumen tidak didukung.
+ Oracle Real Application Clusters (RAC) One Node adalah opsi untuk Oracle Database Enterprise Edition yang diperkenalkan dengan Oracle Database 11g Release 2. Amazon RDS for Oracle tidak mendukung fitur RAC. Untuk ketersediaan tinggi, gunakan Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ Oracle Spatial menyediakan skema dan fungsi SQL yang memfasilitasi penyimpanan, pengambilan, pembaruan, dan kueri kumpulan data spasial dalam basis data Oracle. Oracle Locator menyediakan kemampuan yang biasanya dibutuhkan untuk mendukung aplikasi berbasis layanan nirkabel dan internet serta solusi GIS berbasis mitra. Oracle Locator adalah subset terbatas dari Oracle Spatial.

  Untuk menggunakan fitur Oracle Spatial dan Oracle Locator, tambahkan opsi SPATIAL atau opsi LOCATOR (saling eksklusif) ke grup opsi instans DB Anda.

  Ada beberapa prasyarat untuk menggunakan Oracle Spatial dan Oracle Locator pada instans Amazon RDS for Oracle DB:
  + Instans harus menggunakan Oracle Enterprise Edition versi 12.1.0.2.v6 atau lebih tinggi, atau 11.2.0.4.v10 atau lebih tinggi.
  + Instans harus berada di dalam virtual private cloud (VPC).
  + Instance harus kelas instans DB yang dapat mendukung fitur Oracle. Misalnya, Oracle Spatial tidak didukung untuk kelas instans db.m1.small, db.t1.micro, db.t2.micro, atau db.t2.small DB. Untuk informasi selengkapnya, lihat [dukungan kelas instans DB untuk Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses).
  + Instans harus mengaktifkan opsi Auto Minor Version Upgrade. Amazon RDS memperbarui instans DB Anda ke Oracle PSU terbaru jika ada kerentanan keamanan dengan skor CVSS 9\$1 atau kerentanan keamanan lainnya yang diumumkan. Untuk informasi selengkapnya, silakan lihat 

    [Pengaturan untuk instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Jika instans DB Anda adalah versi 11.2.0.4.v10 atau lebih tinggi, Anda harus menginstal opsi XMLDB. Untuk informasi selengkapnya, silakan lihat

    [Oracle XML-DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html).
  + Anda harus memiliki lisensi Oracle Spatial dari Oracle. Untuk informasi selengkapnya, lihat [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) dalam dokumentasi Oracle.
+ Data Guard disertakan dengan Oracle Database Enterprise Edition. Untuk ketersediaan tinggi, gunakan fitur Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ AWS SCT mendukung konversi objek Oracle DBMS\$1SCHEDULER saat bermigrasi ke Amazon RDS for Oracle. Laporan AWS SCT penilaian menunjukkan apakah objek jadwal dapat dikonversi. Untuk informasi selengkapnya tentang penggunaan objek jadwal dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler)
+ Untuk konversi Oracle ke Amazon RDS for Oracle, DB Links didukung. Sebuah link database adalah objek skema dalam satu database yang memungkinkan Anda untuk mengakses objek pada database lain. Database lain tidak perlu menjadi database Oracle. Namun, untuk mengakses database non-Oracle Anda harus menggunakan Oracle Heterogenous Services.

  Setelah Anda membuat link database, Anda dapat menggunakan link dalam pernyataan SQL untuk merujuk ke tabel, tampilan, dan PL/SQL objek dalam database lainnya. Untuk menggunakan link database, tambahkan `@dblink` ke tabel, tampilan, atau nama PL/SQL objek. Anda dapat menanyakan tabel atau tampilan di database lain dengan pernyataan SELECT. Untuk informasi selengkapnya tentang menggunakan tautan database Oracle, lihat dokumentasi [Oracle](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Untuk informasi selengkapnya tentang menggunakan tautan database dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks)
+ Laporan AWS SCT penilaian menyediakan metrik server untuk konversi. Metrik tentang instans Oracle Anda ini mencakup yang berikut:
  + Komputasi dan kapasitas memori instans DB target.
  + Fitur Oracle yang tidak didukung seperti Real Application Clusters yang tidak didukung Amazon RDS.
  + Beban baca-tulis disk
  + Total throughput disk rata-rata
  + Informasi server seperti nama server, OS, nama host, dan set karakter.

## Hak istimewa untuk RDS untuk Oracle sebagai target
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Untuk bermigrasi ke Amazon RDS for Oracle, buat pengguna database istimewa. Anda dapat menggunakan contoh kode berikut.

```
CREATE USER user_name IDENTIFIED BY your_password;

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE TO user_name;
GRANT CREATE ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY ASSEMBLY TO user_name;
GRANT ALTER ANY RULE TO user_name;
GRANT SELECT ANY DICTIONARY TO user_name;
GRANT ALTER ANY DIMENSION TO user_name;
GRANT CREATE ANY DIMENSION TO user_name;
GRANT ALTER ANY TYPE TO user_name;
GRANT DROP ANY TRIGGER TO user_name;
GRANT CREATE ANY VIEW TO user_name;
GRANT ALTER ANY CUBE BUILD PROCESS TO user_name;
GRANT CREATE ANY CREDENTIAL TO user_name;
GRANT DROP ANY CUBE DIMENSION TO user_name;
GRANT DROP ANY ASSEMBLY TO user_name;
GRANT DROP ANY PROCEDURE TO user_name;
GRANT ALTER ANY PROCEDURE TO user_name;
GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name;
GRANT DROP ANY MEASURE FOLDER TO user_name;
GRANT CREATE ANY MEASURE FOLDER TO user_name;
GRANT DROP ANY CUBE TO user_name;
GRANT DROP ANY MINING MODEL TO user_name;
GRANT CREATE ANY MINING MODEL TO user_name;
GRANT DROP ANY EDITION TO user_name;
GRANT CREATE ANY EVALUATION CONTEXT TO user_name;
GRANT DROP ANY DIMENSION TO user_name;
GRANT ALTER ANY INDEXTYPE TO user_name;
GRANT DROP ANY TYPE TO user_name;
GRANT CREATE ANY PROCEDURE TO user_name;
GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name;
GRANT CREATE ANY CUBE TO user_name;
GRANT COMMENT ANY MINING MODEL TO user_name;
GRANT ALTER ANY MINING MODEL TO user_name;
GRANT DROP ANY SQL PROFILE TO user_name;
GRANT CREATE ANY JOB TO user_name;
GRANT DROP ANY EVALUATION CONTEXT TO user_name;
GRANT ALTER ANY EVALUATION CONTEXT TO user_name;
GRANT CREATE ANY INDEXTYPE TO user_name;
GRANT CREATE ANY OPERATOR TO user_name;
GRANT CREATE ANY TRIGGER TO user_name;
GRANT DROP ANY ROLE TO user_name;
GRANT DROP ANY SEQUENCE TO user_name;
GRANT DROP ANY CLUSTER TO user_name;
GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name;
GRANT ALTER ANY ASSEMBLY TO user_name;
GRANT CREATE ANY RULE SET TO user_name;
GRANT ALTER ANY OUTLINE TO user_name;
GRANT UNDER ANY TYPE TO user_name;
GRANT CREATE ANY TYPE TO user_name;
GRANT DROP ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY ROLE TO user_name;
GRANT DROP ANY VIEW TO user_name;
GRANT ALTER ANY INDEX TO user_name;
GRANT COMMENT ANY TABLE TO user_name;
GRANT CREATE ANY TABLE TO user_name;
GRANT CREATE USER TO user_name;
GRANT DROP ANY RULE SET TO user_name;
GRANT CREATE ANY CONTEXT TO user_name;
GRANT DROP ANY INDEXTYPE TO user_name;
GRANT ALTER ANY OPERATOR TO user_name;
GRANT CREATE ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY SEQUENCE TO user_name;
GRANT DROP ANY SYNONYM TO user_name;
GRANT CREATE ANY SYNONYM TO user_name;
GRANT DROP USER TO user_name;
GRANT ALTER ANY MEASURE FOLDER TO user_name;
GRANT ALTER ANY EDITION TO user_name;
GRANT DROP ANY RULE TO user_name;
GRANT CREATE ANY RULE TO user_name;
GRANT ALTER ANY RULE SET TO user_name;
GRANT CREATE ANY OUTLINE TO user_name;
GRANT UNDER ANY TABLE TO user_name;
GRANT UNDER ANY VIEW TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
GRANT ALTER ANY CLUSTER TO user_name;
GRANT CREATE ANY CLUSTER TO user_name;
GRANT ALTER ANY TABLE TO user_name;
GRANT CREATE ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY EDITION TO user_name;
GRANT CREATE ANY SQL PROFILE TO user_name;
GRANT ALTER ANY SQL PROFILE TO user_name;
GRANT DROP ANY OUTLINE TO user_name;
GRANT DROP ANY CONTEXT TO user_name;
GRANT DROP ANY OPERATOR TO user_name;
GRANT DROP ANY LIBRARY TO user_name;
GRANT ALTER ANY LIBRARY TO user_name;
GRANT CREATE ANY LIBRARY TO user_name;
GRANT ALTER ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY TRIGGER TO user_name;
GRANT CREATE ANY SEQUENCE TO user_name;
GRANT DROP ANY INDEX TO user_name;
GRANT CREATE ANY INDEX TO user_name;
GRANT DROP ANY TABLE TO user_name;
GRANT SELECT_CATALOG_ROLE TO user_name;
GRANT SELECT ANY SEQUENCE TO user_name;

-- Database Links
GRANT CREATE DATABASE LINK TO user_name;
GRANT CREATE PUBLIC DATABASE LINK TO user_name;
GRANT DROP PUBLIC DATABASE LINK TO user_name;


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name;

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO user_name;
GRANT DROP TABLESPACE TO user_name;

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to user_name;
grant aq_administrator_role to user_name;

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO user_name;

-- Roles
GRANT RESOURCE TO user_name;
GRANT CONNECT TO user_name;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

## Keterbatasan saat mengonversi Oracle ke Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Beberapa batasan yang harus Anda pertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+  Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya untuk peran pengguna Oracle RDS.
+ Amazon RDS for Oracle mendukung audit tradisional, audit halus menggunakan paket DBMS\$1FGA, dan Oracle Unified Audit.
+ Amazon RDS for Oracle tidak mendukung pengambilan data perubahan (CDC). Untuk melakukan CDC selama dan setelah migrasi database, gunakan AWS Database Migration Service.

# Menghubungkan ke Database PostgreSQL dengan AWS Schema Conversion Tool
<a name="CHAP_Source.PostgreSQL"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode database, dan kode aplikasi dari PostgreSQL ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

Untuk informasi selengkapnya, lihat bagian berikut:

**Topics**
+ [Hak istimewa untuk PostgreSQL sebagai database sumber](#CHAP_Source.PostgreSQL.Permissions)
+ [Menghubungkan ke PostgreSQL sebagai sumber](#CHAP_Source.PostgreSQL.Connecting)
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.PostgreSQL.ConfigureMySQL)

## Hak istimewa untuk PostgreSQL sebagai database sumber
<a name="CHAP_Source.PostgreSQL.Permissions"></a>

Hak istimewa yang diperlukan untuk PostgreSQL sebagai sumber adalah sebagai berikut: 
+ TERHUBUNG PADA DATABASE *<database\$1name>* 
+ PENGGUNAAN PADA SKEMA *<database\$1name>* 
+ PILIH PADA SEMUA TABEL DALAM SKEMA *<database\$1name>* 
+ PILIH PADA SEMUA URUTAN DALAM SKEMA *<database\$1name>* 

## Menghubungkan ke PostgreSQL sebagai sumber
<a name="CHAP_Source.PostgreSQL.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber PostgreSQL Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber PostgreSQL**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **PostgreSQL**, lalu pilih Berikutnya.**

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber PostgreSQL secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.PostgreSQL.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.PostgreSQL.ConfigureMySQL"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target saat Anda bermigrasi dari PostgreSQL adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ SISIPKAN, PERBARUI PADA AWS\$1POSTGRESQL \$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1POSTGRESQL \$1EXT\$1DATA. \$1
+ BUAT TABEL SEMENTARA DI AWS\$1POSTGRESQL \$1EXT\$1DATA. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_POSTGRESQL_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan pencatatan biner di instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengkonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

# Menghubungkan ke Database SAP dengan AWS Schema Conversion Tool
<a name="CHAP_Source.SAP"></a>

Anda dapat menggunakan AWS SCT untuk mengkonversi skema, objek kode database, dan kode aplikasi dari SAP (Sybase) Adaptive Server Enterprise (ASE) ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for MariaDB
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

Untuk informasi selengkapnya, lihat bagian berikut:

**Topics**
+ [Hak istimewa untuk SAP ASE sebagai database sumber](#CHAP_Source.SAP.Permissions)
+ [Menghubungkan ke SAP ASE (Sybase) sebagai sumber](#CHAP_Source.SAP.Connecting)
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.SAP.ConfigureMySQL)
+ [SAP ASE ke pengaturan konversi MySQL](#CHAP_Source.SAP.MySQLConversionSettings)
+ [Hak istimewa untuk PostgreSQL sebagai database target](#CHAP_Source.SAP.ConfigurePostgreSQL)
+ [SAP ASE ke pengaturan konversi PostgreSQL](#CHAP_Source.SAP.PostgreSQLConversionSettings)

## Hak istimewa untuk SAP ASE sebagai database sumber
<a name="CHAP_Source.SAP.Permissions"></a>

Untuk menggunakan database SAP ASE sebagai sumber, Anda membuat pengguna database dan memberikan izin. Untuk melakukan ini, ambil langkah-langkah berikut.

**Membuat dan mengkonfigurasi pengguna database**

1. Connect ke database sumber.

1. Buat pengguna database dengan perintah berikut. Berikan kata sandi untuk pengguna baru.

   ```
   USE master
   CREATE LOGIN min_privs WITH PASSWORD <password>
   sp_adduser min_privs
   grant select on dbo.spt_values to min_privs
   grant select on asehostname to min_privs
   ```

1. Untuk setiap database yang akan Anda migrasi, berikan hak istimewa berikut.

   ```
   USE <database_name>
   sp_adduser min_privs
   grant select on dbo.sysusers to min_privs
   grant select on dbo.sysobjects to min_privs
   grant select on dbo.sysindexes to min_privs
   grant select on dbo.syscolumns to min_privs
   grant select on dbo.sysreferences to min_privs
   grant select on dbo.syscomments to min_privs
   grant select on dbo.syspartitions to min_privs
   grant select on dbo.syspartitionkeys to min_privs
   grant select on dbo.sysconstraints to min_privs
   grant select on dbo.systypes to min_privs
   grant select on dbo.sysqueryplans to min_privs
   ```

## Menghubungkan ke SAP ASE (Sybase) sebagai sumber
<a name="CHAP_Source.SAP.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber SAP ASE Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber SAP ASE**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. Pilih **SAP ASE**, lalu pilih **Next**.

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber SAP ASE secara manual, gunakan instruksi berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SAP.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.SAP.ConfigureMySQL"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ SISIPKAN, PERBARUI PADA AWS\$1SAPASE \$1EXT. \$1
+ BUAT TABEL SEMENTARA DI AWS\$1SAPASE \$1EXT. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SAPASE_EXT.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## SAP ASE ke pengaturan konversi MySQL
<a name="CHAP_Source.SAP.MySQLConversionSettings"></a>

**Untuk mengedit pengaturan konversi SAP ASE ke MySQL, pilih Pengaturan, lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih SAP ASE, lalu pilih **SAP ASE** - **MySQL atau SAP ASE - **Amazon Aurora** (kompatibel dengan MySQL**). AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi SAP ASE ke PostgreSQL.

Pengaturan konversi SAP ASE ke MySQL AWS SCT di menyertakan opsi untuk yang berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk menggunakan nama yang tepat dari objek database sumber dalam kode yang dikonversi.

  Secara default, AWS SCT mengkonversi nama-nama objek database, variabel, dan parameter ke huruf kecil. Untuk menyimpan kasus asli untuk nama-nama ini, pilih **Perlakukan nama objek database sumber sebagai peka huruf besar/kecil**. Pilih opsi ini jika Anda menggunakan nama objek case-sensitive di server database SAP ASE sumber Anda.

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.SAP.ConfigurePostgreSQL"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap basis data PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

## SAP ASE ke pengaturan konversi PostgreSQL
<a name="CHAP_Source.SAP.PostgreSQLConversionSettings"></a>

**Untuk mengedit pengaturan konversi SAP ASE ke PostgreSQL, pilih Pengaturan, lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih SAP ASE, lalu pilih **SAP ASE** - **PostgreSQL atau SAP ASE **- Amazon** Aurora (PostgreSQL** kompatibel). AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi SAP ASE ke PostgreSQL.

Pengaturan AWS SCT konversi SAP ASE ke PostgreSQL termasuk opsi untuk yang berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk menentukan template yang akan digunakan untuk nama skema dalam kode yang dikonversi. Untuk **templat pembuatan nama Skema**, pilih salah satu opsi berikut:
  + ****<source\$1db>— Menggunakan nama database SAP ASE sebagai nama skema di PostgreSQL.
  + ****<source\$1schema>— Menggunakan nama skema SAP ASE sebagai nama skema di PostgreSQL.
  + **\$1** <source\$1db><schema>— Menggunakan kombinasi database SAP ASE dan nama skema sebagai nama skema di PostgreSQL.
+ Untuk menggunakan nama yang tepat dari objek database sumber dalam kode yang dikonversi.

  Secara default, AWS SCT mengkonversi nama-nama objek database, variabel, dan parameter ke huruf kecil. Untuk menyimpan kasus asli untuk nama-nama ini, pilih **Perlakukan nama objek database sumber sebagai peka huruf besar/kecil**. Pilih opsi ini jika Anda menggunakan nama objek case-sensitive di server database SAP ASE sumber Anda.

  Untuk operasi case-sensitive, AWS SCT dapat menghindari konversi nama objek database ke huruf kecil. Untuk melakukannya, pilih **Hindari casting ke huruf kecil untuk operasi peka huruf** kecil.
+ Untuk memungkinkan penggunaan indeks dengan nama yang sama di tabel yang berbeda di SAP ASE.

  Di PostgreSQL, semua nama indeks yang Anda gunakan dalam skema harus unik. Untuk memastikan bahwa AWS SCT menghasilkan nama unik untuk semua indeks Anda, pilih **Hasilkan nama unik untuk indeks**.

# Connect Microsoft SQL Server dengan AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode database, dan kode aplikasi dari SQL Server ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon RDS for SQL Server
+ Amazon RDS for MariaDB

**catatan**  
AWS SCT tidak mendukung penggunaan Amazon RDS untuk server SQL sebagai sumber.

Anda dapat menggunakan AWS SCT untuk membuat laporan penilaian untuk migrasi skema, objek kode database, dan kode aplikasi dari SQL Server ke Babelfish untuk Aurora PostgreSQL, seperti yang dijelaskan berikut.

**Topics**
+ [Hak istimewa untuk Microsoft SQL Server sebagai sumber](#CHAP_Source.SQLServer.Permissions)
+ [Menggunakan Otentikasi Windows saat menggunakan Microsoft SQL Server sebagai sumber](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [Menghubungkan ke SQL Server sebagai sumber](#CHAP_Source.SQLServer.Connecting)
+ [Mengonversi SQL Server ke MySQL](CHAP_Source.SQLServer.ToMySQL.md)
+ [Migrasi dari SQL Server ke PostgreSQL dengan AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [Migrasi dari SQL Server ke Amazon RDS for SQL Server dengan AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Hak istimewa untuk Microsoft SQL Server sebagai sumber
<a name="CHAP_Source.SQLServer.Permissions"></a>

Hak istimewa yang diperlukan untuk Microsoft SQL Server sebagai sumber adalah sebagai berikut: 
+ LIHAT DEFINISI
+ LIHAT STATUS BASIS DATA

Hak `VIEW DEFINITION` istimewa memungkinkan pengguna yang memiliki akses publik untuk melihat definisi objek. AWS SCT menggunakan hak `VIEW DATABASE STATE` istimewa untuk memeriksa fitur edisi SQL Server Enterprise.

Ulangi hibah untuk setiap database yang skema Anda konversi.

Selain itu, berikan hak istimewa berikut pada `master` database:
+ LIHAT STATUS SERVER
+ LIHAT DEFINISI APA PUN

AWS SCT menggunakan hak `VIEW SERVER STATE` istimewa untuk mengumpulkan pengaturan dan konfigurasi server. Pastikan Anda memberikan `VIEW ANY DEFINITION` hak istimewa untuk melihat titik akhir.

Untuk membaca informasi tentang Microsoft Analysis Services, jalankan perintah berikut pada `master` database.

```
EXEC master..sp_addsrvrolemember @loginame = N'<user_name>', @rolename = N'sysadmin'
```

Pada contoh sebelumnya, ganti `<user_name>` placeholder dengan nama pengguna yang Anda berikan dengan hak istimewa sebelumnya.

Untuk membaca informasi tentang SQL Server Agent, tambahkan pengguna Anda ke `SQLAgentUser` peran. Jalankan perintah berikut pada `msdb` database.

```
EXEC sp_addrolemember <SQLAgentRole>, <user_name>;
```

Pada contoh sebelumnya, ganti `<SQLAgentRole>` placeholder dengan nama peran SQL Server Agent. Kemudian ganti `<user_name>` placeholder dengan nama pengguna yang Anda berikan dengan hak istimewa sebelumnya. Untuk informasi selengkapnya, lihat [Menambahkan pengguna ke peran SQLAgent Pengguna](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser) di *Panduan Pengguna Amazon RDS*.

Untuk mendeteksi pengiriman log, berikan hak `SELECT on dbo.log_shipping_primary_databases` istimewa pada `msdb` database.

Untuk menggunakan pendekatan notifikasi replikasi DDL, berikan `RECEIVE ON <schema_name>.<queue_name>` hak istimewa pada basis data sumber Anda. Dalam contoh ini, ganti `<schema_name>` placeholder dengan nama skema database Anda. Kemudian, ganti `<queue_name>` placeholder dengan nama tabel antrian.

## Menggunakan Otentikasi Windows saat menggunakan Microsoft SQL Server sebagai sumber
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

Jika aplikasi Anda berjalan pada intranet berbasis Windows, Anda mungkin dapat menggunakan Windows Authentication untuk akses database. Windows Authentication menggunakan identitas Windows saat ini yang ditetapkan pada thread sistem operasi untuk mengakses database SQL Server. Anda kemudian dapat memetakan identitas Windows ke database SQL Server dan izin. Untuk terhubung ke SQL Server menggunakan Windows Authentication, Anda harus menentukan identitas Windows yang digunakan aplikasi Anda. Anda juga harus memberikan akses identitas Windows ke database SQL Server.

SQL Server memiliki dua mode akses: mode Otentikasi Windows dan Mode Campuran. Mode Otentikasi Windows memungkinkan Otentikasi Windows dan menonaktifkan Otentikasi SQL Server. Mode Campuran memungkinkan Otentikasi Windows dan Otentikasi SQL Server. Otentikasi Windows selalu tersedia dan tidak dapat dinonaktifkan. Untuk informasi selengkapnya tentang Otentikasi Windows, lihat dokumentasi Microsoft Windows. 

Contoh yang mungkin untuk membuat pengguna di TEST\$1DB ditampilkan sebagai berikut.

```
USE [TEST_DB]
CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser]
GRANT VIEW DEFINITION TO [TestUser]
GRANT VIEW DATABASE STATE TO [TestUser]
```

### Menggunakan Otentikasi Windows dengan koneksi JDBC
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

Driver JDBC tidak mendukung Otentikasi Windows ketika driver digunakan pada sistem operasi non-Windows. Kredensyal Windows Authentication, seperti nama pengguna dan kata sandi, tidak ditentukan secara otomatis saat menghubungkan ke SQL Server dari sistem operasi non-Windows. Dalam kasus seperti itu, aplikasi harus menggunakan SQL Server Authentication sebagai gantinya.

Dalam string koneksi JDBC, parameter `integratedSecurity` harus ditentukan untuk terhubung menggunakan Windows Authentication. Driver JDBC mendukung Otentikasi Windows Terpadu pada sistem operasi Windows melalui parameter string `integratedSecurity` koneksi.

Untuk menggunakan otentikasi terintegrasi

1. Instal driver JDBC.

1. Salin `sqljdbc_auth.dll` file ke direktori di jalur sistem Windows di komputer tempat driver JDBC diinstal.

   `sqljdbc_auth.dll`File diinstal di lokasi berikut:

   *< *direktori instalasi>*\$1 sqljdbc\$1< *versi>*\$1 < bahasa >\$1 auth\$1*

Ketika Anda mencoba untuk membuat koneksi ke database SQL Server menggunakan Windows Authentication, Anda mungkin mendapatkan kesalahan ini: Driver ini tidak dikonfigurasi untuk otentikasi terintegrasi. Masalah ini dapat diselesaikan dengan melakukan tindakan berikut:
+ Deklarasikan dua variabel yang mengarah ke jalur terinstal JDBC Anda:

   `variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu`(di mana sqljdbc4.jar Anda ada);

  `variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86`(jika Anda menjalankan OS 32bit) atau `D\lib\JDBC4.1\enu\auth\x64` (jika Anda menjalankan OS 64bit). Di sinilah Anda `sqljdbc_auth.dll` berada. 
+ Salin `sqljdbc_auth.dll` ke folder tempat Anda JDK/JRE berjalan. Anda dapat menyalin ke folder lib, folder bin, dan sebagainya. Sebagai contoh, Anda dapat menyalin ke folder berikut.

  ```
  [JDK_INSTALLED_PATH]\bin;
  [JDK_INSTALLED_PATH]\jre\bin;
  [JDK_INSTALLED_PATH]\jre\lib;
  [JDK_INSTALLED_PATH]\lib;
  ```
+ Pastikan bahwa di folder perpustakaan JDBC Anda, Anda hanya memiliki SQLJDBC4 file.jar. Hapus file sqljdbc\$1.jar lainnya dari folder itu (atau salin ke folder lain). Jika Anda menambahkan driver sebagai bagian dari program Anda, pastikan bahwa Anda hanya menambahkan SQLJDBC4 .jar sebagai driver untuk digunakan.
+ Salin sqljdbc\$1auth.dll file dalam folder dengan aplikasi Anda.

**catatan**  
Jika Anda menjalankan Java Virtual Machine (JVM) 32-bit, gunakan file sqljdbc\$1auth.dll di folder x86, bahkan jika sistem operasinya adalah versi x64. Jika Anda menjalankan JVM 64-bit pada prosesor x64, gunakan file sqljdbc\$1auth.dll di folder x64.

**Saat Anda terhubung ke database SQL Server, Anda dapat memilih Otentikasi **Windows atau Otentikasi** **SQL Server untuk opsi Otentikasi**.**

## Menghubungkan ke SQL Server sebagai sumber
<a name="CHAP_Source.SQLServer.Connecting"></a>

Gunakan prosedur berikut untuk menyambung ke database sumber Microsoft SQL Server Anda dengan file. AWS Schema Conversion Tool

**Untuk menyambung ke database sumber Microsoft SQL Server**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**.

1. Pilih **Microsoft SQL Server**, lalu pilih **Berikutnya**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Microsoft SQL Server secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Mengonversi SQL Server ke MySQL
<a name="CHAP_Source.SQLServer.ToMySQL"></a>

Untuk meniru fungsi database Microsoft SQL Server dalam kode MySQL yang dikonversi, gunakan paket ekstensi SQL Server ke MySQL di. AWS SCT Untuk informasi selengkapnya tentang paket ekstensi, lihat[Menggunakan paket ekstensi dengan AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget)
+ [SQL Server ke pengaturan konversi MySQL](#CHAP_Source.SQLServer.ToMySQL.ConversionSettings)
+ [Pertimbangan migrasi](#CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations)

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.SQLServer.ToMySQL.ConfigureTarget"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ SISIPKAN, PERBARUI PADA AWS\$1SQLSERVER \$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1SQLSERVER \$1EXT\$1DATA. \$1
+ BUAT TABEL SEMENTARA DI AWS\$1SQLSERVER \$1EXT\$1DATA. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka jalankan perintah berikut. Untuk database MySQL versi 8.0 dan yang lebih tinggi, perintah ini tidak digunakan lagi.

```
GRANT SELECT ON mysql.proc TO 'user_name';
```

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## SQL Server ke pengaturan konversi MySQL
<a name="CHAP_Source.SQLServer.ToMySQL.ConversionSettings"></a>

**Untuk mengedit SQL Server ke pengaturan konversi MySQL, pilih Pengaturan, AWS SCT lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih **SQL Server**, lalu pilih **SQL Server - MySQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi SQL Server ke MySQL.

Pengaturan AWS SCT konversi SQL Server ke MySQL termasuk opsi untuk berikut ini:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk memungkinkan database SQL Server sumber Anda untuk menyimpan output `EXEC` dalam tabel. AWS SCT membuat tabel sementara dan prosedur tambahan untuk meniru fitur ini. Untuk menggunakan emulasi ini, pilih **Buat rutinitas tambahan untuk menangani kumpulan data terbuka**.

## Pertimbangan migrasi
<a name="CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations"></a>

Pertimbangkan hal-hal ini saat memigrasikan skema SQL Server ke MySQL:
+ MySQL tidak mendukung pernyataan tersebut. `MERGE` Namun, AWS SCT dapat meniru `MERGE` pernyataan selama konversi dengan menggunakan `INSERT ON DUPLICATE KEY` klausa dan pernyataan. `UPDATE FROM and DELETE FROM`

  Untuk menggunakan emulasi yang benar`INSERT ON DUPLICATE KEY`, pastikan bahwa kendala unik atau kunci utama ada pada database MySQL target.
+ Anda dapat menggunakan `GOTO` pernyataan dan label untuk mengubah urutan pernyataan dijalankan. Setiap pernyataan Transact-SQL yang mengikuti `GOTO` pernyataan dilewati, dan pemrosesan berlanjut pada label. Anda dapat menggunakan `GOTO` pernyataan dan label di mana saja dalam blok prosedur, batch, atau pernyataan. Anda juga dapat membuat `GOTO` pernyataan sarang.

  MySQL tidak menggunakan pernyataan. `GOTO` Ketika AWS SCT mengkonversi kode yang berisi `GOTO` pernyataan, itu mengubah pernyataan untuk menggunakan pernyataan `BEGIN…END` atau`LOOP…END LOOP`. Anda dapat menemukan contoh bagaimana AWS SCT mengkonversi `GOTO` pernyataan dalam tabel berikut.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToMySQL.html)
+ MySQL tidak mendukung fungsi bernilai tabel multistatement. AWS SCT mensimulasikan fungsi bernilai tabel selama konversi dengan membuat tabel sementara dan menulis ulang pernyataan untuk menggunakan tabel sementara ini.

# Migrasi dari SQL Server ke PostgreSQL dengan AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer.ToPostgreSQL"></a>

Anda dapat menggunakan SQL Server untuk paket ekstensi PostgreSQL di. AWS SCT Paket ekstensi ini mengemulasi fungsi database SQL Server dalam kode PostgreSQL yang dikonversi. Gunakan paket ekstensi SQL Server ke PostgreSQL untuk meniru SQL Server Agent dan SQL Server Database Mail. Untuk informasi selengkapnya tentang paket ekstensi, lihat[Menggunakan paket ekstensi dengan AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Hak istimewa untuk PostgreSQL sebagai database target](#CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL)
+ [SQL Server ke pengaturan konversi PostgreSQL](#CHAP_Source.SQLServer.ToPostgreSQL.ConversionSettings)
+ [Mengkonversi partisi SQL Server ke PostgreSQL versi 10 partisi](#CHAP_Source.SQLServer.ToPostgreSQL.PG10Partitions)
+ [Pertimbangan migrasi](#CHAP_Source.SQLServer.ToPostgreSQL.MigrationConsiderations)
+ [Menggunakan paket AWS SCT ekstensi untuk meniru SQL Server Agent di PostgreSQL](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.md)
+ [Menggunakan paket AWS SCT ekstensi untuk meniru SQL Server Database Mail di PostgreSQL](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.md)

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap database PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

## SQL Server ke pengaturan konversi PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ConversionSettings"></a>

**Untuk mengedit SQL Server ke pengaturan konversi PostgreSQL, pilih Pengaturan, lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih **SQL Server, lalu pilih SQL Server** - **PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi SQL Server ke PostgreSQL.

Pengaturan AWS SCT konversi SQL Server ke PostgreSQL di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk memungkinkan untuk menggunakan indeks dengan nama yang sama dalam tabel yang berbeda di SQL Server.

  Di PostgreSQL, semua nama indeks yang Anda gunakan dalam skema, harus unik. Untuk memastikan bahwa AWS SCT menghasilkan nama unik untuk semua indeks Anda, pilih **Hasilkan nama unik untuk indeks**.
+ Untuk mengkonversi prosedur SQL Server ke fungsi PostgreSQL.

  PostgreSQL versi 10 dan sebelumnya tidak mendukung prosedur. Untuk pelanggan yang tidak terbiasa menggunakan prosedur di PostgreSQL AWS SCT , dapat mengonversi prosedur ke fungsi. Untuk melakukannya, pilih **Konversi prosedur ke fungsi**.
+ Untuk meniru output `EXEC` dalam tabel.

  Database SQL Server sumber Anda dapat menyimpan output `EXEC` dalam tabel. AWS SCT membuat tabel sementara dan prosedur tambahan untuk meniru fitur ini. Untuk menggunakan emulasi ini, pilih **Buat rutinitas tambahan untuk menangani kumpulan data terbuka**.
+ Untuk menentukan template yang akan digunakan untuk nama skema dalam kode yang dikonversi. Untuk **templat pembuatan nama Skema**, pilih salah satu opsi berikut:
  + ****<source\$1db>— Menggunakan nama database SQL Server sebagai nama skema di PostgreSQL.
  + ****<source\$1schema>— Menggunakan nama skema SQL Server sebagai nama skema di PostgreSQL.
  + **\$1** <source\$1db><schema>— Menggunakan kombinasi database SQL Server dan nama skema sebagai nama skema di PostgreSQL.
+ Untuk menyimpan huruf huruf nama objek sumber Anda.

  Untuk menghindari konversi nama objek ke huruf kecil, pilih **Hindari casting ke huruf kecil untuk operasi peka huruf kecil**. Opsi ini hanya berlaku ketika Anda mengaktifkan opsi sensitivitas kasus di basis data target Anda.
+ Untuk menyimpan nama parameter dari database sumber Anda.

  Untuk menambahkan tanda kutip ganda ke nama parameter dalam kode yang dikonversi, pilih **Simpan nama parameter asli**.

## Mengkonversi partisi SQL Server ke PostgreSQL versi 10 partisi
<a name="CHAP_Source.SQLServer.ToPostgreSQL.PG10Partitions"></a>

Saat Anda mengonversi database Microsoft SQL Server ke Amazon Aurora PostgreSQL Compatible Edition (Aurora PostgreSQL) atau Amazon Relational Database Service untuk PostgreSQL (Amazon RDS for PostgreSQL), perhatikan hal-hal berikut.

Di SQL Server, Anda membuat partisi dengan fungsi partisi. Saat mengonversi dari tabel porsi SQL Server ke tabel partisi PostgreSQL versi 10, perhatikan beberapa masalah potensial:
+ SQL Server memungkinkan Anda untuk partisi tabel menggunakan kolom tanpa kendala NOT NULL. Dalam hal ini, semua nilai NULL pergi ke partisi paling kiri. PostgreSQL tidak mendukung nilai NULL untuk partisi RANGE.
+ SQL Server memungkinkan Anda membuat kunci primer dan unik untuk tabel yang dipartisi. Untuk PostgreSQL, Anda membuat kunci primer atau unik untuk setiap partisi secara langsung. Dengan demikian, kendala PRIMARY atau UNIQUE KEY harus dihapus dari tabel induknya saat bermigrasi ke PostgreSQL. Nama kunci yang dihasilkan mengambil format`<original_key_name>_<partition_number>`.
+ SQL Server memungkinkan Anda membuat batasan kunci asing dari dan ke tabel yang dipartisi. PostgreSQL tidak mendukung kunci asing yang mereferensikan tabel yang dipartisi. Juga, PostgreSQL tidak mendukung referensi kunci asing dari tabel yang dipartisi ke tabel lain.
+ SQL Server memungkinkan Anda membuat indeks untuk tabel yang dipartisi. Untuk PostgreSQL, indeks harus dibuat untuk setiap partisi secara langsung. Dengan demikian, indeks harus dihapus dari tabel induknya saat bermigrasi ke PostgreSQL. Nama indeks yang dihasilkan mengambil format`<original_index_name>_<partition_number>`.
+  PostgreSQL tidak mendukung indeks yang dipartisi.

## Pertimbangan migrasi
<a name="CHAP_Source.SQLServer.ToPostgreSQL.MigrationConsiderations"></a>

Beberapa hal yang perlu dipertimbangkan saat memigrasikan skema SQL Server ke PostgreSQL: 
+ Dalam PostgreSQL, semua nama objek dalam skema harus unik, termasuk indeks. Nama indeks harus unik dalam skema tabel dasar. Di SQL Server, nama indeks bisa sama untuk tabel yang berbeda.

  Untuk memastikan keunikan nama indeks, AWS SCT memberi Anda opsi untuk menghasilkan nama indeks unik jika nama indeks Anda tidak unik. Untuk melakukan ini, pilih opsi **Menghasilkan nama indeks unik** di properti proyek. Secara default, opsi ini diaktifkan. Jika opsi ini diaktifkan, nama indeks unik dibuat menggunakan format IX\$1TABLE\$1NAME\$1INDEX\$1NAME. Jika opsi ini dinonaktifkan, nama indeks tidak diubah.
+ Pernyataan GOTO dan label dapat digunakan untuk mengubah urutan pernyataan dijalankan. Setiap pernyataan Transact-SQL yang mengikuti pernyataan GOTO dilewati dan pemrosesan berlanjut pada label. Pernyataan dan label GOTO dapat digunakan di mana saja dalam prosedur, batch, atau blok pernyataan. Pernyataan GOTO juga dapat disarangkan.

  PostgreSQL tidak menggunakan pernyataan GOTO. Ketika AWS SCT mengkonversi kode yang berisi pernyataan GOTO, itu mengubah pernyataan untuk menggunakan pernyataan BEGIN... END atau LOOP... END LOOP. Anda dapat menemukan contoh bagaimana AWS SCT mengkonversi pernyataan GOTO dalam tabel berikut.  
**Pernyataan SQL Server GOTO dan pernyataan PostgreSQL dikonversi**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToPostgreSQL.html)
+ PostgreSQL tidak mendukung pernyataan MERGE. AWS SCT mengemulasi perilaku pernyataan MERGE dengan cara berikut:
  + Dengan INSERT ON CONFLICT konstruksi.
  + Dengan menggunakan pernyataan UPDATE FROM DHTML, seperti MERGE tanpa klausa WHEN NOT MATCHED.
  + Dengan menggunakan CURSOR, seperti dengan klausa MERGE dengan DELETE atau dengan menggunakan pernyataan kondisi MERGE ON yang kompleks.
+ AWS SCT dapat menambahkan pemicu database ke pohon objek saat Amazon RDS adalah targetnya.
+ AWS SCT dapat menambahkan pemicu tingkat server ke pohon objek saat Amazon RDS adalah targetnya.
+ SQL Server secara otomatis membuat dan mengelola `deleted` dan `inserted` tabel. Anda dapat menggunakan tabel sementara, memori-residen ini untuk menguji efek modifikasi data tertentu dan untuk mengatur kondisi untuk tindakan pemicu DML. AWS SCT dapat mengonversi penggunaan tabel ini di dalam pernyataan pemicu DML.
+ AWS SCT dapat menambahkan server tertaut ke pohon objek saat Amazon RDS adalah targetnya.
+ Saat bermigrasi dari Microsoft SQL Server ke PostgreSQL, fungsi SUSER\$1SNAME bawaan dikonversi sebagai berikut:
  + SUSER\$1SNAME — Mengembalikan nama login yang terkait dengan nomor identifikasi keamanan (SID).
  + SUSER\$1SNAME (<server\$1user\$1sid>) - Tidak didukung.
  + SUSER\$1SNAME () CURRENT\$1USER — Mengembalikan nama pengguna dari konteks eksekusi saat ini.
  + SUSER\$1SNAME (NULL) - Mengembalikan NULL.
+ Mengonversi fungsi bernilai tabel didukung. Fungsi bernilai tabel mengembalikan tabel dan dapat menggantikan tabel dalam kueri.
+ PATINDEX mengembalikan posisi awal kemunculan pertama pola dalam ekspresi tertentu pada semua tipe data teks dan karakter yang valid. Ia mengembalikan nol jika pola tidak ditemukan. <pattern character><expression character varying>Saat mengonversi dari SQL Server ke Amazon RDS for AWS SCT PostgreSQL, ganti kode aplikasi yang menggunakan PATINDEX dengan aws\$1sqlserver\$1ext.patindex (,).
+ Di SQL Server, tipe tabel yang ditentukan pengguna adalah tipe yang mewakili definisi struktur tabel. Anda menggunakan tipe tabel yang ditentukan pengguna untuk mendeklarasikan parameter nilai tabel untuk prosedur atau fungsi yang disimpan. Anda juga dapat menggunakan tipe tabel yang ditentukan pengguna untuk mendeklarasikan variabel tabel yang ingin Anda gunakan dalam batch atau dalam badan prosedur atau fungsi yang disimpan. AWS SCT meniru jenis ini di PostgreSQL dengan membuat tabel sementara.

Saat mengonversi dari SQL Server ke PostgreSQL, AWS SCT mengubah objek sistem SQL Server menjadi objek yang dapat dikenali di PostgreSQL. Tabel berikut menunjukkan bagaimana objek sistem dikonversi. 

 


| Kasus penggunaan MS SQL Server | Substitusi PostgreSQL | 
| --- | --- | 
| SYS.SKEMA | AWS\$1SQLSERVER\$1EXT.SYS\$1SKEMA | 
| SYS.TABLES | AWS\$1SQLSERVER\$1EXT.SYS\$1TABLES | 
| SYS.PANDANGAN | AWS\$1SQLSERVER\$1EXT.SYS\$1DILIHAT | 
| SYS.ALL\$1VIEWS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1VIEWS | 
| SYS.JENIS | AWS\$1SQLSERVER\$1EXT.SYS\$1TYPES | 
| SYS.COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1COLUMNS | 
| SYS.ALL\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1COLUMNS | 
| SYS.FOREIGN\$1KEYS | AWS\$1SQLSERVER\$1EXT.SYS\$1FOREIGN\$1KEYS | 
| SYS.SYSFOREIGNKEYS | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSFOREIGNKEYS | 
| SYS.FOREIGN\$1KEY\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1FOREIGN\$1KEY\$1COLUMNS | 
| SYS.KEY\$1KENDALA | AWS\$1SQLSERVER\$1EXT.SYS\$1KEY\$1KENDALA | 
| SYS.IDENTITY\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1IDENTITY\$1COLUMNS | 
| SYS.PROSEDUR | AWS\$1SQLSERVER\$1EXT.SYS\$1PROSEDUR | 
| SYS.INDEXES | AWS\$1SQLSERVER\$1EXT.SYS\$1INDEXES | 
| SYS.SYSINDEX | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSINDEXES | 
| SYS.OBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1OBJECTS | 
| SYS.ALL\$1OBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1OBJECTS | 
| SYS.SYSOBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSOBJECTS | 
| SYS.SQL\$1MODULES | AWS\$1SQLSERVER\$1EXT.SYS\$1SQL\$1MODULES | 
| SYS.DATABASE | AWS\$1SQLSERVER\$1EXT.SYS\$1DATABASE | 
| INFORMATION\$1SCHEMA.SCHEMATA  | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1SCHEMATA | 
| INFORMATION\$1SCHEMA.VIEWS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1VIEWS | 
| INFORMATION\$1SCHEMA.TABLES | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1TABLES | 
| INFORMATION\$1SCHEMA.COLUMNS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1COLUMNS | 
| INFORMATION\$1SCHEMA.CHECK\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CHECK\$1CONSTRAINTS | 
| INFORMATION\$1SCHEMA.REFERENTIAL\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1REFERENTIAL\$1CONSTRAINTS | 
| INFORMATION\$1SCHEMA.TABLE\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1TABLE\$1KENDALA | 
| INFORMATION\$1SCHEMA.KEY\$1COLUMN\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1KEY\$1COLUMN\$1USAGE | 
| INFORMATION\$1SCHEMA.CONSTRAINT\$1TABLE\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CONSTRAINT\$1TABLE\$1USAGE  | 
| INFORMATION\$1SCHEMA.CONSTRAINT\$1COLUMN\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CONSTRAINT\$1COLUMN\$1USAGE  | 
| INFORMATION\$1SCHEMA.ROUTINES | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1RUTINES | 
| SYS.SYSPROCESSES | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSPROCESSS | 
| sys.system\$1objects | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSTEM\$1OBJECTS | 

# Menggunakan paket AWS SCT ekstensi untuk meniru SQL Server Agent di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent"></a>

SQL Server Agent adalah layanan Microsoft Windows yang menjalankan pekerjaan SQL Server. SQL Server Agent menjalankan pekerjaan sesuai jadwal, sebagai respons terhadap acara tertentu, atau sesuai permintaan. Untuk informasi selengkapnya tentang Agen SQL Server, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent?view=sql-server-ver15).

PostgreSQL tidak memiliki setara untuk SQL Server Agent. Untuk meniru fitur SQL Server Agent, AWS SCT buat paket ekstensi. Paket ekstensi ini menggunakan AWS Lambda dan Amazon CloudWatch. AWS Lambda mengimplementasikan antarmuka yang Anda gunakan untuk mengelola jadwal dan menjalankan pekerjaan. Amazon CloudWatch mempertahankan aturan jadwal.

AWS Lambda dan Amazon CloudWatch menggunakan parameter JSON untuk berinteraksi. Parameter JSON ini memiliki struktur sebagai berikut.

```
{
    "mode": mode,
    "parameters": {
        list of parameters
    },
    "callback": procedure name
}
```

Dalam contoh sebelumnya, *`mode`* adalah jenis tugas dan `list of parameters` merupakan seperangkat parameter yang bergantung pada jenis tugas. Juga, `procedure name` adalah nama prosedur yang berjalan setelah tugas selesai.

AWS SCT menggunakan satu fungsi Lambda untuk mengontrol dan menjalankan pekerjaan. CloudWatch Aturan memulai menjalankan pekerjaan dan memberikan informasi yang diperlukan untuk memulai pekerjaan. Ketika CloudWatch aturan dipicu, itu memulai fungsi Lambda menggunakan parameter dari aturan.

Untuk membuat pekerjaan sederhana yang memanggil prosedur, gunakan format berikut.

```
{
    "mode": "run_job",
    "parameters": {
        "vendor": "mysql",
        "cmd": "lambda_db.nightly_job"
    }
}
```

Untuk membuat pekerjaan dengan beberapa langkah, gunakan format berikut.

```
{
    "mode": "run_job",
    "parameters": {
        "job_name": "Job1",
        "enabled": "true",
        "start_step_id": 1,
        "notify_level_email": [0|1|2|3],
        "notify_email": email,
        "delete_level": [0|1|2|3],
        "job_callback": "ProcCallBackJob(job_name, code, message)",
        "step_callback": "ProcCallBackStep(job_name, step_id, code, message)"
    },
    "steps": [
        {
            "id":1,
            "cmd": "ProcStep1",
            "cmdexec_success_code": 0,
            "on_success_action": [|2|3|4],
            "on_success_step_id": 1,
            "on_fail_action": 0,
            "on_fail_step_id": 0,
            "retry_attempts": number,
            "retry_interval": number
        },
        {
            "id":2,
            "cmd": "ProcStep2",
            "cmdexec_success_code": 0,
            "on_success_action": [1|2|3|4],
            "on_success_step_id": 0,
            "on_fail_action": 0,
            "on_fail_step_id": 0,
            "retry_attempts": number,
            "retry_interval": number
        },
        ...
]
}
```

Untuk meniru perilaku Agen SQL Server di PostgreSQL, paket AWS SCT ekstensi juga membuat tabel dan prosedur berikut.

## Tabel yang meniru SQL Server Agent di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Tables"></a>

Untuk meniru SQL Server Agent, paket ekstensi menggunakan tabel berikut:

**sysjobs**  
Menyimpan informasi tentang pekerjaan.

**sysjobsteps**  
Menyimpan informasi tentang langkah-langkah pekerjaan.

**sysschedules**  
Menyimpan informasi tentang jadwal pekerjaan.

**jadwal sysjob**  
Menyimpan informasi jadwal untuk pekerjaan individu. 

**sysjobhistory**  
Menyimpan informasi tentang menjalankan pekerjaan terjadwal.

## Prosedur yang meniru SQL Server Agent di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Procedures"></a>

Untuk meniru SQL Server Agent, paket ekstensi menggunakan prosedur berikut:

**sp\$1add\$1pekerjaan**  
Menambahkan pekerjaan baru.

**sp\$1add\$1jobstep**  
Menambahkan langkah ke pekerjaan.

**sp\$1add\$1schedule**  
Membuat aturan jadwal baru di Amazon CloudWatch. Anda dapat menggunakan jadwal ini dengan sejumlah pekerjaan.

**sp\$1attach\$1schedule**  
Menetapkan jadwal untuk pekerjaan yang dipilih.

**sp\$1add\$1jobschedule**  
Membuat aturan jadwal untuk pekerjaan di Amazon CloudWatch dan menetapkan target untuk aturan ini.

**sp\$1update\$1job**  
Memperbarui atribut pekerjaan yang dibuat sebelumnya.

**sp\$1update\$1jobstep**  
Memperbarui atribut langkah dalam pekerjaan.

**sp\$1update\$1schedule**  
Memperbarui atribut aturan jadwal di Amazon CloudWatch.

**sp\$1update\$1jobschedule**  
Memperbarui atribut jadwal untuk pekerjaan yang ditentukan.

**sp\$1delete\$1job**  
Menghapus pekerjaan.

**sp\$1delete\$1jobstep**  
Menghapus langkah pekerjaan dari pekerjaan.

**sp\$1delete\$1schedule**  
Menghapus jadwal.

**sp\$1delete\$1jobschedule**  
Menghapus aturan jadwal untuk pekerjaan yang ditentukan dari Amazon CloudWatch.

**sp\$1detach\$1schedule**  
Menghapus hubungan antara jadwal dan pekerjaan.

**get\$1jobs, update\$1job**  
Prosedur internal yang berinteraksi dengan AWS Elastic Beanstalk.

**sp\$1verify\$1job\$1date, sp\$1verify\$1job\$1time, sp\$1verify\$1job, sp\$1verify\$1jobstep, sp\$1verify\$1job\$1identifiers, sp\$1verify\$1schedule\$1identifiers**  
Prosedur internal yang memeriksa pengaturan.

## Sintaks untuk prosedur yang meniru SQL Server Agent di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Syntax"></a>

`aws_sqlserver_ext.sp_add_job`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_add_job` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-job-transact-sql?view=sql-server-ver15). 

```
par_job_name varchar,
par_enabled smallint = 1,
par_description varchar = NULL::character varying,
par_start_step_id integer = 1,
par_category_name varchar = NULL::character varying,
par_category_id integer = NULL::integer,
par_owner_login_name varchar = NULL::character varying,
par_notify_level_eventlog integer = 2,
par_notify_level_email integer = 0,
par_notify_level_netsend integer = 0,
par_notify_level_page integer = 0,
par_notify_email_operator_name varchar = NULL::character varying,
par_notify_netsend_operator_name varchar = NULL::character varying,
par_notify_page_operator_name varchar = NULL::character varying,
par_delete_level integer = 0,
inout par_job_id integer = NULL::integer,
par_originating_server varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sp_add_jobstep`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_add_jobstep` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-jobstep-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_step_id integer = NULL::integer,
par_step_name varchar = NULL::character varying,
par_subsystem varchar = 'TSQL'::bpchar,
par_command text = NULL::text,
par_additional_parameters text = NULL::text,
par_cmdexec_success_code integer = 0,
par_on_success_action smallint = 1,
par_on_success_step_id integer = 0,
par_on_fail_action smallint = 2,
par_on_fail_step_id integer = 0,
par_server varchar = NULL::character varying,
par_database_name varchar = NULL::character varying,
par_database_user_name varchar = NULL::character varying,
par_retry_attempts integer = 0,
par_retry_interval integer = 0,
par_os_run_priority integer = 0,
par_output_file_name varchar = NULL::character varying,
par_flags integer = 0,
par_proxy_id integer = NULL::integer,
par_proxy_name varchar = NULL::character varying,
inout par_step_uid char = NULL::bpchar,
out returncode integer
```

`aws_sqlserver_ext.sp_add_schedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_add_schedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_name varchar,
par_enabled smallint = 1,
par_freq_type integer = 0,
par_freq_interval integer = 0,
par_freq_subday_type integer = 0,
par_freq_subday_interval integer = 0,
par_freq_relative_interval integer = 0,
par_freq_recurrence_factor integer = 0,
par_active_start_date integer = NULL::integer,
par_active_end_date integer = 99991231,
par_active_start_time integer = 0,
par_active_end_time integer = 235959,
par_owner_login_name varchar = NULL::character varying,
*inout par_schedule_uid char = NULL::bpchar,*
inout par_schedule_id integer = NULL::integer,
par_originating_server varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sp_attach_schedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_attach_schedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-attach-schedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_automatic_post smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sp_add_jobschedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_add_jobschedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_name varchar = NULL::character varying,
par_enabled smallint = 1,
par_freq_type integer = 1,
par_freq_interval integer = 0,
par_freq_subday_type integer = 0,
par_freq_subday_interval integer = 0,
par_freq_relative_interval integer = 0,
par_freq_recurrence_factor integer = 0,
par_active_start_date integer = NULL::integer,
par_active_end_date integer = 99991231,
par_active_start_time integer = 0,
par_active_end_time integer = 235959,
inout par_schedule_id integer = NULL::integer,
par_automatic_post smallint = 1,
inout par_schedule_uid char = NULL::bpchar,
out returncode integer
```

`aws_sqlserver_ext.sp_delete_job`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_delete_job` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-job-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_originating_server varchar = NULL::character varying,
par_delete_history smallint = 1,
par_delete_unused_schedule smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sp_delete_jobstep`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_delete_jobstep` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-jobsteplog-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_step_id integer = NULL::integer,
out returncode integer
```

`aws_sqlserver_ext.sp_delete_jobschedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_delete_jobschedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_name varchar = NULL::character varying,
par_keep_schedule integer = 0,
par_automatic_post smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sp_delete_schedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_delete_schedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_force_delete smallint = 0,
par_automatic_post smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sp_detach_schedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_detach_schedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-detach-schedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_delete_unused_schedule smallint = 0,
par_automatic_post smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sp_update_job`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_update_job` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-job-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_description varchar = NULL::character varying
par_start_step_id integer = NULL::integer
par_category_name varchar = NULL::character varying
par_owner_login_name varchar = NULL::character varying
par_notify_level_eventlog integer = NULL::integer
par_notify_level_email integer = NULL::integer
par_notify_level_netsend integer = NULL::integer
par_notify_level_page integer = NULL::integer
par_notify_email_operator_name varchar = NULL::character varying
par_notify_netsend_operator_name varchar = NULL::character varying
par_notify_page_operator_name varchar = NULL::character varying
par_delete_level integer = NULL::integer
par_automatic_post smallint = 1
out returncode integer
```

`aws_sqlserver_ext.sp_update_jobschedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_update_jobschedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_freq_type integer = NULL::integer
par_freq_interval integer = NULL::integer
par_freq_subday_type integer = NULL::integer
par_freq_subday_interval integer = NULL::integer
par_freq_relative_interval integer = NULL::integer
par_freq_recurrence_factor integer = NULL::integer
par_active_start_date integer = NULL::integer
par_active_end_date integer = NULL::integer
par_active_start_time integer = NULL::integer
                par_active_end_time integer = NULL::integer
par_automatic_post smallint = 1
out returncode integer
```

`aws_sqlserver_ext.sp_update_jobstep`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_update_jobstep` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-jobstep-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_step_id integer = NULL::integer
par_step_name varchar = NULL::character varying
par_subsystem varchar = NULL::character varying
par_command text = NULL::text
par_additional_parameters text = NULL::text
par_cmdexec_success_code integer = NULL::integer
par_on_success_action smallint = NULL::smallint
par_on_success_step_id integer = NULL::integer
par_on_fail_action smallint = NULL::smallint
par_on_fail_step_id integer = NULL::integer
par_server varchar = NULL::character varying
par_database_name varchar = NULL::character varying
par_database_user_name varchar = NULL::character varying
par_retry_attempts integer = NULL::integer
par_retry_interval integer = NULL::integer
par_os_run_priority integer = NULL::integer
par_output_file_name varchar = NULL::character varying
par_flags integer = NULL::integer
par_proxy_id integer = NULL::integer
par_proxy_name varchar = NULL::character varying
out returncode integer
```

`aws_sqlserver_ext.sp_update_schedule`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_update_schedule` prosedur. Untuk informasi selengkapnya tentang prosedur Agen SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_id integer = NULL::integer
par_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_freq_type integer = NULL::integer
par_freq_interval integer = NULL::integer
par_freq_subday_type integer = NULL::integer
par_freq_subday_interval integer = NULL::integer
par_freq_relative_interval integer = NULL::integer
par_freq_recurrence_factor integer = NULL::integer
par_active_start_date integer = NULL::integer
par_active_end_date integer = NULL::integer
par_active_start_time integer = NULL::integer
par_active_end_time integer = NULL::integer
par_owner_login_name varchar = NULL::character varying
par_automatic_post smallint = 1
out returncode integer
```

## Contoh untuk menggunakan prosedur yang meniru SQL Server Agent di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Examples"></a>

Untuk menambahkan pekerjaan baru, gunakan `aws_sqlserver_ext.sp_add_job` prosedur seperti yang ditunjukkan berikut.

```
SELECT * FROM aws_sqlserver_ext.sp_add_job (
    par_job_name := 'test_job',
    par_enabled := 1::smallint,
    par_start_step_id := 1::integer,
    par_category_name := '[Uncategorized (Local)]',
    par_owner_login_name := 'sa');
```

Untuk menambahkan langkah pekerjaan baru, gunakan `aws_sqlserver_ext.sp_add_jobstep` prosedur seperti yang ditunjukkan berikut.

```
SELECT * FROM aws_sqlserver_ext.sp_add_jobstep (
    par_job_name := 'test_job',
    par_step_id := 1::smallint,
    par_step_name := 'test_job_step1',
    par_subsystem := 'TSQL',
    par_command := 'EXECUTE [dbo].[PROC_TEST_JOB_STEP1];',
    par_server := NULL,
    par_database_name := 'GOLD_TEST_SS');
```

Untuk menambahkan jadwal sederhana, gunakan `aws_sqlserver_ext.sp_add_schedule` prosedur seperti yang ditunjukkan berikut.

```
SELECT * FROM aws_sqlserver_ext.sp_add_schedule(
    par_schedule_name := 'RunOnce',
    par_freq_type := 1,
    par_active_start_time := 233000);
```

Untuk mengatur jadwal pekerjaan, gunakan `aws_sqlserver_ext.sp_attach_schedule` prosedur seperti yang ditunjukkan berikut.

```
SELECT * FROM aws_sqlserver_ext.sp_attach_schedule (
    par_job_name := 'test_job',
    par_schedule_name := 'NightlyJobs');
```

Untuk membuat jadwal pekerjaan, gunakan `aws_sqlserver_ext.sp_add_jobschedule` prosedur seperti yang ditunjukkan berikut.

```
SELECT * FROM aws_sqlserver_ext.sp_add_jobschedule (
    par_job_name := 'test_job2',
    par_name := 'test_schedule2',
    par_enabled := 1::smallint,
    par_freq_type := 4,
    par_freq_interval := 1,
    par_freq_subday_type := 4,
    par_freq_subday_interval := 1,
    par_freq_relative_interval := 0,
    par_freq_recurrence_factor := 0,
    par_active_start_date := 20100801,
    par_active_end_date := 99991231,
    par_active_start_time := 0,
    par_active_end_time := 0);
```

## Gunakan contoh kasus untuk meniru Agen SQL Server di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.UseCases"></a>

Jika kode database sumber Anda menggunakan SQL Server Agent untuk menjalankan pekerjaan, Anda dapat menggunakan paket ekstensi SQL Server ke PostgreSQL untuk mengonversi kode ini ke PostgreSQL. AWS SCT Paket ekstensi menggunakan AWS Lambda fungsi untuk meniru perilaku SQL Server Agent.

Anda dapat membuat AWS Lambda fungsi baru atau mendaftarkan fungsi yang ada.

**Untuk membuat AWS Lambda fungsi baru**

1. Di AWS SCT, di pohon database target, buka menu konteks (klik kanan), pilih **Terapkan paket ekstensi untuk**, lalu pilih **PostgreSQL**. 

   Wizard paket ekstensi muncul. 

1. Pada tab **layanan emulasi Agen SQL Server**, lakukan hal berikut: 
   + Pilih **Buat AWS Lambda fungsi**.
   + Untuk **login Database**, masukkan nama pengguna database target.
   + Untuk **kata sandi Database**, masukkan kata sandi untuk nama pengguna yang Anda masukkan pada langkah sebelumnya.
   + Untuk **folder pustaka Python, masukkan path ke folder pustaka** Python Anda.
   + Pilih **Create AWS Lambda Function**, lalu pilih **Next**.

**Untuk mendaftarkan AWS Lambda fungsi yang Anda gunakan sebelumnya**
+ Jalankan skrip berikut pada database target Anda.

  ```
  SELECT
      FROM aws_sqlserver_ext.set_service_setting(
          p_service := 'JOB', 
          p_setting := 'LAMBDA_ARN', 
          p_value := ARN)
  ```

  Dalam contoh sebelumnya, *`ARN`* adalah Amazon Resource Name (ARN) dari fungsi yang digunakan. AWS Lambda 

Contoh berikut menciptakan tugas sederhana yang terdiri dari satu langkah. Setiap lima menit, tugas ini menjalankan `job_example` fungsi yang dibuat sebelumnya. Fungsi ini menyisipkan catatan ke dalam `job_example_table` tabel.

**Untuk membuat tugas sederhana ini**

1. Buat pekerjaan menggunakan `aws_sqlserver_ext.sp_add_job` fungsi seperti yang ditunjukkan berikut.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_job (
           par_job_name := 'test_simple_job');
   ```

1. Buat langkah pekerjaan menggunakan `aws_sqlserver_ext.sp_add_jobstep` fungsi seperti yang ditunjukkan berikut.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_jobstep (
           par_job_name := 'test_simple_job', 
           par_step_name := 'test_simple_job_step1', 
           par_command := 'PERFORM job_simple_example;');
   ```

   Langkah pekerjaan menentukan apa fungsi yang dilakukan.

1. Buat penjadwal untuk pekerjaan menggunakan `aws_sqlserver_ext.sp_add_jobschedule` fungsi seperti yang ditunjukkan berikut.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_jobschedule (
           par_job_name := 'test_simple_job', 
           par_name := 'test_schedule', 
           par_freq_type := 4, /* Daily */
           par_freq_interval := 1, /* frequency_interval is unused */
           par_freq_subday_type := 4, /* Minutes */
           par_freq_subday_interval := 5 /* 5 minutes */);
   ```

   Langkah pekerjaan menentukan apa fungsi yang dilakukan.

Untuk menghapus pekerjaan ini, gunakan `aws_sqlserver_ext.sp_delete_job` fungsi seperti yang ditunjukkan berikut.

```
PERFORM aws_sqlserver_ext.sp_delete_job(
    par_job_name := 'PeriodicJob1'::character varying,
    par_delete_history := 1::smallint,
    par_delete_unused_schedule := 1::smallint);
```

# Menggunakan paket AWS SCT ekstensi untuk meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail"></a>

Anda dapat menggunakan SQL Server Database Mail untuk mengirim pesan email ke pengguna dari SQL Server Database Engine atau Azure SQL Managed Instance. Pesan email ini dapat berisi hasil kueri atau menyertakan file dari sumber daya apa pun di jaringan Anda. Untuk informasi selengkapnya tentang SQL Server Database Mail, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail?view=sql-server-ver15).

PostgreSQL tidak memiliki padanan untuk SQL Server Database Mail. Untuk meniru fitur SQL Server Database Mail, AWS SCT buat paket ekstensi. Paket ekstensi ini menggunakan AWS Lambda dan Amazon Simple Email Service (Amazon SES). AWS Lambda menyediakan pengguna dengan antarmuka untuk berinteraksi dengan layanan pengiriman email Amazon SES. Untuk mengatur interaksi ini, tambahkan Amazon Resource Name (ARN) dari fungsi Lambda Anda. 

Untuk akun email baru, gunakan perintah berikut.

```
do
$$
begin
PERFORM sysmail_add_account_sp (
    par_account_name :='your_account_name',
    par_email_address := 'your_account_email',
    par_display_name := 'your_account_display_name',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'ARN'
);
end;
$$ language plpgsql;
```

Untuk menambahkan ARN fungsi Lambda Anda ke akun email yang ada, gunakan perintah berikut.

```
do
$$
begin
PERFORM sysmail_update_account_sp (
    par_account_name :='existind_account_name',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'ARN'
);
end;
$$ language plpgsql;
```

Dalam contoh sebelumnya, *`ARN`* adalah ARN dari fungsi Lambda Anda.

Untuk meniru perilaku SQL Server Database Mail di PostgreSQL, paket AWS SCT ekstensi menggunakan tabel, tampilan, dan prosedur berikut.

## Tabel yang meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Tables"></a>

Untuk meniru SQL Server Database Mail, paket ekstensi menggunakan tabel berikut:

**sysmail\$1akun**  
Menyimpan informasi tentang akun email.

**sysmail\$1profil**  
Menyimpan informasi tentang profil pengguna.

**sysmail\$1server**  
Menyimpan informasi tentang server email.

**sysmail\$1mailitems**  
Menyimpan daftar pesan email.

**lampiran sysmail\$1**  
Berisi satu baris untuk setiap lampiran email.

**sysmail\$1log**  
Menyimpan informasi layanan tentang mengirim pesan email.

**sysmail\$1profileakun**  
Menyimpan informasi tentang profil pengguna dan akun email.

## Tampilan yang meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Views"></a>

Untuk meniru SQL Server Database Mail, AWS SCT membuat tampilan berikut dalam database PostgreSQL untuk memastikan kompatibilitas. Paket ekstensi tidak menggunakannya, tetapi kode yang dikonversi dapat menanyakan tampilan ini.

**sysmail\$1allitems**  
Termasuk daftar semua email.

**sysmail\$1faileditems**  
Termasuk daftar email yang tidak dapat dikirim.

**sysmail\$1sentitems**  
Termasuk daftar email yang dikirim.

**sysmail\$1unsentitems**  
Termasuk daftar email yang belum dikirim.

**sysmail\$1mailattachments**  
Termasuk daftar file terlampir.

## Prosedur yang meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Procedures"></a>

Untuk meniru SQL Server Database Mail, paket ekstensi menggunakan prosedur berikut:

**sp\$1send\$1dbmail**  
Mengirim email ke penerima yang ditentukan.

**sysmail\$1add\$1profile\$1sp**  
Membuat profil pengguna baru.

**sysmail\$1add\$1account\$1sp**  
Membuat akun email baru yang menyimpan informasi seperti kredensi Simple Mail Transfer Protocol (SMTP), dan sebagainya.

**sysmail\$1add\$1profileaccount\$1sp**  
Menambahkan akun email ke profil pengguna yang ditentukan.

**sysmail\$1update\$1profile\$1sp**  
Mengubah atribut profil pengguna seperti deskripsi, nama, dan sebagainya.

**sysmail\$1update\$1account\$1sp**  
Mengubah informasi di akun email yang ada.

**sysmail\$1update\$1profileaccount\$1sp**  
Memperbarui informasi akun email di profil pengguna yang ditentukan.

**sysmail\$1delete\$1profileaccount\$1sp**  
Menghapus akun email dari profil pengguna yang ditentukan.

**sysmail\$1delete\$1account\$1sp**  
Menghapus akun email.

**sysmail\$1delete\$1profile\$1sp**  
Menghapus profil pengguna.

**sysmail\$1delete\$1mailitems\$1sp**  
Menghapus email dari tabel internal.

**sysmail\$1help\$1profile\$1sp**  
Menampilkan informasi tentang profil pengguna.

**sysmail\$1help\$1account\$1sp**  
Menampilkan informasi tentang akun email.

**sysmail\$1help\$1profileaccount\$1sp**  
Menampilkan informasi tentang akun email yang terkait dengan profil pengguna.

**sysmail\$1dbmail\$1json**  
Prosedur internal yang menghasilkan permintaan JSON untuk AWS Lambda fungsi.

**sysmail\$1verify\$1profile\$1sp, sysmail\$1verify\$1account\$1sp, sysmail\$1verify\$1addressparams\$1sp**  
Prosedur internal yang memeriksa pengaturan.

**sp\$1get\$1dbmail, sp\$1set\$1dbmail, sysmail\$1dbmail\$1xml**  
Prosedur internal yang tidak digunakan lagi.

## Sintaks untuk prosedur yang meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Syntax"></a>

`aws_sqlserver_ext.sp_send_dbmail`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sp_send_dbmail` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-ver15).

```
par_profile_name varchar = NULL::character varying,
par_recipients text = NULL::text,
par_copy_recipients text = NULL::text,
par_blind_copy_recipients text = NULL::text,
par_subject varchar = NULL::character varying,
par_body text = NULL::text,
par_body_format varchar = NULL::character varying,
par_importance varchar = 'NORMAL'::character varying,
par_sensitivity varchar = 'NORMAL'::character varying,
par_file_attachments text = NULL::text,
par_query text = NULL::text,
par_execute_query_database varchar = NULL::character varying,
par_attach_query_result_as_file smallint = 0,
par_query_attachment_filename varchar = NULL::character varying,
par_query_result_header smallint = 1,
par_query_result_width integer = 256,
par_query_result_separator VARCHAR = ' '::character varying,
par_exclude_query_output smallint = 0,
par_append_query_error smallint = 0,
par_query_no_truncate smallint = 0,
par_query_result_no_padding smallint = 0,
out par_mailitem_id integer,
par_from_address text = NULL::text,
par_reply_to text = NULL::text,
out returncode integer
```

`aws_sqlserver_ext.sysmail_delete_mailitems_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_delete_mailitems_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-mailitems-sp-transact-sql?view=sql-server-ver15).

```
par_sent_before timestamp = NULL::timestamp without time zone,
par_sent_status varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_add_profile_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_add_profile_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_name varchar,
par_description varchar = NULL::character varying,
out par_profile_id integer,
out returncode integer
```

`aws_sqlserver_ext.sysmail_add_account_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_add_account_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_name varchar
par_email_address varchar
par_display_name varchar = NULL::character varying
par_replyto_address varchar = NULL::character varying
par_description varchar = NULL::character varying
par_mailserver_name varchar = NULL::character varying
par_mailserver_type varchar = 'SMTP'::bpchar
par_port integer = 25
par_username varchar = NULL::character varying
par_password varchar = NULL::character varying
par_use_default_credentials smallint = 0
par_enable_ssl smallint = 0
out par_account_id integer
out returncode integer
```

`aws_sqlserver_ext.sysmail_add_profileaccount_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_add_profileaccount_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_sequence_number integer = NULL::integer,
out returncode integer
```

`aws_sqlserver_ext.sysmail_help_profile_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_help_profile_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_update_profile_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_update_profile_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_description varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_delete_profile_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_delete_profile_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_force_delete smallint = 1,
out returncode integer
```

`aws_sqlserver_ext.sysmail_help_account_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_help_account_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_update_account_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_update_account_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_email_address varchar = NULL::character varying,
par_display_name varchar = NULL::character varying,
par_replyto_address varchar = NULL::character varying,
par_description varchar = NULL::character varying,
par_mailserver_name varchar = NULL::character varying,
par_mailserver_type varchar = NULL::character varying,
par_port integer = NULL::integer,
par_username varchar = NULL::character varying,
par_password varchar = NULL::character varying,
par_use_default_credentials smallint = NULL::smallint,
par_enable_ssl smallint = NULL::smallint,
par_timeout integer = NULL::integer,
par_no_credential_change smallint = NULL::smallint,
out returncode integer
```

`aws_sqlserver_ext.sysmail_delete_account_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_delete_account_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_help_profileaccount_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_help_profileaccount_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

`aws_sqlserver_ext.sysmail_update_profileaccount_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_update_profileaccount_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_sequence_number integer = NULL::integer,
out returncode integer
```

`aws_sqlserver_ext.sysmail_delete_profileaccount_sp`Prosedur dalam paket ekstensi mengemulasi `msdb.dbo.sysmail_delete_profileaccount_sp` prosedur. Untuk informasi selengkapnya tentang prosedur Mail Database SQL Server sumber, lihat [dokumentasi teknis Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

## Contoh untuk menggunakan prosedur yang meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Examples"></a>

Untuk mengirim email, gunakan `aws_sqlserver_ext.sp_send_dbmail` prosedur seperti yang ditunjukkan berikut.

```
PERFORM sp_send_dbmail (
    par_profile_name := 'Administrator',
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Automated Success Message',
    par_body := 'The stored procedure finished'
);
```

Contoh berikut menunjukkan cara mengirim email dengan hasil query.

```
PERFORM sp_send_dbmail (
    par_profile_name := 'Administrator',
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Account with id = 1',
    par_query := 'SELECT COUNT(*)FROM Account WHERE id = 1'
);
```

Contoh berikut menunjukkan cara mengirim email dengan kode HTML.

```
DECLARE var_tableHTML TEXT;
SET var_tableHTML := CONCAT(
    '<H1>Work Order Report</H1>',
    '<table border="1">',
    '<tr><th>Work Order ID</th><th>Product ID</th>',
    '<th>Name</th><th>Order Qty</th><th>Due Date</th>',
    '<th>Expected Revenue</th></tr>',
    '</table>'
);
PERFORM sp_send_dbmail (
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Work Order List',
    par_body := var_tableHTML,
    par_body_format := 'HTML'
);
```

Untuk menghapus email, gunakan `aws_sqlserver_ext.sysmail_delete_mailitems_sp` prosedur seperti yang ditunjukkan berikut.

```
DECLARE var_GETDATE datetime;
SET var_GETDATE = NOW();
PERFORM sysmail_delete_mailitems_sp (
    par_sent_before := var_GETDATE
);
```

Contoh berikut menunjukkan cara menghapus email tertua.

```
PERFORM sysmail_delete_mailitems_sp (
    par_sent_before := '31.12.2015'
);
```

Contoh berikut menunjukkan cara menghapus semua email yang tidak dapat dikirim.

```
PERFORM sysmail_delete_mailitems_sp (
    par_sent_status := 'failed'
);
```

Untuk membuat profil pengguna baru, gunakan `aws_sqlserver_ext.sysmail_add_profile_sp` prosedur seperti yang ditunjukkan berikut.

```
PERFORM sysmail_add_profile_sp (
    profile_name := 'Administrator',
    par_description := 'administrative mail'
);
```

Contoh berikut menunjukkan cara membuat profil baru dan menyimpan pengenal profil unik dalam variabel.

```
DECLARE var_profileId INT;
SELECT par_profile_id
    FROM sysmail_add_profile_sp (
        profile_name := 'Administrator',
        par_description := ' Profile used for administrative mail.')
    INTO var_profileId;
    
SELECT var_profileId;
```

Untuk membuat akun email baru, gunakan `aws_sqlserver_ext.sysmail_add_account_sp` prosedur seperti yang ditunjukkan berikut.

```
PERFORM sysmail_add_account_sp (
    par_account_name :='Audit Account',
    par_email_address := 'dba@rusgl.info',
    par_display_name := 'Test Automated Mailer',
    par_description := 'Account for administrative e-mail.',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'arn:aws:lambda:us-west-2:555555555555:function:pg_v3'
);
```

Untuk menambahkan akun email ke profil pengguna, gunakan `aws_sqlserver_ext.sysmail_add_profileaccount_sp` prosedur seperti yang ditunjukkan berikut.

```
PERFORM sysmail_add_profileaccount_sp (
    par_account_name := 'Administrator',
    par_account_name := 'Audit Account',
    par_sequence_number := 1
);
```

## Gunakan contoh kasus untuk meniru SQL Server Database Mail di PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.UseCases"></a>

Jika kode database sumber Anda menggunakan SQL Server Database Mail untuk mengirim email, Anda dapat menggunakan paket AWS SCT ekstensi untuk mengonversi kode ini ke PostgreSQL.

**Untuk mengirim email dari database PostgreSQL Anda**

1. Buat dan konfigurasikan AWS Lambda fungsi Anda.

1. Terapkan paket AWS SCT ekstensi.

1. Buat profil pengguna menggunakan `sysmail_add_profile_sp` fungsi seperti yang ditunjukkan berikut.

1. Buat akun email menggunakan `sysmail_add_account_sp` fungsi seperti yang ditunjukkan berikut.

1. Tambahkan akun email ini ke profil pengguna Anda menggunakan `sysmail_add_profileaccount_sp` fungsi seperti yang ditunjukkan berikut.

   ```
   CREATE OR REPLACE FUNCTION aws_sqlserver_ext.
   proc_dbmail_settings_msdb()
   RETURNS void
   AS
   $BODY$
   BEGIN
   PERFORM aws_sqlserver_ext.sysmail_add_profile_sp(
       par_profile_name := 'Administrator',
       par_description := 'administrative mail'
   );
   PERFORM aws_sqlserver_ext.sysmail_add_account_sp(
       par_account_name := 'Audit Account',
       par_description := 'Account for administrative e-mail.',
       par_email_address := 'dba@rusgl.info',
       par_display_name := 'Test Automated Mailer',
       par_mailserver_type := 'AWSLAMBDA'
       par_mailserver_name := 'your_ARN'
   );
   PERFORM aws_sqlserver_ext.sysmail_add_profileaccount_sp(
       par_profile_name := 'Administrator',
       par_account_name := 'Audit Account',
       par_sequence_number := 1
   );
   END;
   $BODY$
   LANGUAGE plpgsql;
   ```

1. Kirim email menggunakan `sp_send_dbmail` fungsi seperti yang ditunjukkan berikut.

   ```
   CREATE OR REPLACE FUNCTION aws_sqlserver_ext.
   proc_dbmail_send_msdb()
   RETURNS void
   AS
   $BODY$
   BEGIN
   PERFORM aws_sqlserver_ext.sp_send_dbmail(
       par_profile_name := 'Administrator',
       par_recipients := 'hello@rusgl.info',
       par_body := 'The stored procedure finished',
       par_subject := 'Automated Success Message'
   );
   END;
   $BODY$
   LANGUAGE plpgsql;
   ```

Untuk melihat informasi tentang semua profil pengguna, gunakan `sysmail_help_profile_sp` prosedur seperti yang ditunjukkan berikut.

```
SELECT FROM aws_sqlserver_ext.sysmail_help_profile_sp();
```

Contoh berikut menampilkan informasi tentang profil pengguna tertentu.

```
select from aws_sqlserver_ext.sysmail_help_profile_sp(par_profile_id := 1);
select from aws_sqlserver_ext.sysmail_help_profile_sp(par_profile_name := 'Administrator');
```

Untuk melihat informasi tentang semua akun email, gunakan `sysmail_help_account_sp` prosedur seperti yang ditunjukkan berikut.

```
select from aws_sqlserver_ext.sysmail_help_account_sp();
```

Contoh berikut menampilkan informasi tentang akun email tertentu.

```
select from aws_sqlserver_ext.sysmail_help_account_sp(par_account_id := 1);
select from aws_sqlserver_ext.sysmail_help_account_sp(par_account_name := 'Audit Account');
```

Untuk melihat informasi tentang semua akun email yang terkait dengan profil pengguna, gunakan `sysmail_help_profileaccount_sp` prosedur seperti yang ditunjukkan berikut.

```
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp();
```

Contoh berikut memfilter catatan berdasarkan pengenal, nama profil, atau nama akun.

```
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_id := 1);
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_id := 1, par_account_id := 1);
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_name := 'Administrator');
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_account_name := 'Audit Account');
```

Untuk mengubah nama atau deskripsi profil pengguna, gunakan `sysmail_update_profile_sp` prosedur seperti yang ditunjukkan berikut.

```
select aws_sqlserver_ext.sysmail_update_profile_sp(
    par_profile_id := 2,
    par_profile_name := 'New profile name'
);
```

Untuk mengubah pengaturan akun email, gunakan `ysmail_update_account_sp` prosedur seperti yang ditunjukkan berikut.

```
select from aws_sqlserver_ext.sysmail_update_account_sp (
    par_account_name := 'Audit Account',
    par_mailserver_name := 'arn:aws:lambda:region:XXXXXXXXXXXX:function:func_test',
    par_mailserver_type := 'AWSLAMBDA'
);
```

# Migrasi dari SQL Server ke Amazon RDS for SQL Server dengan AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer.ToRDSSQLServer"></a>

Beberapa hal yang perlu dipertimbangkan saat memigrasikan skema dan kode SQL Server ke Amazon RDS for SQL Server: 
+ AWS SCT dapat mengonversi Agen SQL Server untuk menyediakan jadwal, peringatan, dan pekerjaan pada instans Amazon RDS for SQL Server DB. Setelah konversi, Anda dapat menggunakan instans Amazon RDS for SQL Server DB dengan SQL Server Reporting Services (SSRS), SQL Server Analysis Services (SSAS), dan SQL Server Integration Services (SSIS).
+ Amazon RDS saat ini tidak mendukung Broker Layanan SQL Server atau titik akhir T-SQL tambahan yang mengharuskan Anda menjalankan perintah CREATE ENDPOINT.
+ Amazon RDS memiliki dukungan terbatas untuk server tertaut. Saat mengonversi kode aplikasi SQL Server yang menggunakan server tertaut, AWS SCT mengonversi kode aplikasi. Namun, pastikan untuk meninjau perilaku objek yang menggunakan server tertaut sebelum Anda menjalankan kode yang dikonversi.
+ Selalu aktif digunakan.
+ Laporan AWS SCT penilaian menyediakan metrik server untuk konversi. Metrik tentang instance SQL Server ini mencakup yang berikut:
  + Pencerminan data digunakan.
  + SQL Server Log Shipping dikonfigurasi.
  + Failover cluster digunakan.
  + Database Mail dikonfigurasi. 
  + Layanan Pencarian Teks Lengkap digunakan. Amazon RDS for SQL Server memiliki pencarian teks lengkap terbatas, dan tidak mendukung pencarian semantik.
  + Layanan Kualitas Data (DQS) diinstal. Amazon RDS tidak mendukung DQS jadi kami sarankan Anda menginstal SQL Server pada instans Amazon EC2.

## Hak istimewa untuk RDS untuk SQL Server sebagai target
<a name="CHAP_Source.SQLServer.ToRDSSQLServer.ConfigureTarget"></a>

Untuk bermigrasi ke RDS untuk SQL Server, buat pengguna database dan kemudian berikan hak istimewa yang diperlukan untuk setiap database. Anda dapat menggunakan contoh kode berikut.

```
CREATE LOGIN user_name WITH PASSWORD 'your_password';
                
USE db_name
CREATE USER user_name FOR LOGIN user_name
GRANT VIEW DEFINITION TO user_name
GRANT VIEW DATABASE STATE TO user_name
GRANT CREATE SCHEMA TO user_name;
GRANT CREATE TABLE TO user_name;
GRANT CREATE VIEW TO user_name;
GRANT CREATE TYPE TO user_name;
GRANT CREATE DEFAULT TO user_name;
GRANT CREATE FUNCTION TO user_name;
GRANT CREATE PROCEDURE TO user_name;
GRANT CREATE ASSEMBLY TO user_name;
GRANT CREATE AGGREGATE TO user_name;
GRANT CREATE FULLTEXT CATALOG TO user_name;
GRANT CREATE SYNONYM TO user_name;
GRANT CREATE XML SCHEMA COLLECTION TO user_name;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

# Sumber gudang data untuk AWS Schema Conversion Tool
<a name="CHAP_Source-Data-Warehouses"></a>

AWS SCT dapat mengonversi skema untuk gudang data sumber berikut ke target yang didukung. Untuk informasi tentang izin, koneksi, dan apa yang AWS SCT dapat dikonversi untuk digunakan dengan basis data target atau gudang data, lihat detail berikut ini.

**Topics**
+ [Menghubungkan Amazon Redshift dengan AWS Schema Conversion Tool](CHAP_Source.Redshift.md)
+ [Menghubungkan Azure Synapse Analytics dengan AWS Schema Conversion Tool](CHAP_Source.AzureSynapse.md)
+ [Menghubungkan ke Google BigQuery dengan AWS Schema Conversion Tool](CHAP_Source.BigQuery.md)
+ [Menghubungkan Database Greenplum dengan AWS Schema Conversion Tool](CHAP_Source.Greenplum.md)
+ [Menghubungkan ke Netezza dengan AWS Schema Conversion Tool](CHAP_Source.Netezza.md)
+ [Menghubungkan Oracle Data Warehouse dengan AWS SCT](CHAP_Source.OracleDW.md)
+ [Menghubungkan ke gudang data Snowflake dengan AWS Schema Conversion Tool](CHAP_Source.Snowflake.md)
+ [Menghubungkan ke Gudang Data SQL Server dengan AWS Schema Conversion Tool](CHAP_Source.SQLServerDW.md)
+ [Menghubungkan ke Gudang Data Teradata dengan AWS Schema Conversion Tool](CHAP_Source.Teradata.md)
+ [Menghubungkan database AWS Schema Conversion Tool ke Vertica](CHAP_Source.Vertica.md)

# Menghubungkan Amazon Redshift dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Redshift"></a>

Anda dapat menggunakannya AWS SCT untuk mengoptimalkan cluster Amazon Redshift Anda. AWS SCT memberi Anda rekomendasi tentang pemilihan kunci distribusi dan pengurutan untuk klaster Amazon Redshift Anda. Anda dapat mempertimbangkan proyek pengoptimalan Amazon Redshift sebagai AWS SCT proyek dengan sumber dan target yang menunjuk ke berbagai kluster Amazon Redshift.

## Hak istimewa untuk Amazon Redshift sebagai database sumber
<a name="CHAP_Source.Redshift.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Amazon Redshift sebagai sumber:
+ PENGGUNAAN PADA SKEMA *<schema\$1name>* 
+ PILIH PADA SEMUA TABEL DALAM SKEMA *<schema\$1name>* 
+ PILIH DI PG\$1CATALOG.PG\$1STATISTIC 
+ PILIH PADA SVV\$1TABLE\$1INFO 
+ PILIH PADA TABEL STV\$1BLOCKLIST 
+ PILIH PADA TABEL STV\$1TBL\$1PERM 
+ PILIH PADA SYS\$1SERVERLESS\$1USAGE 
+ PILIH DI PG\$1DATABASE\$1INFO 
+ PILIH DI PG\$1STATISTIC 

Pada contoh sebelumnya, ganti *<schema\$1name>* placeholder dengan nama skema sumber.

Untuk hak istimewa yang diperlukan untuk Amazon Redshift sebagai target, lihat. [Izin untuk Amazon Redshift sebagai target](CHAP_Converting.DW.md#CHAP_Converting.DW.ConfigureTarget)

## Menghubungkan ke Amazon Redshift sebagai sumber
<a name="CHAP_Source.Redshift.Connecting"></a>

Gunakan prosedur berikut untuk menyambung ke database sumber Amazon Redshift Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Amazon Redshift**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Amazon Redshift**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi untuk database sumber Amazon Redshift, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Redshift.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan pengoptimalan Amazon Redshift
<a name="CHAP_Source.Redshift.ConversionSettings"></a>

Untuk mengedit setelan optimasi Amazon Redshift, pilih **Pengaturan** di AWS SCT, lalu pilih Pengaturan **konversi**. Dari daftar atas, pilih **Amazon Redshift**, lalu pilih Amazon **Redshift — Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia untuk optimasi Amazon Redshift.

Pengaturan pengoptimalan Amazon Redshift AWS SCT termasuk opsi untuk hal-hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun jumlah tabel lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memilih strategi migrasi.

  AWS merekomendasikan penggunaan cluster yang berbeda sebagai sumber dan target untuk proyek pengoptimalan Anda. Sebelum memulai proses pengoptimalan Amazon Redshift, Anda membuat salinan cluster Amazon Redshift sumber Anda. Anda dapat menyertakan data sumber Anda ke dalam salinan ini atau membuat cluster kosong.

  Untuk **strategi Migrasi**, pilih **Migrasi ke salinan** untuk menyertakan data dari kluster sumber Anda di kluster target.

  Untuk **strategi Migrasi**, pilih **Migrasi ke papan tulis bersih** untuk meninjau saran pengoptimalan. Setelah Anda menerima saran ini, memigrasikan data sumber Anda ke kluster target.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.
+ Untuk bekerja dengan optimasi tabel otomatis.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk menggunakan hanya pada optimasi tabel otomatis, pilih **strategi Optimasi** di panel kiri. Kemudian pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**, dan pilih **None** for **Initial key** selection strategy.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**.
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang statistik kuerinya ingin Anda analisis.

# Menghubungkan Azure Synapse Analytics dengan AWS Schema Conversion Tool
<a name="CHAP_Source.AzureSynapse"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Azure Synapse Analytics ke Amazon Redshift. 

## Hak istimewa untuk Azure Synapse Analytics sebagai database sumber
<a name="CHAP_Source.AzureSynapse.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan gudang data Azure Synapse Analytics sebagai sumber:
+ LIHAT DEFINISI 
+ LIHAT STATUS BASIS DATA 

Terapkan hak istimewa untuk setiap database yang skema Anda konversi.

## Menghubungkan ke Azure Synapse Analytics sebagai sumber
<a name="CHAP_Source.AzureSynapse.Connecting"></a>

Gunakan prosedur berikut untuk menyambung ke gudang data Azure Synapse Analytics Anda dengan. AWS Schema Conversion Tool

**Untuk terhubung ke gudang data Azure Synapse Analytics sebagai sumber**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Azure Synapse Analytics**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi untuk gudang data Azure Synapse Analytics secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.AzureSynapse.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda.

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan konversi Azure Synapse Analytics ke Amazon Redshift
<a name="CHAP_Source.AzureSynapse.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Azure Synapse Analytics ke Amazon Redshift, pilih Pengaturan di AWS SCT, **lalu pilih Pengaturan** konversi.** Dari daftar atas, pilih **Azure Synapse, lalu pilih **Azure** Synapse** — Amazon Redshift. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Azure Synapse Analytics ke Amazon Redshift.

Pengaturan konversi Azure Synapse Analytics ke Amazon Redshift AWS SCT termasuk opsi untuk hal-hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Azure Synapse Analytics ke Amazon Redshift
<a name="CHAP_Source.AzureSynapse.ConversionOptimizationSettings"></a>

**Untuk mengedit pengaturan pengoptimalan konversi Azure Synapse Analytics ke Amazon Redshift, pilih Pengaturan di AWS SCT, **lalu pilih Pengaturan** konversi.** Dari daftar atas, pilih **Azure Synapse, lalu pilih **Azure** Synapse** — Amazon Redshift. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan setelan pengoptimalan konversi untuk konversi Azure Synapse Analytics ke Amazon Redshift.

Pengaturan pengoptimalan konversi Azure Synapse Analytics ke Amazon Redshift AWS SCT termasuk opsi untuk hal-hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan ke Google BigQuery dengan AWS Schema Conversion Tool
<a name="CHAP_Source.BigQuery"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Amazon BigQuery Redshift. 

## Hak istimewa untuk BigQuery sebagai sumber
<a name="CHAP_Source.BigQuery.Permissions"></a>

Untuk menggunakan gudang BigQuery data sebagai sumber AWS SCT, buat akun layanan. Di Google Cloud, aplikasi menggunakan akun layanan untuk melakukan panggilan API resmi. Akun layanan berbeda dari akun pengguna. Untuk informasi selengkapnya, lihat [Akun layanan](https://cloud.google.com/iam/docs/service-accounts) di dokumentasi Google Cloud Identity and Access Management.

Pastikan Anda memberikan peran berikut ke akun layanan Anda:
+ `BigQuery Admin`
+ `Storage Admin`

`BigQuery Admin`Peran tersebut memberikan izin untuk mengelola semua sumber daya dalam proyek. AWS SCT menggunakan peran ini untuk memuat BigQuery metadata Anda dalam proyek migrasi.

`Storage Admin`Peran tersebut memberikan kontrol penuh atas objek data dan ember. Anda dapat menemukan peran ini di bawah`Cloud Storage`. AWS SCT menggunakan peran ini untuk mengekstrak data Anda BigQuery dan kemudian memuatnya ke Amazon Redshift.

**Untuk membuat file kunci akun layanan**

1. Masuk ke konsol manajemen Google Cloud di [https://console.cloud.google.com/](https://console.cloud.google.com/).

1. Pada halaman [BigQuery API](https://console.cloud.google.com/apis/library/bigquery.googleapis.com), pilih **Aktifkan**. Lewati langkah ini jika Anda melihat **API Diaktifkan**.

1. Pada halaman [Akun layanan](https://console.cloud.google.com/iam-admin/serviceaccounts), pilih proyek Anda, lalu pilih **Buat akun layanan**.

1. Pada halaman **detail akun Layanan**, masukkan nilai deskriptif untuk **nama akun Layanan**. Pilih **Buat dan lanjutkan**. **Berikan akses akun layanan ini ke halaman proyek** terbuka. 

1. Untuk **Pilih peran**, pilih **BigQuery**, lalu pilih **BigQuery Admin**. 

1. Pilih **Tambahkan peran lain**. Untuk **Memilih peran**, pilih **Cloud Storage**, lalu pilih **Admin Penyimpanan**. 

1. Pilih **Lanjutkan**, lalu pilih **Selesai**. 

1. Pada halaman [Akun layanan](https://console.cloud.google.com/iam-admin/serviceaccounts), pilih akun layanan yang Anda buat.

1. Pilih **Keys**, lalu pilih **Create new key** for **Add key**.

1. Pilih **JSON**, lalu pilih **Buat**. Pilih folder untuk menyimpan kunci pribadi Anda atau pilih folder default untuk diunduh di browser Anda.

Untuk mengekstrak data dari gudang BigQuery data, AWS SCT gunakan folder bucket Google Cloud Storage. Buat bucket ini sebelum Anda memulai migrasi data. Masukkan path ke folder bucket Google Cloud Storage di kotak dialog **Create Local task**. Untuk informasi selengkapnya, lihat [Membuat, menjalankan, dan memantau AWS SCT tugas](agents.md#agents.Tasks).

## Menghubungkan ke BigQuery sebagai sumber
<a name="CHAP_Source.BigQuery.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke BigQuery proyek sumber Anda dengan AWS Schema Conversion Tool.

**Untuk terhubung ke gudang data BigQuery sumber**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**.

1. Pilih **BigQuery**, lalu pilih **Berikutnya**.

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk BigQuery proyek Anda. AWS SCT menampilkan nama ini di pohon di panel kiri.

1. Untuk **jalur Kunci**, masukkan jalur ke file kunci akun layanan. Untuk informasi selengkapnya tentang membuat file ini, lihat[Hak istimewa untuk BigQuery sebagai sumber](#CHAP_Source.BigQuery.Permissions). 

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke BigQuery proyek sumber Anda. 

1. Pilih **Connect** untuk terhubung ke BigQuery proyek sumber Anda.

## Keterbatasan penggunaan BigQuery sebagai sumber untuk AWS SCT
<a name="CHAP_Source.BigQuery.Limitations"></a>

Batasan berikut berlaku saat menggunakan BigQuery sebagai sumber untuk AWS SCT:
+ AWS SCT tidak mendukung konversi subkueri dalam fungsi analitik.
+ Anda tidak dapat menggunakan AWS SCT untuk mengonversi BigQuery `SELECT AS STRUCT` dan `SELECT AS VALUE` pernyataan.
+ AWS SCT tidak mendukung konversi jenis fungsi berikut:
  + Perkiraan agregat
  + Bit
  + Debugging
  + Kueri federasi
  + Geografi
  + Hash
  + Matematika
  + Bersih
  + Agregat statistik
  + UUID
+ AWS SCT menyediakan dukungan terbatas untuk konversi fungsi string. 
+ AWS SCT tidak mendukung konversi `UNNEST` operator.
+ Anda tidak dapat mengonversi operasi gabungan yang berkorelasi di AWS SCT.
+ AWS SCT tidak mendukung konversi`QUALIFY`,, `WINDOW``LIMIT`, dan `OFFSET` klausa.
+ Anda tidak dapat menggunakan AWS SCT untuk mengonversi ekspresi tabel umum rekursif.
+ AWS SCT tidak mendukung konversi `INSERT` pernyataan dengan subkueri di dalam `VALUES` klausa.
+ AWS SCT tidak mendukung konversi `UPDATE` pernyataan untuk bidang bersarang dan catatan berulang.
+ Anda tidak dapat menggunakan AWS SCT untuk mengkonversi `STRUCT` dan tipe `ARRAY` data.

## BigQuery ke pengaturan konversi Amazon Redshift
<a name="CHAP_Source.BigQuery.ConversionSettings"></a>

Untuk mengedit BigQuery ke pengaturan konversi Amazon Redshift, pilih **Pengaturan** di AWS SCT, lalu pilih Pengaturan **konversi**. Dari daftar atas, pilih **Google BigQuery**, lalu pilih **Google BigQuery — Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia BigQuery untuk konversi Amazon Redshift.

BigQuery ke setelan konversi Amazon Redshift di AWS SCT menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## BigQuery ke pengaturan pengoptimalan konversi Amazon Redshift
<a name="CHAP_Source.BigQuery.ConversionOptimizationSettings"></a>

Untuk mengedit BigQuery ke pengaturan pengoptimalan konversi Amazon Redshift, pilih **Pengaturan** di AWS SCT, lalu pilih Pengaturan **konversi**. Dari daftar atas, pilih **Google BigQuery**, lalu pilih **Google BigQuery — Amazon Redshift**. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi BigQuery untuk konversi Amazon Redshift.

BigQuery ke setelan pengoptimalan konversi Amazon Redshift di AWS SCT menyertakan opsi untuk hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan Database Greenplum dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Greenplum"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Greenplum Database ke Amazon Redshift. 

## Hak istimewa untuk Database Greenplum sebagai sumber
<a name="CHAP_Source.Greenplum.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Database Greenplum sebagai sumber:
+ TERHUBUNG PADA DATABASE *<database\$1name>* 
+ PENGGUNAAN PADA SKEMA *<schema\$1name>* 
+ PILIH PADA *<schema\$1name>.<table\$1name>* 
+ PILIH PADA URUTAN *<schema\$1name>.<sequence\$1name>* 

Pada contoh sebelumnya, ganti placeholder sebagai berikut:
+ Ganti *database\$1name* dengan nama database sumber.
+ Ganti *schema\$1name* dengan nama skema sumber.
+ Ganti *table\$1name* dengan nama tabel sumber.
+ Ganti *sequence\$1name* dengan nama nama urutan.

## Menghubungkan ke Greenplum Database sebagai sumber
<a name="CHAP_Source.Greenplum.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Greenplum Anda dengan AWS SCT.

**Untuk terhubung ke database sumber Greenplum**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. Pilih **SAP ASE**, lalu pilih **Next**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan kredensi database sumber Greenplum secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Greenplum.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan konversi Greenplum ke Amazon Redshift
<a name="CHAP_Source.Greenplum.ConversionSettings"></a>

Untuk mengedit pengaturan konversi Greenplum ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Greenplum**, lalu pilih **Greenplum — Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Greenplum ke Amazon Redshift.

Pengaturan konversi Greenplum ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Greenplum ke Amazon Redshift
<a name="CHAP_Source.Greenplum.ConversionOptimizationSettings"></a>

Untuk mengedit pengaturan pengoptimalan konversi Greenplum ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Greenplum**, lalu pilih **Greenplum — Amazon Redshift**. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Greenplum ke Amazon Redshift.

Pengaturan pengoptimalan konversi Greenplum ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan ke Netezza dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Netezza"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Netezza ke Amazon Redshift. 

## Hak istimewa untuk Netezza sebagai sumber
<a name="CHAP_Source.Netezza.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Netezza sebagai sumber:
+ pilih pada tampilan system.definition\$1schema.system
+ pilih pada tabel system.definition\$1schema.system
+ pilih pada tabel system.definition\$1schema.management
+ daftar di *<database\$1name>*
+ daftar di *<schema\$1name>*
+ daftar *<database\$1name>* di.all.table
+ daftar di *<database\$1name>* tabel.all.external
+ daftar *<database\$1name>* di.all.view
+ daftar pada *<database\$1name>* tampilan.all.materialized
+ daftar *<database\$1name>* di.all.procedure
+ daftar *<database\$1name>* di.all.sequence
+ daftar *<database\$1name>* di.all.function
+ daftar *<database\$1name>* di.all.aggregate

Pada contoh sebelumnya, ganti placeholder sebagai berikut:
+ Ganti *database\$1name* dengan nama database sumber.
+ Ganti *schema\$1name* dengan nama skema sumber.

AWS SCT membutuhkan akses ke tabel dan tampilan sistem berikut. Anda dapat memberikan akses ke objek-objek ini alih-alih memberikan akses ke `system.definition_schema.system view` dan `system.definition_schema.system tables` dalam daftar sebelumnya.
+ pilih pada system.definition\$1schema. \$1t\$1agregat
+ pilih pada system.definition\$1schema. \$1t\$1class
+ pilih pada system.definition\$1schema. \$1t\$1kendala
+ pilih pada system.definition\$1schema. \$1t\$1const\$1relattr
+ pilih pada system.definition\$1schema. \$1t\$1database
+ pilih pada system.definition\$1schema. \$1t\$1grpobj\$1priv
+ pilih pada system.definition\$1schema. \$1t\$1grpusr
+ pilih pada system.definition\$1schema. \$1t\$1hist\$1config
+ pilih pada system.definition\$1schema. \$1t\$1objek
+ pilih pada system.definition\$1schema. \$1t\$1object\$1classes
+ pilih pada system.definition\$1schema. \$1t\$1proc
+ pilih pada system.definition\$1schema. \$1t\$1type
+ pilih pada system.definition\$1schema. \$1t\$1pengguna
+ pilih pada system.definition\$1schema. \$1t\$1usrobj\$1priv
+ pilih pada system.definition\$1schema. \$1vt\$1urutan
+ pilih pada system.definition\$1schema. \$1v\$1agregat
+ pilih pada system.definition\$1schema. \$1v\$1constraint\$1tergantung
+ pilih pada system.definition\$1schema. \$1v\$1basis data
+ pilih pada system.definition\$1schema. \$1v\$1tipe data
+ pilih pada system.definition\$1schema. \$1v\$1dslice
+ pilih pada system.definition\$1schema. \$1v\$1fungsi
+ pilih pada system.definition\$1schema. \$1v\$1grup
+ pilih pada system.definition\$1schema. \$1v\$1obj\$1relasi
+ pilih pada system.definition\$1schema. \$1v\$1obj\$1relasi\$1xdb
+ pilih pada system.definition\$1schema. \$1v\$1prosedur
+ pilih pada system.definition\$1schema. \$1v\$1hubungan\$1kolom
+ pilih pada system.definition\$1schema. \$1hubungan\$1keydata
+ pilih pada system.definition\$1schema. \$1v\$1relobjclasses
+ pilih pada system.definition\$1schema. \$1v\$1schema\$1xdb
+ pilih pada system.definition\$1schema. \$1v\$1urutan
+ pilih pada system.definition\$1schema. \$1v\$1sinonim
+ pilih pada system.definition\$1schema. \$1v\$1system\$1info
+ pilih pada system.definition\$1schema. \$1v\$1sys\$1kendala
+ pilih pada system.definition\$1schema. \$1v\$1sys\$1object\$1dslice\$1info
+ pilih pada system.definition\$1schema. \$1v\$1sys\$1pengguna
+ pilih pada system.definition\$1schema. \$1v\$1tabel
+ pilih pada system.definition\$1schema. \$1v\$1table\$1kendala
+ pilih pada system.definition\$1schema. \$1v\$1table\$1dist\$1map
+ pilih pada system.definition\$1schema. \$1v\$1table\$1organize\$1column
+ pilih pada system.definition\$1schema. \$1v\$1table\$1storage\$1stat
+ pilih pada system.definition\$1schema. \$1v\$1pengguna
+ pilih pada system.definition\$1schema. \$1v\$1lihat
+ pilih pada system.information\$1schema. \$1v\$1hubungan\$1kolom
+ pilih pada system.information\$1schema. \$1v\$1tabel
+ pilih pada \$1hist\$1column\$1access\$1\$1

## Menghubungkan ke Netezza sebagai sumber
<a name="CHAP_Source.Netezza.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Netezza Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Netezza**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Netezza**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Netezza secara manual, gunakan instruksi berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Netezza.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Mengkonfigurasi replikasi data yang sedang berlangsung
<a name="CHAP_Source.Netezza.CDC"></a>

Setelah mengonversi skema database Netezza dan menerapkannya ke database Amazon Redshift, Anda dapat memigrasi data dengan agen ekstraksi data. AWS SCT Agen mengekstrak data Anda dan mengunggahnya ke bucket Amazon S3 Anda. Anda kemudian dapat menggunakannya AWS SCT untuk menyalin data dari Amazon S3 ke Amazon Redshift.

Jika data dalam database sumber Anda berubah selama proses migrasi, Anda dapat menangkap perubahan yang sedang berlangsung dengan agen ekstraksi AWS SCT data Anda. Kemudian Anda dapat mereplikasi perubahan yang sedang berlangsung ini di database target Anda setelah Anda menyelesaikan migrasi data awal. Proses ini disebut replikasi data berkelanjutan atau *perubahan data capture* (CDC).

**Untuk mengonfigurasi replikasi data yang sedang berlangsung untuk migrasi dari Netezza ke Amazon Redshift**

1. Di database sumber Anda, buat database riwayat. Anda dapat menggunakan contoh kode berikut di antarmuka baris perintah Netezza (CLI).

   ```
   nzhistcreatedb -d history_database_name -t query -v 1 -u load_user -o histdb_owner -p your_password
   ```

   Pada contoh sebelumnya, ganti *history\$1database\$1name* dengan nama database riwayat Anda. Selanjutnya, ganti *load\$1user* dengan nama pengguna yang telah Anda tetapkan untuk memuat data riwayat ke database. Kemudian, ganti *histdb\$1owner* dengan nama pengguna yang telah Anda definisikan sebagai pemilik database riwayat. Pastikan Anda telah membuat pengguna ini dan memberikan `CREATE DATABASE` izin. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

1. Konfigurasikan pencatatan riwayat. Untuk melakukannya, gunakan contoh kode berikut.

   ```
   CREATE HISTORY CONFIGURATION history_configuration_name HISTTYPE QUERY
       DATABASE history_database_name USER load_user PASSWORD your_password COLLECT PLAN, COLUMN
       LOADINTERVAL 1 LOADMINTHRESHOLD 0 LOADMAXTHRESHOLD 0 STORAGELIMIT 25
       LOADRETRY 2 VERSION 1;
   ```

   Dalam contoh sebelumnya, ganti *history\$1configuration\$1name* dan *history\$1database\$1name* dengan nama konfigurasi riwayat Anda dan database riwayat Anda. Selanjutnya, ganti *load\$1user* dengan nama pengguna yang telah Anda tetapkan untuk memuat data riwayat ke database. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

1. Berikan izin baca untuk semua tabel dalam database riwayat. Anda dapat menggunakan contoh kode berikut untuk memberikan `SELECT` izin.

   ```
   GRANT SELECT ON history_database_name.ALL.TABLE TO your_user;
   ```

   Pada contoh sebelumnya, ganti *history\$1database\$1name* dengan nama database riwayat Anda. Selanjutnya, ganti *your\$1user* dengan nama pengguna dengan izin minimal untuk bekerja dengan database Netezza Anda. Anda menggunakan kredensi pengguna database ini di. AWS SCT

1. Kumpulkan statistik untuk setiap tabel dalam skema sumber Anda untuk mendapatkan informasi tentang kardinalitas kolom. Anda dapat menggunakan perintah berikut untuk menghasilkan statistik dalam database riwayat Anda.

   ```
   GENERATE STATISTICS on "schema_name"."table_name";
   ```

   Pada contoh sebelumnya, ganti *schema\$1name* dan *table\$1name* dengan nama skema dan tabel database Anda.

1. Pastikan Anda menyelesaikan prasyarat dengan menjalankan kueri berikut:

   ```
   SELECT COUNT(*) FROM history_database_name.history_schema_name."$hist_column_access_N";
   ```

   Dalam contoh sebelumnya, ganti *history\$1database\$1name* dan *history\$1schema\$1name* dengan nama database dan skema riwayat Anda. Selanjutnya, ganti *N* dengan nomor versi database riwayat Anda. Untuk informasi selengkapnya tentang versi database riwayat, lihat Dokumentasi [IBM Netezza](https://www.ibm.com/docs/en/netezza?topic=history-database-versions). 

1. Instal agen ekstraksi data Anda. Untuk informasi selengkapnya, lihat [Instalasi agen ekstraksi](agents.md#agents.Installing).

   Pastikan bahwa `{working.folder}` parameter dalam `settings.properties` file untuk semua instance extractor menunjuk ke folder yang sama. Dalam hal ini, ekstraktor Anda dapat mengoordinasikan sesi CDC dan menggunakan satu titik transaksi untuk semua subtugas.

1. Daftarkan agen ekstraksi data Anda. Untuk informasi selengkapnya, lihat [Mendaftarkan agen ekstraksi dengan AWS Schema Conversion Tool](agents.md#agents.Using).

1. Buat tugas CDC Anda. Untuk informasi selengkapnya, lihat [Membuat, menjalankan, dan memantau AWS SCT tugas](agents.md#agents.Tasks).

   1. Buka proyek Anda di AWS SCT. Di panel kiri, pilih tabel sumber Anda. Buka menu konteks (klik kanan), dan pilih **Buat tugas lokal**.

   1. Untuk **nama Tugas**, masukkan nama deskriptif untuk tugas migrasi data Anda.

   1. Untuk **mode Migrasi**, pilih **Ekstrak, unggah, dan salin**.

   1. Pilih **Aktifkan CDC**.

   1. Pilih tab **pengaturan CDC** dan tentukan ruang lingkup dan jadwal sesi CDC.

   1. Pilih **Tugas uji** untuk memverifikasi bahwa Anda dapat terhubung ke folder kerja, bucket Amazon S3, dan gudang data Amazon Redshift.

   1. Pilih **Buat** untuk membuat tugas Anda.

   1. Pilih tab **Tugas**, pilih tugas Anda dari daftar, dan pilih **Mulai**.

1.  AWS SCT Tugas menjaga konsistensi transaksional pada database target. Agen ekstraksi data mereplikasi transaksi dari sumber dalam urutan ID transaksi. 

   Jika Anda menghentikan salah satu sesi migrasi atau jika gagal, maka pemrosesan CDC juga berhenti.

## Pengaturan konversi Netezza ke Amazon Redshift
<a name="CHAP_Source.Netezza.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Netezza ke Amazon Redshift, **pilih Pengaturan AWS SCT di, lalu pilih** Pengaturan konversi.** Dari daftar atas, pilih **Netezza**, lalu pilih **Netezza - Amazon** Redshift. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Netezza ke Amazon Redshift.

Pengaturan konversi Netezza ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Netezza ke Amazon Redshift
<a name="CHAP_Source.Netezza.ConversionOptimizationSettings"></a>

**Untuk mengedit pengaturan pengoptimalan konversi Netezza ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu pilih Pengaturan konversi.** Dari daftar atas, pilih **Netezza**, lalu pilih **Netezza - Amazon** Redshift. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Netezza ke Amazon Redshift.

Pengaturan pengoptimalan konversi Netezza ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan Oracle Data Warehouse dengan AWS SCT
<a name="CHAP_Source.OracleDW"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Oracle Data Warehouse ke Amazon Redshift atau Amazon Redshift dan digunakan dalam kombinasi. AWS Glue 

## Hak istimewa untuk Oracle Data Warehouse sebagai sumber
<a name="CHAP_Source.OracleDW.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Oracle Data Warehouse sebagai sumber:
+ hubungkan 
+ select\$1catalog\$1role 
+ pilih kamus apa saja 

## Menghubungkan ke Oracle Data Warehouse sebagai sumber
<a name="CHAP_Source.OracleDW.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber gudang data Oracle Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Oracle Data Warehouse**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. Pilih **Oracle**, lalu pilih **Berikutnya**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi gudang data sumber Oracle secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.OracleDW.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan konversi Oracle Data Warehouse ke Amazon Redshift
<a name="CHAP_Source.OracleDW.ConversionSettings"></a>

Untuk mengedit Oracle Data Warehouse ke pengaturan konversi Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Oracle**, lalu pilih **Oracle - Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle Data Warehouse ke Amazon Redshift.

Pengaturan AWS SCT konversi Oracle Data Warehouse ke Amazon Redshift termasuk opsi untuk hal-hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk mengonversi fungsi pemformatan tipe data seperti`TO_CHAR`,`TO_DATE`, dan `TO_NUMBER` dengan elemen format datetime yang tidak didukung Amazon Redshift. Secara default, AWS SCT menggunakan fungsi paket ekstensi untuk meniru penggunaan elemen format yang tidak didukung ini dalam kode yang dikonversi.

  Model format datetime di Oracle mencakup lebih banyak elemen dibandingkan dengan string format datetime di Amazon Redshift. Jika kode sumber Anda hanya menyertakan elemen format datetime yang didukung Amazon Redshift, Anda tidak memerlukan fungsi paket ekstensi dalam kode yang dikonversi. Untuk menghindari penggunaan fungsi paket ekstensi dalam kode yang dikonversi, pilih **Elemen format tipe data yang Anda gunakan dalam kode Oracle mirip dengan string format datetime di Amazon** Redshift. Dalam hal ini, kode yang dikonversi bekerja lebih cepat.

  Model format numerik di Oracle mencakup lebih banyak elemen dibandingkan dengan string format numerik di Amazon Redshift. Jika kode sumber Anda hanya menyertakan elemen format numerik yang didukung Amazon Redshift, Anda tidak memerlukan fungsi paket ekstensi dalam kode yang dikonversi. Untuk menghindari penggunaan fungsi paket ekstensi dalam kode yang dikonversi, pilih **Elemen format numerik yang Anda gunakan dalam kode Oracle mirip dengan string format numerik di Amazon** Redshift. Dalam hal ini, kode yang dikonversi bekerja lebih cepat.
+ Untuk mengkonversi fungsi Oracle `LEAD` dan `LAG` analitik. Secara default, AWS SCT memunculkan item tindakan untuk masing-masing `LEAD` dan `LAG` fungsi.

  Ketika kode sumber Anda tidak menggunakan nilai default untuk offset dalam fungsi ini, AWS SCT dapat meniru penggunaan fungsi ini dengan fungsi. `NVL` Untuk melakukannya, pilih **Gunakan fungsi NVL untuk meniru perilaku fungsi Oracle LEAD dan** LAG.
+ Untuk meniru perilaku kunci primer dan unik di klaster Amazon Redshift Anda, **pilih Emulasikan perilaku kunci primer dan** unik.

  Amazon Redshift tidak menerapkan kunci unik dan utama dan menggunakannya hanya untuk tujuan informasi. Jika Anda menggunakan batasan ini dalam kode Anda, maka pastikan itu AWS SCT mengemulasi perilaku mereka dalam kode yang dikonversi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Oracle Data Warehouse ke Amazon Redshift
<a name="CHAP_Source.OracleDW.ConversionOptimizationSettings"></a>

Untuk mengedit Oracle Data Warehouse ke pengaturan pengoptimalan konversi Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Oracle**, lalu pilih **Oracle - Amazon Redshift**. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Oracle Data Warehouse ke Amazon Redshift.

Pengaturan AWS SCT pengoptimalan konversi Oracle Data Warehouse ke Amazon Redshift termasuk opsi untuk hal-hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan ke gudang data Snowflake dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Snowflake"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Snowflake ke Amazon Redshift.

## Hak istimewa untuk Snowflake sebagai database sumber
<a name="CHAP_Source.Snowflake.Permissions"></a>

Anda dapat membuat peran dengan hak istimewa dan memberikan peran ini nama pengguna dengan menggunakan `SECURITYADMIN` peran dan konteks `SECURITYADMIN` sesi.

Contoh berikut menciptakan hak istimewa minimal dan memberikannya kepada pengguna. `min_privs` 

```
create role role_name;
grant role role_name to role sysadmin;
grant usage on database db_name to role role_name;
grant usage on schema db_name.schema_name to role role_name;             
grant usage on warehouse datawarehouse_name to role role_name;
grant monitor on database db_name to role role_name;
grant monitor on warehouse datawarehouse_name to role role_name;
grant select on all tables in schema db_name.schema_name to role role_name;
grant select on future tables in schema db_name.schema_name to role role_name;
grant select on all views in schema db_name.schema_name to role role_name;
grant select on future views in schema db_name.schema_name to role role_name;
grant select on all external tables in schema db_name.schema_name to role role_name;
grant select on future external tables in schema db_name.schema_name to role role_name;
grant usage on all sequences in schema db_name.schema_name to role role_name;
grant usage on future sequences in schema db_name.schema_name to role role_name;
grant usage on all functions in schema db_name.schema_name to role role_name;
grant usage on future functions in schema db_name.schema_name to role role_name;
grant usage on all procedures in schema db_name.schema_name to role role_name;
grant usage on future procedures in schema db_name.schema_name to role role_name;
create user min_privs password='real_user_password'  
DEFAULT_ROLE = role_name DEFAULT_WAREHOUSE = 'datawarehouse_name';
grant role role_name to user min_privs;
```

Pada contoh sebelumnya, ganti placeholder sebagai berikut:
+ Ganti *`role_name`* dengan nama peran dengan hak istimewa hanya-baca.
+ Ganti `db_name` dengan nama database sumber.
+ Ganti `schema_name` dengan nama skema sumber.
+ Ganti *`datawarehousename`* dengan nama gudang data yang diperlukan.
+ Ganti `min_privs` dengan nama pengguna yang memiliki hak istimewa minimal.

`DEFAULT_WAREHOUSE`Parameter `DEFAULT_ROLE` dan sensitif terhadap kunci.

## Mengkonfigurasi akses aman ke Amazon S3
<a name="CHAP_Source.Snowflake.IAM"></a>

Kebijakan keamanan dan manajemen akses untuk bucket Amazon S3 memungkinkan Snowflake mengakses, membaca data, dan menulis data ke bucket S3. Anda dapat mengonfigurasi akses aman ke bucket Amazon S3 pribadi menggunakan jenis objek Snowflake`STORAGE INTEGRATION`. Objek integrasi penyimpanan Snowflake mendelegasikan tanggung jawab otentikasi ke identitas Snowflake dan entitas manajemen akses.

Untuk informasi selengkapnya, lihat [Mengonfigurasi Integrasi Penyimpanan Snowflake untuk Mengakses Amazon S3 dalam dokumentasi Snowflake](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html).

## Menghubungkan ke Snowflake sebagai sumber
<a name="CHAP_Source.Snowflake.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Anda dengan file AWS Schema Conversion Tool. 

**Untuk terhubung ke database sumber Snowflake**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Snowflake**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi gudang data sumber Snowflake secara manual, gunakan instruksi berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Snowflake.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Keterbatasan untuk Snowflake sebagai sumber
<a name="CHAP_Source.Snowflake.Limitations"></a>

Berikut ini adalah batasan saat menggunakan Snowflake sebagai sumber untuk: AWS SCT
+ Pengidentifikasi objek harus unik dalam konteks jenis objek dan objek induk:  
**Basis Data**  
Pengidentifikasi skema harus unik dalam database.  
**Skema**  
Pengidentifikasi objek seperti untuk tabel dan tampilan harus unik dalam skema.  
**Tabel/Tampilan**  
Pengidentifikasi kolom harus unik di dalam tabel.
+ Jumlah maksimum tabel untuk tipe node cluster besar dan xlarge adalah 9.900. Untuk tipe node cluster 8xlarge, jumlah maksimum tabel adalah 100.000. Batas tersebut mencakup tabel sementara, baik yang ditentukan pengguna maupun yang dibuat oleh Amazon Redshift selama pemrosesan kueri atau pemeliharaan sistem. Untuk informasi selengkapnya, lihat [kuota Amazon Redshift di Panduan Manajemen](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) Cluster *Amazon Redshift*.
+ Untuk prosedur tersimpan, jumlah maksimum argumen input dan output adalah 32.

## Tipe data sumber untuk Snowflake
<a name="CHAP_Source.Snowflake.DataTypes"></a>

Berikut ini, Anda dapat menemukan tipe data sumber Snowflake yang didukung saat menggunakan AWS SCT dan pemetaan default ke target Amazon Redshift.


| Tipe data kepingan salju | Tipe data Amazon Redshift | 
| --- | --- | 
|  ANGKA  |  NUMERIK (38)  | 
|  NOMOR (p)  |  Jika p adalah =< 4, maka SMALLINT Jika p adalah => 5 dan =< 9, maka INTEGER Jika p adalah => 10 dan =< 18, maka BIGINT Jika p adalah => 19 maka NUMERIK (p)   | 
|  NOMOR (p, 0)  |  Jika p adalah =< 4, maka SMALLINT Jika p adalah => 5 dan =< 9, maka INTEGER Jika p adalah => 10 dan =< 18, maka BIGINT Jika p adalah => 19 maka: NUMERIK (p, 0)  | 
|  NOMOR (p, s)  |  Jika p adalah => 1 dan =< 38, dan jika s adalah => 1 dan =< 37, maka NUMERIK (p, s)   | 
|  FLOAT  | FLOAT | 
|  TEXT Karakter unicode hingga 16.777.216 byte; hingga 4 byte per karakter.  |  VARCHAR (MAKS)  | 
|  TEKS (p) Karakter unicode hingga 65.535 byte; hingga 4 byte per karakter.  |  Jika p adalah =< 65.535 maka, VARCHAR (p)  | 
|  TEKS (p) Karakter unicode hingga 16.777.216 byte; hingga 4 byte per karakter.  |  Jika p adalah => 65.535 dan =< 16.777.216 maka, VARCHAR (MAX)  | 
|  BINARY Karakter single-byte hingga 8.388.608 byte; 1 byte per karakter.  | VARCHAR (MAKS) | 
|  BINER (p) Karakter single-byte hingga 65.535 byte; 1 byte per karakter.  | VARCHAR (p) | 
|  BINER (p) Karakter single-byte hingga 8.388.608 byte; 1 byte per karakter.  | VARCHAR (MAKS) | 
|  BOOLEAN  | BOOLEAN | 
|  DATE  | DATE | 
|  TIME Nilai waktu antara 00:00:00 dan 23:59:59.999 999999.  | VARCHAR(18) | 
|  WAKTU (f) Nilai waktu antara 00:00:00 dan 23:59:59.9 (f).   | VARCHAR (n) — 9\$1dt-attr-1 | 
|  TIMESTAMP\$1NTZ  | TIMESTAMP | 
|  STAMP\$1TZ  | TIMESTAMPTZ | 

## Pengaturan konversi Snowflake ke Amazon Redshift
<a name="CHAP_Source.Snowflake.ConversionSettings"></a>

**Untuk mengedit setelan konversi Snowflake ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu pilih Pengaturan konversi.** Dari daftar atas, pilih **Snowflake**, lalu pilih **Snowflake — Amazon** Redshift. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Snowflake ke Amazon Redshift.

Pengaturan konversi Snowflake ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Snowflake ke Amazon Redshift
<a name="CHAP_Source.Snowflake.ConversionOptimizationSettings"></a>

**Untuk mengedit setelan pengoptimalan konversi Snowflake ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu pilih Pengaturan konversi.** Dari daftar atas, pilih **Snowflake**, lalu pilih **Snowflake — Amazon** Redshift. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Snowflake ke Amazon Redshift.

Pengaturan pengoptimalan konversi Snowflake ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal-hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan ke Gudang Data SQL Server dengan AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServerDW"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Microsoft SQL Server DW ke Amazon Redshift atau Amazon Redshift dan digunakan dalam kombinasi. AWS Glue 

## Hak istimewa untuk Microsoft SQL Server Data Warehouse sebagai sumber
<a name="CHAP_Source.SQLServerDW.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan gudang data Microsoft SQL Server sebagai sumber:
+ LIHAT DEFINISI 
+ LIHAT STATUS BASIS DATA 
+ PILIH PADA SKEMA:: *<schema\$1name>* 

Pada contoh sebelumnya, ganti *<source\$1schema>* placeholder dengan nama sumber source\$1schema.

Ulangi hibah untuk setiap database yang skema Anda konversi. 

Selain itu, berikan yang berikut ini, dan jalankan hibah pada database master: 
+ LIHAT STATUS SERVER 

## Batasan untuk Gudang Data SQL Server sebagai sumber
<a name="CHAP_Source.SQLServerDW.Limitations"></a>

Menggunakan Microsoft SQL Server Parallel Data Warehouse (PDW) sebagai sumber saat ini tidak didukung.

## Menghubungkan ke SQL Server Data Warehouse sebagai sumber
<a name="CHAP_Source.SQLServerDW.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber SQL Server Data Warehouse Anda dengan file. AWS Schema Conversion Tool

**Untuk menyambung ke database sumber SQL Server Data Warehouse**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**.

1. Pilih **Microsoft SQL Server**, lalu pilih **Berikutnya**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi gudang data sumber Microsoft SQL Server secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServerDW.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan konversi Gudang Data SQL Server ke Amazon Redshift
<a name="CHAP_Source.SQLServerDW.ConversionSettings"></a>

Untuk mengedit Gudang Data SQL Server ke pengaturan konversi Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Microsoft SQL Server**, lalu pilih **Microsoft SQL Server — Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Gudang Data SQL Server ke Amazon Redshift.

Pengaturan konversi Gudang Data SQL Server ke Amazon Redshift termasuk opsi untuk AWS SCT hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Gudang Data SQL Server ke pengaturan pengoptimalan konversi Amazon Redshift
<a name="CHAP_Source.SQLServerDW.ConversionOptimizationSettings"></a>

Untuk mengedit SQL Server Data Warehouse ke pengaturan pengoptimalan konversi Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Microsoft SQL Server**, lalu pilih **Microsoft SQL Server — Amazon Redshift**. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Gudang Data SQL Server ke Amazon Redshift.

Pengaturan AWS SCT pengoptimalan konversi Gudang Data SQL Server ke Amazon Redshift termasuk opsi untuk hal-hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan ke Gudang Data Teradata dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Teradata"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Teradata ke Amazon Redshift atau Amazon Redshift dan digunakan dalam kombinasi. AWS Glue 

## Hak istimewa untuk Teradata sebagai sumber
<a name="CHAP_Source.Teradata.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Teradata sebagai sumber:
+ PILIH DI DBC 
+ PILIH DI SYSUDTLIB 
+ PILIH PADA SYSLIB 
+ PILIH PADA *<source\$1database>* 
+ BUAT PROSEDUR PADA *<source\$1database>* 

Pada contoh sebelumnya, ganti *<source\$1database>* placeholder dengan nama database sumber.

AWS SCT memerlukan hak istimewa CREATE PROCEDURE untuk melakukan PROSEDUR BANTUAN terhadap semua prosedur dalam database sumber. AWS SCT tidak menggunakan hak istimewa ini untuk membuat objek baru di database Teradata sumber Anda.

## Menghubungkan ke Teradata sebagai sumber
<a name="CHAP_Source.Teradata.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Teradata Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Teradata**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. **Pilih **Teradata**, lalu pilih Berikutnya.** 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Teradata secara manual, gunakan petunjuk berikut:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Teradata.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

### Menggunakan otentikasi LDAP dengan sumber Teradata
<a name="CHAP_Source.Teradata.Connecting.LDAP"></a>

Untuk mengatur otentikasi Lightweight Directory Access Protocol (LDAP) untuk pengguna Teradata yang menjalankan Microsoft Active Directory di Windows, gunakan prosedur berikut. 

Dalam prosedur berikut, domain Active Directory adalah`test.local.com`. Server Windows adalah`DC`, dan dikonfigurasi dengan pengaturan default. Skrip berikut membuat akun `test_ldap` Active Directory, dan akun ini menggunakan `test_ldap` kata sandi.

**Untuk mengatur otentikasi LDAP untuk pengguna Teradata yang menjalankan Microsoft Active Directory di Windows**

1. Di `/opt/teradata/tdat/tdgss/site` direktori, edit file`TdgssUserConfigFile.xml`. Ubah bagian LDAP menjadi yang berikut.

   ```
   AuthorizationSupported="no"
   
   LdapServerName="DC.test.local.com"
   LdapServerPort="389"
   LdapServerRealm="test.local.com"
   LdapSystemFQDN="dc= test, dc= local, dc=com"
   LdapBaseFQDN="dc=test, dc=local, dc=com"
   ```

1. Terapkan perubahan dengan menjalankan konfigurasi sebagai berikut.

   ```
   #cd /opt/teradata/tdgss/bin
   #./run_tdgssconfig
   ```

1. Uji konfigurasi dengan menjalankan perintah berikut.

   ```
   # /opt/teradata/tdat/tdgss/14.10.03.01/bin/tdsbind -u test_ldap -w test_ldap
   ```

   Output harus serupa dengan yang berikut ini.

   ```
   LdapGroupBaseFQDN: dc=Test, dc=local, dc=com
   LdapUserBaseFQDN: dc=Test, dc=local, dc=com
   LdapSystemFQDN: dc= test, dc= local, dc=com
   LdapServerName: DC.test.local.com
   LdapServerPort: 389
   LdapServerRealm: test.local.com
   LdapClientUseTls: no
   LdapClientTlsReqCert: never
   LdapClientMechanism: SASL/DIGEST-MD5
   LdapServiceBindRequired: no
   LdapClientTlsCRLCheck: none
   LdapAllowUnsafeServerConnect: yes
   UseLdapConfig: no
   AuthorizationSupported: no
   FQDN: CN=test, CN=Users, DC=Anthem, DC=local, DC=com
   AuthUser: ldap://DC.test.local.com:389/CN=test1,CN=Users,DC=test,DC=local,DC=com
   DatabaseName: test
   Service: tdsbind
   ```

1. Mulai ulang TPA menggunakan perintah berikut.

   ```
   #tpareset -f "use updated TDGSSCONFIG GDO"
   ```

1. Buat pengguna yang sama di database Teradata seperti di Active Directory, seperti yang ditunjukkan berikut.

   ```
   CREATE USER test_ldap AS PERM=1000, PASSWORD=test_ldap;
   GRANT LOGON ON ALL TO test WITH NULL PASSWORD;
   ```

Jika Anda mengubah kata sandi pengguna di Active Directory untuk pengguna LDAP Anda, tentukan kata sandi baru ini selama koneksi ke Teradata dalam mode LDAP. Dalam mode DEFAULT, Anda terhubung ke Teradata dengan menggunakan nama pengguna LDAP dan kata sandi apa pun.

## Mengkonfigurasi pengumpulan statistik di gudang data Teradata sumber Anda
<a name="CHAP_Source.Teradata.ConfigureStatistics"></a>

Untuk mengonversi gudang data Teradata sumber Anda, AWS SCT gunakan statistik untuk mengoptimalkan gudang data Amazon Redshift yang telah dikonversi. Anda dapat mengumpulkan statistik AWS SCT atau mengunggah file statistik. Untuk informasi selengkapnya, lihat [Mengumpulkan atau mengunggah statistik](CHAP_Converting.DW.md#CHAP_Converting.DW.Statistics).

Untuk memastikan bahwa AWS SCT dapat mengumpulkan statistik dari gudang data Anda, selesaikan tugas prasyarat berikut.

**Untuk mengumpulkan statistik dari gudang data Teradata Anda**

1. Jalankan kueri berikut untuk mengingat statistik untuk semua tabel di gudang data Anda.

   ```
   collect summary statistics on table_name;
   ```

   Pada contoh sebelumnya, ganti *table\$1name* dengan nama tabel sumber Anda. Ulangi kueri untuk setiap tabel yang Anda konversi.

1. Jalankan kueri berikut untuk menentukan string akun untuk pengguna, yang Anda gunakan untuk mengonversi gudang data Anda.

   ```
   select * from dbc.accountinfo where username ='user_name'
   ```

1. Aktifkan pencatatan kueri untuk pengguna tertentu menggunakan string akun dari contoh sebelumnya.

   ```
   BEGIN QUERY LOGGING WITH OBJECTS, SQL ON ALL ACCOUNT=('$M$BUSI$S$D$H');
   ```

   Atau, aktifkan pencatatan kueri untuk semua pengguna database.

   ```
   BEGIN QUERY LOGGING WITH SQL, OBJECTS LIMIT SQLTEXT=0 ON ALL;
   ```

Setelah Anda menyelesaikan pengumpulan statistik gudang data, matikan pencatatan kueri. Untuk melakukannya, Anda dapat menggunakan contoh kode berikut.

```
end query logging with explain, objects, sql on all account=(' $M$BUSI$S$D$H');
```

## Mengumpulkan statistik dalam mode offline dari gudang data Teradata sumber Anda
<a name="CHAP_Source.Teradata.CollectStatistics"></a>

Setelah Anda mengonfigurasi pengumpulan statistik di gudang data Teradata Anda, Anda dapat mengumpulkan statistik dalam proyek Anda AWS SCT . Atau, Anda dapat menggunakan skrip Basic Teradata Query (BTEQ) untuk mengumpulkan statistik dalam mode offline. Kemudian, Anda dapat mengunggah file dengan statistik yang dikumpulkan ke AWS SCT proyek Anda. Untuk informasi selengkapnya, lihat [Mengumpulkan atau mengunggah statistik](CHAP_Converting.DW.md#CHAP_Converting.DW.Statistics).

**Untuk mengumpulkan statistik dari gudang data Teradata Anda dalam mode offline**

1. Buat `off-line_stats.bteq` skrip dengan konten berikut.

   ```
   .OS IF EXIST column-stats-tera.csv del /F column-stats-tera.csv
   .OS IF EXIST table-stats-tera.csv del /F table-stats-tera.csv
   .OS IF EXIST column-skew-script-tera.csv del /F column-skew-script-tera.csv
   .OS IF EXIST column-skew-stats-tera.csv del /F column-skew-stats-tera.csv
   .OS IF EXIST query-stats-tera.csv  del /F query-stats-tera.csv
   .LOGON your_teradata_server/your_login, your_password
   .EXPORT REPORT FILE = table-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   SELECT
       '"' || OREPLACE(COALESCE(c.DatabaseName, ''), '"', '""') || '";' ||
       '"' || OREPLACE(COALESCE(c.TableName, ''), '"', '""') || '";' ||
       '"' || TRIM(COALESCE(s.reference_count, '0')) || '";' ||
       '"' || TRIM(COALESCE(CAST(p.RowCount AS BIGINT), '0')) || '";' ||
       '"' || CAST(CAST(w.size_in_mb AS DECIMAL (38,1) FORMAT 'Z9.9') AS VARCHAR(38)) || '";' ||
       '"' || TRIM(COALESCE(r.stat_fk_dep_count, '0')) || '";' ||
       '"' || CAST(CAST(current_timestamp(0) as timestamp(0) format 'YYYY-MM-DDBHH:MI:SS') as VARCHAR(19)) || '"'
   (TITLE '"database_name";"table_name";"reference_count";"row_count";"size_in_mb";"stat_fk_dep_count";"current_ts"')
   FROM (select databasename, tablename
           from DBC.tablesv
           where tablekind IN ('T','O')
           and databasename = 'your_database_name'
            ) c
   left join
           (select DatabaseName, TableName, max(RowCount) RowCount
           from dbc.tableStatsv
           group by 1,2)p
   on p.databasename = c.databasename
   and p.tablename = c.tablename
   left join
           (SELECT r.ChildDB as DatabaseName,
           r.ChildTable as TableName,
           COUNT(DISTINCT r.ParentTable) reference_count
           FROM DBC.All_RI_ChildrenV r
           GROUP BY r.ChildDB, r.ChildTable) s
   on s.databasename = c.databasename
   and s.tablename = c.tablename
   left join
           (SELECT r.ParentDB as DatabaseName,
           r.ParentTable as TableName,
           COUNT(DISTINCT r.ChildTable) stat_fk_dep_count
           FROM DBC.All_RI_ParentsV r
           GROUP BY r.ParentDB, r.ParentTable) r
   on r.databasename = c.databasename
   and r.tablename = c.tablename
   left join
           (select databasename, tablename,
           sum(currentperm)/1024/1024 as size_in_mb
           from dbc.TableSizeV
           group by 1,2) w
   on w.databasename = c.databasename
   and w.tablename = c.tablename
   WHERE COALESCE(r.stat_fk_dep_count,0) + COALESCE(CAST(p.RowCount AS BIGINT),0) + COALESCE(s.reference_count,0) > 0;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
       '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' ||
   
   SELECT
   	'"' || OREPLACE(COALESCE(trim(tv.DatabaseName), ''), '"', '""') || '";' ||
       	'"' || OREPLACE(COALESCE(trim(tv.TableName), ''), '"', '""') || '";' ||
   	'"' || OREPLACE(COALESCE(trim(tv.columnname), ''), '"', '""') || '";' ||
                            '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' ||
   
   	'"' || CAST(current_timestamp AS VARCHAR(19)) || '"' (TITLE '"database_name";"table_name";"column_name";"cardinality";"current_ts"')
   FROM dbc.columnsv tv
   LEFT JOIN
   (
   	SELECT
   		c.DatabaseName	AS DATABASE_NAME,
   		c.TABLENAME 	AS TABLE_NAME,
   		c.ColumnName	AS COLUMN_NAME,
   		c.UniqueValueCount	AS CARD
   	FROM dbc.tablestatsv c
   	WHERE c.DatabaseName = 'your_database_name'
   	AND c.RowCount <> 0
   ) t2
   ON tv.DATABASENAME = t2.DATABASE_NAME
   AND tv.TABLENAME = t2.TABLE_NAME
   AND tv.COLUMNNAME = t2.COLUMN_NAME
   WHERE t2.card > 0;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-skew-script-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   SELECT
   'SELECT CAST(''"' || TRIM(c.DatabaseName) || '";"' || TRIM(c.TABLENAME)  || '";"' || TRIM(c.COLUMNNAME) || '";"'' ||
   TRIM(CAST(COALESCE(MAX(cnt) * 1.0 / SUM(cnt), 0) AS NUMBER FORMAT ''9.9999'')) || ''";"'' ||
   CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || ''"'' AS VARCHAR(512))
   AS """DATABASE_NAME"";""TABLE_NAME"";""COLUMN_NAME"";""SKEWED"";""CURRENT_TS"""
   FROM(
   SELECT	COUNT(*) AS cnt
   FROM "' || c.DATABASENAME || '"."' || c.TABLENAME ||
   '" GROUP BY "' || c.COLUMNNAME || '") t' ||
   	CASE WHEN ROW_NUMBER() OVER(PARTITION BY c.DATABASENAME
   	ORDER BY c.TABLENAME DESC, c.COLUMNNAME DESC) <> 1
   	THEN ' UNION ALL'
   	ELSE ';' END (TITLE '--SKEWED--')
   FROM	dbc.columnsv c
   INNER JOIN
   (SELECT databasename, TABLENAME
   FROM dbc.tablesv  WHERE tablekind = 'T'
   AND 	databasename = 'your_database_name') t
   ON t.databasename = c.databasename
   AND t.TABLENAME = c.TABLENAME
   INNER JOIN
   (SELECT databasename, TABLENAME, columnname FROM  dbc.indices GROUP BY 1,2,3
   WHERE  TRANSLATE_CHK (databasename USING LATIN_TO_UNICODE) + TRANSLATE_CHK (TABLENAME USING LATIN_TO_UNICODE) + TRANSLATE_CHK (columnname USING LATIN_TO_UNICODE) = 0
   ) i
   ON i.databasename = c.databasename
   AND i.TABLENAME = c.TABLENAME
   AND i.columnname = c.columnname
   WHERE c.ColumnType NOT IN ('CO','JN','N','++','VA','UT','AN','XM','A1','BO')
   ORDER BY c.TABLENAME, c.COLUMNNAME;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-skew-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   .RUN FILE = column-skew-script-tera.csv
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = query-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 32000
   
   SELECT
     '"' || RTRIM(CAST(SqlTextInfo AS VARCHAR(31900)), ';') || '";"' ||
     TRIM(QueryCount) || '";"' ||
     TRIM(QueryId) || '";"' ||
     TRIM(SqlRowNo) || '";"' ||
     TRIM(QueryParts) || '";"' ||
     CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || '"'
   (TITLE '"query_text";"query_count";"query_id";"sql_row_no";"query_parts";"current_ts"')
     FROM
     (
       SELECT  QueryId,  SqlTextInfo, SqlRowNo, QueryParts, QueryCount,
       SUM(QueryFirstRow) OVER (ORDER BY QueryCount DESC, QueryId ASC, SqlRowNo ASC
       ROWS UNBOUNDED PRECEDING) AS topN
       FROM
       (SELECT QueryId,  SqlTextInfo, SqlRowNo, QueryParts, QueryCount,
         CASE WHEN
         ROW_NUMBER() OVER (PARTITION BY QueryCount, SqlTextInfo ORDER BY QueryId, SqlRowNo) = 1 AND SqlRowNo = 1
       THEN 1 ELSE 0 END AS QueryFirstRow
       FROM (
         SELECT q.QueryId,  q.SqlTextInfo, q.SqlRowNo,
         MAX(q.SqlRowNo) OVER (PARTITION BY q.QueryId) QueryParts,
         COUNT(q.SqlTextInfo) OVER (PARTITION BY q.SqlTextInfo) QueryCount
         FROM DBC.dbqlsqltbl q
         INNER JOIN
         (
           SELECT QueryId
           FROM DBC.DBQLogTbl t
           WHERE TRIM(t.StatementType) IN ('SELECT')
           AND TRIM(t.AbortFlag) = '' AND t.ERRORCODE = 0
           AND 	(CASE WHEN 'All users' IN ('All users') THEN 'All users' ELSE TRIM(t.USERNAME) END) IN ('All users') --user_name list
           AND t.StartTime > CURRENT_TIMESTAMP - INTERVAL '30' DAY
           GROUP BY 1
         ) t
         ON q.QueryId = t.QueryId
         INNER JOIN
         (
           SELECT QueryId
           FROM DBC.QryLogObjectsV
           WHERE ObjectDatabaseName = 'your_database_name'
           AND ObjectType = 'Tab'
           AND CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY
           GROUP BY 1
         ) r
         ON r.QueryId = t.QueryId
         WHERE q.CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY
       ) t
     ) t
     WHERE SqlTextInfo NOT LIKE '%";"%'
     ) q
     WHERE
     QueryParts >=1
     AND topN <= 50
     ORDER BY QueryCount DESC, QueryId, SqlRowNo
     QUALIFY COUNT(QueryId) OVER (PARTITION BY QueryId) = QueryParts;
   
   .EXPORT RESET
   
   .LOGOFF
   
   .QUIT
   ```

1. Buat `td_run_bteq.bat` file yang menjalankan skrip BTEQ yang Anda buat pada langkah sebelumnya. Gunakan konten berikut untuk file ini.

   ```
   @echo off > off-line_stats1.bteq & setLocal enableDELAYedexpansion
   @echo off > off-line_stats2.bteq & setLocal enableDELAYedexpansion
   
   set old1=your_teradata_server
   set new1=%1
   set old2=your_login
   set new2=%2
   set old3=your_database_name
   set new3=%3
   set old4=your_password
   set /p new4=Input %2 pass?
   
   for /f "tokens=* delims= " %%a in (off-line_stats.bteq) do (
   set str1=%%a
   set str1=!str1:%old1%=%new1%!
   >> off-line_stats1.bteq echo !str1!
   )
   
   for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do (
   set str2=%%a
   set str2=!str2:%old2%=%new2%!
   >> off-line_stats2.bteq echo !str2!
   )
   
   type nul > off-line_stats1.bteq
   
   for /f "tokens=* delims= " %%a in (off-line_stats2.bteq) do (
   set str3=%%a
   set str3=!str3:%old3%=%new3%!
   >> off-line_stats1.bteq echo !str3!
   )
   
   type nul > off-line_stats2.bteq
   
   for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do (
   set str4=%%a
   set str4=!str4:%old4%=%new4%!
   >> off-line_stats2.bteq echo !str4!
   )
   
   del .\off-line_stats1.bteq
   
   echo export starting...
   
   bteq -c UTF8 < off-line_stats.bteq > metadata_export.log
   
   pause
   ```

1. Buat `runme.bat` file yang menjalankan file batch yang Anda buat di langkah sebelumnya. Gunakan konten berikut untuk file ini.

   ```
   .\td_run_bteq.bat ServerName UserName DatabaseName
   ```

   Dalam `runme.bat` file, ganti*ServerName*,*UserName*, dan *DatabaseName* dengan nilai yang berlaku.

   Kemudian, jalankan `runme.bat` file tersebut. Ulangi langkah ini untuk setiap gudang data yang Anda konversi ke Amazon Redshift.

Setelah Anda menjalankan skrip ini, Anda menerima tiga file dengan statistik untuk setiap database. Anda dapat mengunggah file-file ini ke AWS SCT proyek Anda. Untuk melakukannya, pilih gudang data Anda dari panel kiri proyek Anda, dan buka menu konteks (klik kanan). Pilih **Unggah Statistik**.

## Pengaturan konversi Teradata ke Amazon Redshift
<a name="CHAP_Source.Teradata.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Teradata ke Amazon Redshift, **pilih Pengaturan AWS SCT di, lalu pilih** Pengaturan konversi.** Dari daftar atas, pilih **Teradata**, lalu pilih **Teradata — Amazon** Redshift. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Teradata ke Amazon Redshift.

Pengaturan konversi Teradata ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.
+ Untuk menggunakan daftar kolom eksplisit dalam kode yang dikonversi untuk `SELECT *` pernyataan, pilih **Gunakan deklarasi kolom eksplisit**.
+ Untuk meniru perilaku kunci primer dan unik di klaster Amazon Redshift Anda, **pilih Emulasikan perilaku kunci primer dan** unik.

  Amazon Redshift tidak menerapkan kunci unik dan utama dan menggunakannya hanya untuk tujuan informasi. Jika Anda menggunakan batasan ini dalam kode Anda, maka pastikan itu AWS SCT mengemulasi perilaku mereka dalam kode yang dikonversi.
+ Untuk memastikan keunikan data dalam tabel Amazon Redshift target. Untuk melakukannya, pilih **Emulasikan perilaku tabel SET**.

  Teradata membuat tabel menggunakan elemen `SET` sintaks sebagai opsi default. Anda tidak dapat menambahkan baris duplikat dalam `SET` tabel. Jika kode sumber Anda tidak menggunakan kendala keunikan ini, matikan opsi ini. Dalam hal ini, kode yang dikonversi bekerja lebih cepat.

  Jika kode sumber Anda menggunakan `SET` opsi dalam tabel sebagai kendala keunikan, aktifkan opsi ini. Dalam hal ini, AWS SCT menulis ulang `INSERT..SELECT` pernyataan dalam kode yang dikonversi untuk meniru perilaku database sumber Anda.

## Pengaturan pengoptimalan konversi Teradata ke Amazon Redshift
<a name="CHAP_Source.Teradata.ConversionOptimizationSettings"></a>

**Untuk mengedit pengaturan pengoptimalan konversi Teradata ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu pilih Pengaturan konversi.** Dari daftar atas, pilih **Teradata**, lalu pilih **Teradata — Amazon** Redshift. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Teradata ke Amazon Redshift.

Pengaturan pengoptimalan konversi Teradata ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.

# Menghubungkan database AWS Schema Conversion Tool ke Vertica
<a name="CHAP_Source.Vertica"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode, dan kode aplikasi dari Vertica ke Amazon Redshift.

## Hak istimewa untuk Vertica sebagai sumber
<a name="CHAP_Source.Vertica.Permissions"></a>

Hak istimewa berikut diperlukan untuk menggunakan Vertica sebagai sumber:
+ PENGGUNAAN PADA SKEMA *<schema\$1name>* 
+ PENGGUNAAN PADA SKEMA PUBLIK 
+ PILIH PADA SEMUA TABEL DALAM SKEMA *<schema\$1name>* 
+ PILIH PADA SEMUA URUTAN DALAM SKEMA *<schema\$1name>* 
+ JALANKAN PADA SEMUA FUNGSI DALAM SKEMA *<schema\$1name>* 
+ JALANKAN PADA PROSEDUR *<schema\$1name.procedure\$1name(procedure\$1signature)>* 

Pada contoh sebelumnya, ganti placeholder sebagai berikut:
+ Ganti *schema\$1name* dengan nama skema sumber.
+ Ganti *procedure\$1name* dengan nama prosedur sumber. Ulangi hibah untuk setiap prosedur yang Anda konversi. 
+ Ganti *procedure\$1signature* dengan daftar tipe argumen prosedur yang dibatasi koma.

## Menghubungkan ke Vertica sebagai sumber
<a name="CHAP_Source.Vertica.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Vertica Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Vertica**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**.

1. Pilih **Vertica**, lalu pilih **Berikutnya**.

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Rahasia**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Vertica secara manual, gunakan instruksi berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Vertica.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda.

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

## Pengaturan konversi Vertica ke Amazon Redshift
<a name="CHAP_Source.Vertica.ConversionSettings"></a>

Untuk mengedit pengaturan konversi Vertica ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Vertica**, lalu pilih **Vertica — Amazon Redshift**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Vertica ke Amazon Redshift.

Pengaturan konversi Vertica ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatur jumlah maksimum tabel yang AWS SCT dapat diterapkan ke cluster Amazon Redshift target Anda.

  Untuk **Jumlah maksimum tabel untuk klaster Amazon Redshift target, pilih jumlah tabel yang AWS SCT dapat diterapkan ke cluster** Amazon Redshift Anda.

  Amazon Redshift memiliki kuota yang membatasi tabel penggunaan untuk jenis node cluster yang berbeda. Jika Anda memilih **Otomatis**, AWS SCT tentukan jumlah tabel yang akan diterapkan ke klaster Amazon Redshift target Anda tergantung pada jenis node. Secara opsional, pilih nilai secara manual. Untuk informasi selengkapnya, lihat [Kuota dan batasan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam *Panduan Manajemen Amazon Redshift*.

  AWS SCT mengonversi semua tabel sumber Anda, meskipun ini lebih dari yang dapat disimpan oleh cluster Amazon Redshift Anda. AWS SCT menyimpan kode yang dikonversi dalam proyek Anda dan tidak menerapkannya ke database target. Jika Anda mencapai kuota klaster Amazon Redshift untuk tabel saat menerapkan kode yang dikonversi, maka akan AWS SCT menampilkan pesan peringatan. Selain itu, AWS SCT terapkan tabel ke cluster Amazon Redshift target Anda hingga jumlah tabel mencapai batas.
+ Untuk memigrasikan partisi tabel sumber ke tabel terpisah di Amazon Redshift. Untuk melakukannya, pilih **Gunakan tampilan UNION ALL** dan masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk tabel sumber tunggal.

  Amazon Redshift tidak mendukung partisi tabel. Untuk meniru perilaku ini dan membuat kueri berjalan lebih cepat, AWS SCT dapat memigrasikan setiap partisi tabel sumber Anda ke tabel terpisah di Amazon Redshift. Kemudian, AWS SCT buat tampilan yang menyertakan data dari semua tabel ini.

  AWS SCT secara otomatis menentukan jumlah partisi dalam tabel sumber Anda. Bergantung pada jenis partisi tabel sumber, angka ini dapat melebihi kuota untuk tabel yang dapat Anda terapkan ke cluster Amazon Redshift Anda. Untuk menghindari mencapai kuota ini, masukkan jumlah maksimum tabel target yang AWS SCT dapat dibuat untuk partisi dari tabel sumber tunggal. Opsi default adalah 368 tabel, yang mewakili partisi selama 366 hari dalam setahun dan dua tabel untuk `NO RANGE` dan `UNKNOWN` partisi.
+ Untuk menerapkan kompresi ke kolom tabel Amazon Redshift. Untuk melakukannya, pilih **Gunakan pengkodean kompresi**.

  AWS SCT menetapkan pengkodean kompresi ke kolom secara otomatis menggunakan algoritme Amazon Redshift default. Untuk informasi selengkapnya, lihat [Pengkodean kompresi di Panduan](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) Pengembang *Database Amazon Redshift*.

  Secara default, Amazon Redshift tidak menerapkan kompresi ke kolom yang didefinisikan sebagai kunci pengurutan dan distribusi. Anda dapat mengubah perilaku ini dan menerapkan kompresi ke kolom ini. Untuk melakukannya, pilih **Gunakan pengkodean kompresi untuk kolom KEY**. Anda dapat memilih opsi ini hanya ketika Anda memilih opsi **Gunakan pengkodean kompresi**.

## Pengaturan pengoptimalan konversi Vertica ke Amazon Redshift
<a name="CHAP_Source.Vertica.ConversionOptimizationSettings"></a>

Untuk mengedit pengaturan pengoptimalan konversi Vertica ke Amazon Redshift, **pilih** Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi. Dari daftar atas, pilih **Vertica**, lalu pilih **Vertica — Amazon Redshift**. Di panel kiri, pilih **Strategi optimasi**. AWS SCT menampilkan pengaturan pengoptimalan konversi untuk konversi Vertica ke Amazon Redshift.

Pengaturan pengoptimalan konversi Vertica ke Amazon Redshift AWS SCT di menyertakan opsi untuk hal berikut:
+ Untuk bekerja dengan optimasi tabel otomatis. Untuk melakukannya, pilih **Gunakan penyetelan tabel otomatis Amazon Redshift**.

  Optimalisasi tabel otomatis adalah proses self-tuning di Amazon Redshift yang secara otomatis mengoptimalkan desain tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan pengoptimalan tabel otomatis](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) di Panduan *Pengembang Database Amazon Redshift*.

  Untuk hanya mengandalkan optimasi tabel otomatis, pilih **None** for **Initial key selection strategy**.
+ Untuk memilih kunci sortir dan distribusi menggunakan strategi Anda.

  Anda dapat memilih kunci sortir dan distribusi menggunakan metadata Amazon Redshift, informasi statistik, atau kedua opsi ini. Untuk **strategi pemilihan kunci awal** pada tab **Strategi optimasi**, pilih salah satu opsi berikut:
  + Gunakan metadata, abaikan informasi statistik
  + Abaikan metadata, gunakan informasi statistik
  + Gunakan metadata dan informasi statistik

  Bergantung pada opsi yang Anda pilih, Anda dapat memilih strategi pengoptimalan. Kemudian, untuk setiap strategi, masukkan nilainya (0-100). Nilai-nilai ini menentukan bobot setiap strategi. Dengan menggunakan nilai bobot ini, AWS SCT mendefinisikan bagaimana setiap aturan mempengaruhi pilihan distribusi dan kunci pengurutan. Nilai default didasarkan pada praktik terbaik AWS migrasi.

  Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk mendefinisikannya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.
+ Untuk mengkonfigurasi detail strategi.

  Selain menentukan bobot untuk setiap strategi pengoptimalan, Anda dapat mengonfigurasi pengaturan pengoptimalan. Untuk melakukannya, pilih **Optimasi konversi**. 
  + Untuk **Batas kolom kunci Urutkan**, masukkan jumlah kolom maksimum di tombol sortir.
  + Untuk **nilai ambang miring**, masukkan persentase (0-100) dari nilai miring untuk kolom. AWS SCT mengecualikan kolom dengan nilai miring lebih besar dari ambang batas dari daftar kandidat untuk kunci distribusi. AWS SCT mendefinisikan nilai miring untuk kolom sebagai rasio persentase dari jumlah kemunculan nilai yang paling umum dengan jumlah total catatan.
  + Untuk **kueri N Teratas dari tabel riwayat kueri**, masukkan nomor (1-100) kueri yang paling sering digunakan untuk dianalisis.
  + Untuk **Pilih pengguna statistik**, pilih pengguna database yang ingin Anda analisis statistik kueri.

  Juga, pada tab **Strategi optimasi**, Anda dapat menentukan ukuran tabel kecil untuk strategi **Temukan tabel kecil**. Untuk **jumlah baris tabel Min** dan **Jumlah baris tabel Maks**, masukkan jumlah baris minimum dan maksimum dalam tabel untuk menganggapnya sebagai tabel kecil. AWS SCT menerapkan gaya `ALL` distribusi ke tabel kecil. Dalam hal ini, salinan seluruh tabel didistribusikan ke setiap node.