

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

# Streaming data ke tabel dengan Amazon Data Firehose
<a name="s3-tables-integrating-firehose"></a>

Amazon Data Firehose adalah layanan yang dikelola sepenuhnya untuk mengirimkan [data streaming](https://aws.amazon.com//streaming-data/) real-time ke tujuan seperti Amazon S3, Amazon Redshift, OpenSearch Amazon Service, tabel SplunkApache Iceberg, dan titik akhir HTTP kustom atau titik akhir HTTP yang dimiliki oleh penyedia layanan pihak ketiga yang didukung. Dengan Amazon Data Firehose, Anda tidak perlu menulis aplikasi atau mengelola sumber daya. Anda mengonfigurasi produsen data Anda untuk mengirim data ke Firehose, dan secara otomatis mengirimkan data ke tujuan yang Anda tentukan. Anda juga dapat mengonfigurasi Firehose untuk mengubah data Anda sebelum mengirimkannya. Untuk mempelajari lebih lanjut tentang Amazon Data Firehose, lihat [Apa itu Amazon Data Firehose](https://docs.aws.amazon.com//firehose/latest/dev/what-is-this-service.html)?

Selesaikan langkah-langkah ini untuk mengatur streaming Firehose ke tabel di bucket tabel S3:

1.  [Integrasikan bucket tabel Anda dengan layanan AWS analitik](s3-tables-integrating-aws.md). 

1. Konfigurasikan Firehose untuk mengirimkan data ke tabel S3 Anda. Untuk melakukannya, Anda [membuat peran layanan AWS Identity and Access Management (IAM) yang memungkinkan Firehose mengakses tabel Anda](#firehose-role-s3tables).

1. Berikan izin eksplisit peran layanan Firehose ke namespace tabel atau tabel Anda. Untuk informasi selengkapnya, lihat [Memberikan izin yang diperlukan](https://docs.aws.amazon.com/firehose/latest/dev/apache-iceberg-prereq.html#s3-tables-prerequisites).

1. [Buat aliran Firehose yang merutekan data ke tabel Anda.](#firehose-stream-tables)

## Membuat peran Firehose untuk menggunakan tabel S3 sebagai tujuan
<a name="firehose-role-s3tables"></a>

Firehose memerlukan [peran layanan](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-service.html) IAM dengan izin khusus untuk mengakses AWS Glue tabel dan menulis data ke tabel S3. Anda membutuhkan ini untuk menyediakan peran IAM ini saat membuat aliran Firehose.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. **Di panel navigasi kiri, pilih Kebijakan**

1. Pilih **Buat kebijakan**, lalu pilih **JSON** di editor kebijakan.

1. Tambahkan kebijakan inline berikut yang memberikan izin ke semua database dan tabel di katalog data Anda. Jika mau, Anda dapat memberikan izin hanya untuk tabel dan database tertentu. Untuk menggunakan kebijakan ini, ganti `user input placeholders` dengan informasi Anda sendiri.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3TableAccessViaGlueFederation",
               "Effect": "Allow",
               "Action": [
                   "glue:GetTable",
                   "glue:GetDatabase",
                   "glue:UpdateTable"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog/*",
                   "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog",
                   "arn:aws:glue:us-east-1:111122223333:catalog",
                   "arn:aws:glue:us-east-1:111122223333:database/*",
                   "arn:aws:glue:us-east-1:111122223333:table/*/*"
               ]
           },
           {
               "Sid": "S3DeliveryErrorBucketPermission",
               "Effect": "Allow",
               "Action": [
                   "s3:AbortMultipartUpload",
                   "s3:GetBucketLocation",
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:ListBucketMultipartUploads",
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::error delivery bucket",
                   "arn:aws:s3:::error delivery bucket/*"
               ]
           },
           {
               "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource",
               "Effect": "Allow",
               "Action": [
                   "kinesis:DescribeStream",
                   "kinesis:GetShardIterator",
                   "kinesis:GetRecords",
                   "kinesis:ListShards"
               ],
               "Resource": "arn:aws:kinesis:us-east-1:111122223333:stream/stream-name"
           },
           {
               "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation",
               "Effect": "Allow",
               "Action": [
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           },
           {
               "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:GenerateDataKey"
               ],
               "Resource": [
                   "arn:aws:kms:us-east-1:111122223333:key/KMS-key-id"
               ],
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "s3.us-east-1.amazonaws.com"
                   },
                   "StringLike": {
                       "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::error delivery bucket/prefix*"
                   }
               }
           },
           {
               "Sid": "LoggingInCloudWatch",
               "Effect": "Allow",
               "Action": [
                   "logs:PutLogEvents"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name:log-stream:log-stream-name"
               ]
           },
           {
               "Sid": "RequiredWhenAttachingLambdaToFirehose",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction",
                   "lambda:GetFunctionConfiguration"
               ],
               "Resource": [
                   "arn:aws:lambda:us-east-1:111122223333:function:function-name:function-version"
               ]
           }
       ]
   }
   ```

------

   Kebijakan ini memiliki pernyataan yang memungkinkan akses ke Kinesis Data Streams, menjalankan fungsi Lambda dan akses ke kunci. AWS KMS Jika Anda tidak menggunakan salah satu sumber daya ini, Anda dapat menghapus pernyataan masing-masing.

   Jika pencatatan kesalahan diaktifkan, Firehose juga mengirimkan kesalahan pengiriman data ke grup CloudWatch log dan aliran Anda. Untuk ini, Anda harus mengonfigurasi grup log dan nama aliran log. Untuk nama grup log dan aliran log, lihat [Memantau Amazon Data Firehose Menggunakan CloudWatch ](https://docs.aws.amazon.com//firehose/latest/dev/controlling-access.html#using-iam-iceberg) Log.

1. Setelah Anda membuat kebijakan, buat peran IAM dengan **AWS layanan** sebagai **jenis entitas Tepercaya**.

1. Untuk **Service atau use case**, pilih **Kinesis**. Untuk **kasus Penggunaan** pilih **Kinesis Firehose**.

1. Pilih **Berikutnya**, lalu pilih kebijakan yang Anda buat sebelumnya.

1. Beri nama peran Anda. Tinjau detail peran Anda, dan pilih **Buat peran**. Peran tersebut akan memiliki kebijakan kepercayaan berikut.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "firehose.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------

## Membuat aliran Firehose ke tabel S3
<a name="firehose-stream-tables"></a>

Prosedur berikut menunjukkan cara membuat aliran Firehose untuk mengirimkan data ke tabel S3 menggunakan konsol. Prasyarat berikut diperlukan untuk menyiapkan aliran Firehose ke tabel S3.

**Prasyarat**
+ [Integrasikan bucket tabel Anda dengan layanan AWS analitik](s3-tables-integrating-aws.md).
  + [Buat namespace](s3-tables-namespace-create.md).
  + [Membuat tabel](s3-tables-create.md).
+ Buat [Role for Firehose untuk mengakses Tabel S3](#firehose-role-s3tables).
+ [Berikan izin yang diperlukan](https://docs.aws.amazon.com/firehose/latest/dev/apache-iceberg-prereq.html#s3-tables-prerequisites) untuk peran layanan Firehose yang Anda buat untuk mengakses tabel.

Untuk memberikan informasi perutean ke Firehose saat mengonfigurasi aliran, Anda menggunakan namespace sebagai nama database dan nama tabel di namespace tersebut. Anda dapat menggunakan nilai-nilai ini di bagian kunci Unik dari konfigurasi aliran Firehose untuk merutekan data ke satu tabel. Anda juga dapat menggunakan nilai-nilai ini untuk rute ke tabel menggunakan ekspresi JSON Query. Untuk informasi selengkapnya, lihat [Merutekan catatan masuk ke satu tabel Gunung Es](https://docs.aws.amazon.com/firehose/latest/dev/apache-iceberg-format-input-record.html). 

**Untuk mengatur aliran Firehose ke tabel S3 (Konsol)**

1. Buka konsol Firehose di. [https://console.aws.amazon.com/firehose/](https://console.aws.amazon.com/firehose/)

1. Pilih **Buat aliran Firehose**.

1. Untuk **Sumber**, pilih salah satu sumber berikut:
   + Amazon Kinesis Data Streams
   + Amazon MSK
   + Langsung PUT

1. Untuk **Tujuan**, pilih **Apache IcebergTabel**.

1. Masukkan nama **aliran Firehose**.

1. Konfigurasikan **pengaturan Sumber** Anda.

1. Untuk **pengaturan Tujuan**, pilih **Akun saat ini** untuk melakukan streaming ke tabel di akun Anda atau **Akun silang** untuk tabel di akun lain.
   + Untuk tabel di **akun saat ini**, pilih katalog Tabel S3 Anda dari tarik-turun **Katalog**.
   + Untuk tabel di **akun Lintas**, masukkan **ARN Katalog** dari katalog yang ingin Anda streaming di akun lain.

1. Konfigurasikan nama database dan tabel menggunakan **konfigurasi Kunci Unik**, JSONQuery ekspresi, atau dalam fungsi Lambda. Untuk informasi selengkapnya, lihat [Rutekan catatan masuk ke satu tabel Gunung Es dan Rute catatan masuk ke tabel Gunung Es](https://docs.aws.amazon.com/firehose/latest/dev/apache-iceberg-format-input-record.html) [yang berbeda di Panduan Pengembang Firehose](https://docs.aws.amazon.com//firehose/latest/dev/apache-iceberg-format-input-record-different.html) Data *Amazon*.

1. Di bawah **Pengaturan Backup**, tentukan **bucket cadangan S3**.

1. Untuk **peran IAM yang ada** di bawah **Pengaturan lanjutan**, pilih peran IAM yang Anda buat untuk Firehose.

1. Pilih **Buat aliran Firehose**.

Untuk informasi selengkapnya tentang setelan lain yang dapat Anda konfigurasikan untuk streaming, lihat [Menyiapkan aliran Firehose di Panduan](https://docs.aws.amazon.com/firehose/latest/dev/apache-iceberg-stream.html) Pengembang *Firehose Data Amazon*.