Untuk kemampuan serupa dengan Amazon Timestream LiveAnalytics, pertimbangkan Amazon Timestream untuk InfluxDB. Ini menawarkan konsumsi data yang disederhanakan dan waktu respons kueri milidetik satu digit untuk analitik waktu nyata. Pelajari lebih lanjut di sini.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menelan data dari Amazon S3 ke Timestream untuk otomatisasi InfluxDB
Setelah alat Timestream untuk LiveAnalytics ekspor menyelesaikan proses pembongkaran, langkah selanjutnya dalam proses otomatisasi dimulai. Otomatisasi ini menggunakan alat impor InfluxDB
Alur kerja untuk menyelesaikan migrasi dipisahkan menjadi empat tahap:
Bongkar data menggunakan Timestream untuk alat LiveAnalytics ekspor.
Transformasi data
: Mengonversi Timestream untuk LiveAnalytics data menjadi format protokol baris InfluxDB (Berdasarkan skema yang ditentukan setelah penilaian kardinalitas) menggunakan Amazon Athena. Penyerapan data: Menyerap
kumpulan data protokol baris ke Timestream Anda untuk instans InfluxDB. Validasi
: Secara opsional, Anda dapat memvalidasi bahwa setiap titik protokol baris telah dicerna (Membutuhkan --add-validation-field true
selama langkah transformasi data).
Transformasi Data
Untuk transformasi data, kami mengembangkan skrip untuk mengonversi Timestream untuk format parket data LiveAnalytics yang diekspor ke dalam format Protokol Garis InfluxDB menggunakan Amazon Athena. Amazon Athena menyediakan layanan kueri tanpa server dan cara hemat biaya untuk mengubah volume besar data deret waktu tanpa memerlukan sumber daya komputasi khusus.
Script melakukan hal berikut:
Memuat Timestream yang diekspor untuk LiveAnalytics data dari bucket Amazon S3 ke dalam tabel Amazon Athena.
Melakukan pemetaan dan transformasi data dari data yang disimpan dalam tabel Athena menjadi protokol garis dan menyimpannya di bucket S3.
Pemetaan Data
Tabel berikut menunjukkan bagaimana Timestream untuk LiveAnalytics data dipetakan ke data protokol baris.
Timestream untuk Konsep LiveAnalytics | Konsep Protokol Garis |
---|---|
Tag (Opsional) |
|
Prasyarat dan Instalasi
Lihat bagian Prasyarat dan Instalasi di README skrip transformasi
Penggunaan
Untuk mengubah data yang disimpan dalam bucket example_s3_bucket dari Timestream untuk LiveAnalytics tabel example_table di example_database, jalankan perintah berikut:
python3 transform.py \ --database-name example_database \ --tables example_table \ --s3-bucket-path example_s3_bucket \ --add-validation-field false
Setelah naskah selesai,
Di Athena, tabel example_database_example_table akan dibuat, berisi Timestream untuk data. LiveAnalytics
Di Athena, tabel lp_example_database_example_table akan dibuat, berisi Timestream untuk data yang diubah menjadi titik protokol baris. LiveAnalytics
Di bucket S3 example_s3_bucket, di dalam jalur
example_database/example_table/unload-<%Y-%m-%d-%H:%M:%S>/line-protocol-output
, data protokol baris akan disimpan.
Rekomendasi
Lihat README skrip transformasi--dimensions-to-fields
argumen untuk mengubah dimensi tertentu ke bidang.
Menambahkan Bidang untuk Validasi
Untuk informasi tentang cara menambahkan bidang untuk validasi, lihat bagian Menambahkan Bidang untuk Validasi
Penyerapan data ke Timestream untuk InfluxDB
Skrip konsumsi InfluxDB menyerap kumpulan data protokol baris terkompresi ke Timestream untuk InfluxDB. Direktori yang berisi file protokol baris terkompresi gzip diteruskan sebagai argumen baris perintah bersama dengan bucket InfluxDB tujuan konsumsi. Skrip ini dirancang untuk menelan banyak file sekaligus menggunakan multi-pemrosesan untuk memanfaatkan sumber daya dengan InfluxDB dan mesin yang mengeksekusi skrip.
Script melakukan berikut:
-
Mengekstrak file zip dan mencernanya ke InfluxDB.
-
Menerapkan mekanisme coba lagi dan penanganan kesalahan.
-
Melacak konsumsi yang berhasil dan gagal untuk melanjutkan.
-
Mengoptimalkan I/O operasi saat membaca dari kumpulan data protokol baris.
Prasyarat dan instalasi
Lihat bagian Prasyarat dan Instalasi di README skrip konsumsi di.
Persiapan data
File protokol baris zip yang diperlukan untuk konsumsi dihasilkan oleh skrip transformasi data. Ikuti langkah-langkah berikut untuk menyiapkan data Anda:
-
Siapkan EC2 instance dengan penyimpanan yang cukup untuk menampung kumpulan data yang diubah.
-
Sinkronkan data yang diubah dari bucket S3 ke direktori lokal Anda:
aws s3 sync \ s3://your-bucket-name/path/to/transformed/data \ ./data_directory
-
Pastikan Anda memiliki akses baca ke semua file di direktori data.
-
Jalankan skrip konsumsi berikut untuk menyerap data ke Timestream untuk InfluxDB.
Penggunaan
python influxdb_ingestion.py <bucket_name> <data_directory> [options]
Penggunaan dasar
python influxdb_ingestion.py my_bucket ./data_files
Tingkat konsumsi
Kami telah menjalankan beberapa tes untuk tingkat konsumsi. Tes konsumsi menggunakan EC2 instance C5N.9XL yang mengeksekusi skrip konsumsi dengan 10 Pekerja, dan menelan protokol baris ~500 GB ke Timestream 8XL untuk instans InfluxDB:
-
3K IOPS 15.86 GB/jam.
-
12K IOPS 70.34 GB/jam.
-
16K IOPS 71,28 GB/jam.
Rekomendasi
-
Gunakan EC2 instance dengan core CPU yang cukup untuk menangani pemrosesan paralel.
-
Pastikan instans memiliki penyimpanan yang cukup untuk menampung seluruh kumpulan data yang diubah dengan ruang tambahan untuk ekstraksi.
-
Jumlah file yang diekstraksi pada satu waktu sama dengan jumlah pekerja yang dikonfigurasi selama eksekusi skrip.
-
-
Posisikan EC2 instans di wilayah yang sama dan AZ (jika mungkin) sebagai instans InfluxDB Anda untuk meminimalkan latensi.
-
Pertimbangkan untuk menggunakan jenis instance yang dioptimalkan untuk operasi jaringan, misalnya C5N.
-
Jika tingkat konsumsi yang tinggi diperlukan, setidaknya 12K IOPS direkomendasikan untuk instans Timestream for InfluxDB. Pengoptimalan tambahan dapat diperoleh dengan meningkatkan jumlah pekerja untuk skrip yang bergantung pada Timestream untuk ukuran instans InfluxDB.
Untuk informasi lebih lanjut, lihat README skrip konsumsi.