AWS Data Pipeline tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Data Pipeline dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Salin Data CSV Menggunakan Baris Perintah
Anda dapat membuat dan menggunakan alur untuk menyalin data dari satu bucket Amazon S3 ke lainnya.
Prasyarat
Sebelum memulai tutorial ini, Anda harus menyelesaikan langkah berikut:
-
Pasang dan konfigurasi antarmuka baris perintah (CLI). Untuk informasi selengkapnya, lihat Mengakses AWS Data Pipeline.
-
Pastikan bahwa peran IAM diberi nama DataPipelineDefaultRoledan DataPipelineDefaultResourceRoleada. AWS Data Pipeline Konsol membuat peran ini untuk Anda secara otomatis. Jika Anda belum pernah menggunakan AWS Data Pipeline konsol setidaknya sekali, maka Anda harus membuat peran ini secara manual. Untuk informasi selengkapnya, lihat Peran IAM untuk AWS Data Pipeline.
Mendefinisikan Alur dalam Format JSON
Contoh skenario ini menunjukkan bagaimana menggunakan definisi alur JSON dan AWS Data Pipeline CLI untuk menjadwalkan menyalin data antara dua bucket Amazon S3 pada interval waktu tertentu. Ini adalah file JSON definisi alur lengkap diikuti dengan penjelasan untuk setiap bagiannya.
catatan
Kami merekomendasikan bahwa Anda menggunakan editor teks yang dapat membantu Anda memverifikasi sintaks file yang diformat JSON, dan nama file menggunakan ekstensi file .json.
Dalam contoh ini, untuk kejelasan, kita melewatkan bidang opsional dan hanya menampilkan bidang yang diperlukan. File JSON alur lengkap untuk contoh ini adalah:
{ "objects": [ { "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day" }, { "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://
example-bucket/source/inputfile.csv
" }, { "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://example-bucket/destination/outputfile.csv
" }, { "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "DataPipelineDefaultRole
", "resourceRole": "DataPipelineDefaultResourceRole
" }, { "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" } } ] }
Jadwal
Alur mendefinisikan jadwal dengan tanggal mulai dan akhir, bersama dengan periode untuk menentukan seberapa sering aktivitas dalam alur ini berjalan.
{ "id": "MySchedule", "type": "Schedule", "startDateTime": "2013-08-18T00:00:00", "endDateTime": "2013-08-19T00:00:00", "period": "1 day" },
Simpul Data Amazon S3
Selanjutnya, komponen DataNode pipeline input S3 menentukan lokasi untuk file input; dalam hal ini, lokasi bucket Amazon S3. DataNodeKomponen input S3 didefinisikan oleh bidang-bidang berikut:
{ "id": "S3Input", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://
example-bucket/source/inputfile.csv
" },
- Id
-
Nama yang ditetapkan pengguna untuk lokasi input (label untuk referensi Anda saja).
- Tipe
-
Jenis komponen pipeline, yaitu “S3DataNode” agar sesuai dengan lokasi di mana data berada, di bucket Amazon S3.
- Jadwal
-
Referensi ke komponen jadwal yang kita buat di baris sebelumnya dari file JSON berlabel “”. MySchedule
- Jalur
-
Jalan ke data yang terkait dengan simpul data. Sintaks untuk simpul data ditentukan oleh tipenya. Sebagai contoh, sintaks untuk jalur Amazon S3 mengikuti sintaks yang berbeda yang sesuai untuk tabel basis data.
Selanjutnya, DataNode komponen output S3 mendefinisikan lokasi tujuan output untuk data. Ini mengikuti format yang sama dengan DataNode komponen input S3, kecuali nama komponen dan jalur yang berbeda untuk menunjukkan file target.
{ "id": "S3Output", "type": "S3DataNode", "schedule": { "ref": "MySchedule" }, "filePath": "s3://
example-bucket/destination/outputfile.csv
" },
Sumber Daya
Ini adalah definisi sumber daya komputasi yang melakukan operasi penyalinan. Dalam contoh ini, AWS Data Pipeline harus secara otomatis membuat sebuah EC2 instance untuk melakukan tugas copy dan mengakhiri sumber daya setelah tugas selesai. Bidang yang didefinisikan di sini mengontrol pembuatan dan fungsi EC2 instance yang melakukan pekerjaan. Sumber EC2 daya didefinisikan oleh bidang-bidang berikut:
{ "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": { "ref": "MySchedule" }, "instanceType": "m1.medium", "role": "
DataPipelineDefaultRole
", "resourceRole": "DataPipelineDefaultResourceRole
" },
- Id
Nama yang ditetapkan pengguna untuk jadwal alur, yang merupakan label untuk referensi Anda saja.
- Tipe
Jenis sumber daya komputasi untuk melakukan pekerjaan; dalam hal ini, sebuah EC2 instance. Ada jenis sumber daya lain yang tersedia, seperti EmrCluster tipe.
- Jadwal
Jadwal untuk membuat sumber daya komputasi ini.
- instanceType
Ukuran EC2 instance yang akan dibuat. Pastikan Anda menetapkan ukuran EC2 instance yang sesuai yang paling sesuai dengan beban pekerjaan yang ingin Anda lakukan AWS Data Pipeline. Dalam hal ini, kami menetapkan instance m1.medium EC2. Untuk informasi selengkapnya tentang jenis instans yang berbeda dan kapan menggunakannya, lihat topik Jenis EC2 Instance Amazon
di http://aws.amazon. com/ec2/instance-jenis/. - Peran
IAM role akun yang mengakses sumber daya, seperti mengakses bucket Amazon S3 untuk mengambil data.
- resourceRole
Peran IAM dari akun yang menciptakan sumber daya, seperti membuat dan mengonfigurasi EC2 instance atas nama Anda. Peran dan ResourceRole dapat menjadi peran yang sama, tetapi secara terpisah memberikan perincian yang lebih besar dalam konfigurasi keamanan Anda.
Aktifitas
Bagian terakhir dalam file JSON yang merupakan definisi dari aktivitas yang mewakili pekerjaan yang akan dilakukan. Contoh ini digunakan CopyActivity
untuk menyalin data dari file CSV di http://aws.amazon. com/ec2/instance-jenis/ember ke yang lain. Komponen CopyActivity
didefinisikan oleh bidang berikut:
{ "id": "MyCopyActivity", "type": "CopyActivity", "runsOn": { "ref": "MyEC2Resource" }, "input": { "ref": "S3Input" }, "output": { "ref": "S3Output" }, "schedule": { "ref": "MySchedule" } }
- Id
-
Nama yang ditetapkan pengguna untuk aktivitas, yang merupakan label untuk referensi Anda saja.
- Tipe
-
Jenis kegiatan yang harus dilakukan, seperti MyCopyActivity.
- runsOn
-
Sumber daya komputasi yang melakukan pekerjaan yang ditentukan oleh aktivitas ini. Dalam contoh ini, kami memberikan referensi ke EC2 instance yang didefinisikan sebelumnya. Menggunakan
runsOn
bidang menyebabkan AWS Data Pipeline untuk membuat EC2 instance untuk Anda. BidangrunsOn
menunjukkan bahwa sumber daya yang ada di infrastruktur AWS, sedangkan nilaiworkerGroup
tersebut menunjukkan bahwa Anda ingin menggunakan sumber daya lokal Anda sendiri untuk melakukan pekerjaan. - Input
-
Lokasi data yang akan disalin.
- Output
-
Data lokasi target.
- Jadwal
-
Jadwal untuk menjalankan kegiatan ini.
Unggah dan Aktifkan Definisi Alur
Anda harus mengunggah definisi alur Anda dan mengaktifkan alur Anda. Dalam contoh perintah berikut, ganti pipeline_name
dengan label untuk pipeline Anda dan pipeline_file
dengan jalur yang sepenuhnya memenuhi syarat untuk file definisi .json
pipeline.
AWS CLI
Untuk membuat definisi alur Anda dan mengaktifkan alur Anda, gunakan perintah create-pipeline. Perhatikan ID alur Anda, karena Anda akan menggunakan nilai ini dengan sebagian besar perintah CLI.
aws datapipeline create-pipeline --name
{ "pipelineId": "df-00627471SOVYZEXAMPLE" }pipeline_name
--unique-idtoken
Untuk mengunggah definisi pipeline Anda, gunakan put-pipeline-definitionperintah berikut.
aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://MyEmrPipelineDefinition.json
Jika validasi alur Anda berhasil, bidang validationErrors
akan kosong. Anda harus meninjau peringatan apa pun.
Untuk mengaktifkan alur Anda, gunakan perintah activate-pipeline.
aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE
Anda dapat memverifikasi bahwa alur Anda muncul dalam daftar alur menggunakan perintah list-pipelines berikut.
aws datapipeline list-pipelines