Salin Data CSV Menggunakan Baris Perintah - AWS Data Pipeline

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:

  1. Pasang dan konfigurasi antarmuka baris perintah (CLI). Untuk informasi selengkapnya, lihat Mengakses AWS Data Pipeline.

  2. Pastikan bahwa peran IAM bernama DataPipelineDefaultRoledan DataPipelineDefaultResourceRoleada. Konsol AWS Data Pipeline membuat peran ini untuk Anda secara otomatis. Jika Anda belum menggunakan konsol AWS Data Pipeline setidaknya sekali, maka Anda harus membuat peran ini secara manual. Untuk informasi selengkapnya, lihat IAM Role 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 S3 masukan mendefinisikan lokasi untuk file input; dalam hal ini, lokasi bucket Amazon S3. DataNodeKomponen masukan 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” untuk mencocokkan lokasi tempat data berada, dalam 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.

Berikutnya, output DataNode komponen S3 mendefinisikan lokasi tujuan output untuk data. Ini mengikuti format yang sama dengan DataNode komponen masukan 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" },

Resource

Ini adalah definisi sumber daya komputasi yang melakukan operasi penyalinan. Dalam contoh ini, AWS Data Pipeline harus secara otomatis membuat instans EC2 untuk melakukan tugas menyalin dan mengakhiri sumber daya setelah tugas selesai. Bidang didefinisikan di sini mengontrol pembuatan dan fungsi dari instans EC2 yang melakukan pekerjaan. EC2Resource didefinisikan oleh 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, instans EC2. Ada jenis sumber daya lain yang tersedia, seperti EmrCluster tipe.

Jadwal

Jadwal untuk membuat sumber daya komputasi ini.

instanceType

Ukuran instans EC2 untuk dibuat. Pastikan bahwa Anda menetapkan ukuran yang sesuai instans EC2 yang paling cocok dengan beban pekerjaan yang ingin Anda lakukan dengan AWS Data Pipeline. Dalam hal ini, kita menetapkan instans EC2 m1.medium. Untuk informasi selengkapnya tentang tipe instans yang berbeda dan kapan harus menggunakan masing-masing instans, lihat topik Jenis Instans Amazon EC2 di http://aws.amazon.com/ec2/instance-types/.

Peran

IAM role akun yang mengakses sumber daya, seperti mengakses bucket Amazon S3 untuk mengambil data.

resourceRole

IAM role akun yang menciptakan sumber daya, seperti membuat dan mengonfigurasi instans EC2 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 menggunakan CopyActivity untuk menyalin data dari file CSV dalam bucket http://aws.amazon.com/ec2/instance-types/ 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, sepertiMyCopyActivity.

runsOn

Sumber daya komputasi yang melakukan pekerjaan yang ditentukan oleh aktivitas ini. Dalam contoh ini, kami menyediakan referensi ke instans EC2 didefinisikan sebelumnya. Menggunakan bidang runsOn menyebabkan AWS Data Pipeline untuk membuat instans EC2 untuk Anda. Bidang runsOn menunjukkan bahwa sumber daya yang ada di infrastruktur AWS, sedangkan nilai workerGroup 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 alur Anda dan pipeline_file dengan jalur yang sepenuhnya memenuhi syarat untuk file .json definisi alur.

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 pipeline_name --unique-id token { "pipelineId": "df-00627471SOVYZEXAMPLE" }

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