Amazon Athena adalah layanan kueri interaktif yang memudahkan analisis data Layanan Penyimpanan Sederhana Amazon (Amazon S3) dan sumber data yang berada di AWS, lokal, atau sistem cloud lainnya menggunakan SQL atau Python. Athena dibangun di atas mesin open-source Trino dan Presto, dan kerangka kerja Apache Spark, tanpa memerlukan penyediaan atau upaya konfigurasi. Athena tidak memiliki server, jadi tidak ada infrastruktur untuk dikelola, dan Anda hanya membayar kueri yang Anda jalankan.
Gunung Es Apache adalah format tabel terbuka untuk kumpulan data analitik yang sangat besar. Ini mengelola koleksi besar file sebagai tabel, dan mendukung operasi danau data analitik modern seperti memasukkan, memperbarui, menghapus, dan kueri perjalanan waktu tingkat rekaman. Athena mendukung kueri baca, perjalanan waktu, tulis, dan DDL untuk tabel Apache Iceberg yang menggunakan format Apache Parquet untuk data dan Katalog Data AWS Glue untuk metastore mereka.
Rekayasa fitur adalah proses mengidentifikasi dan mengubah data mentah (gambar, file teks, video, dan sebagainya), mengisi ulang data yang hilang, dan menambahkan satu atau beberapa elemen data yang bermakna untuk memberikan konteks sehingga model pembelajaran mesin (ML) dapat belajar darinya. Pelabelan data diperlukan untuk berbagai kasus penggunaan, termasuk peramalan, visi komputer, pemrosesan bahasa alami, dan pengenalan suara.
Dikombinasikan dengan kemampuan Athena, Apache Iceberg menghadirkan alur kerja yang disederhanakan bagi ilmuwan data untuk membuat fitur data baru tanpa perlu menyalin atau membuat ulang seluruh kumpulan data. Anda dapat membuat fitur menggunakan SQL standar di Athena tanpa menggunakan layanan lain untuk rekayasa fitur. Ilmuwan data dapat mengurangi waktu yang dihabiskan untuk menyiapkan dan menyalin kumpulan data, dan sebagai gantinya berfokus pada rekayasa fitur data, eksperimen, dan analisis data dalam skala besar.
Dalam postingan ini, kami meninjau manfaat menggunakan Athena dengan format tabel terbuka Apache Iceberg dan cara menyederhanakan tugas rekayasa fitur umum untuk ilmuwan data. Kami mendemonstrasikan bagaimana Athena dapat mengonversi tabel yang ada dalam format Apache Iceberg, lalu menambahkan kolom, menghapus kolom, dan memodifikasi data dalam tabel tanpa membuat ulang atau menyalin kumpulan data, dan menggunakan kemampuan ini untuk membuat fitur baru di tabel Apache Iceberg.
Ikhtisar solusi
Ilmuwan data umumnya terbiasa bekerja dengan kumpulan data besar. Kumpulan data biasanya disimpan dalam JSON, CSV, ORC, atau Parket Apache format, atau format serupa yang dioptimalkan untuk membaca untuk kinerja membaca cepat. Ilmuwan data sering kali membuat fitur data baru, dan mengisi ulang fitur data tersebut dengan data agregat dan tambahan. Secara historis, tugas ini diselesaikan dengan membuat tampilan di atas tabel dengan data dasar dalam format Apache Parquet, di mana kolom dan data tersebut ditambahkan saat runtime atau dengan membuat tabel baru dengan kolom tambahan. Meskipun alur kerja ini cocok untuk banyak kasus penggunaan, namun tidak efisien untuk kumpulan data besar, karena data perlu dibuat saat runtime atau kumpulan data perlu disalin dan diubah.
Athena telah memperkenalkan ACID (Atomicity, Consistency, Isolation, Durability) transaksi kemampuan yang menambahkan operasi INSERT, UPDATE, DELETE, MERGE, dan perjalanan waktu Tabel Gunung Es Apache. Kemampuan ini memungkinkan ilmuwan data untuk membuat fitur data baru dan menghapus fitur data yang ada pada kumpulan data yang ada tanpa perlu khawatir menyalin atau mengubah kumpulan data atau mengabstraksikannya dengan tampilan. Ilmuwan data dapat fokus pada pekerjaan rekayasa fitur dan menghindari penyalinan dan transformasi kumpulan data.
Operasi Athena Iceberg UPDATE menulis file penghapusan posisi Apache Iceberg dan baris yang baru diperbarui sebagai file data dalam transaksi yang sama. Anda dapat membuat koreksi catatan melalui pernyataan UPDATE tunggal.
Dengan dirilisnya mesin Athena versi 3, kemampuan tabel Apache Iceberg ditingkatkan dengan dukungan untuk pengoperasian seperti BUAT TABEL SEBAGAI PILIHAN (CTAS) dan perintah MERGE yang merampingkan manajemen siklus hidup data Iceberg Anda. CTAS membuatnya cepat dan efisien untuk membuat tabel dari format lain seperti Apache Paquet, dan BERGABUNG MENJADI pembaruan bersyarat, menghapus, atau menyisipkan baris ke dalam tabel Gunung Es. Satu pernyataan dapat menggabungkan tindakan pembaruan, penghapusan, dan penyisipan.
Prasyarat
Siapkan grup kerja Athena dengan mesin Athena versi 3 untuk menggunakan perintah CTAS dan MERGE dengan tabel Apache Iceberg. Untuk memutakhirkan mesin Athena yang ada ke versi 3 di grup kerja Athena Anda, ikuti petunjuk di Tingkatkan ke versi mesin Athena 3 untuk meningkatkan kinerja kueri dan mengakses lebih banyak fitur analitik atau merujuk ke Mengubah versi mesin di konsol Athena.
Dataset
Untuk demonstrasi, kami menggunakan tabel Apache Parquet yang berisi beberapa juta rekaman data penjualan fiktif yang didistribusikan secara acak dari beberapa tahun terakhir yang disimpan dalam bucket S3. Unduh dataset, unzip ke komputer lokal Anda, dan unggah ke bucket S3 Anda. Dalam posting ini, kami mengunggah dataset kami ke s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
.
Tabel berikut menunjukkan tata letak untuk tabel customer_orders
.
Nama kolom | Tipe data | Deskripsi Produk |
kunci pesanan | tali | Nomor pesanan untuk pesanan |
kunci cust | tali | Nomor identifikasi pelanggan |
status pemesanan | tali | Status pesanan |
total harga | tali | Total harga pesanan |
tanggal pemesanan | tali | Tanggal pesanan |
prioritas pesanan | tali | Prioritas pesanan |
pramuniaga | tali | Nama petugas yang memproses pesanan |
shippriity | tali | Prioritas pengiriman |
nama | tali | Nama Pelanggan |
alamat | tali | Alamat pelanggan |
kunci negara | tali | Kunci negara pelanggan |
telepon | tali | Nomor telepon pelanggan |
acctbal | tali | Saldo rekening pelanggan |
segmen mkt | tali | segmen pasar pelanggan |
Lakukan rekayasa fitur
Sebagai ilmuwan data, kami ingin tampil rekayasa fitur pada data pesanan pelanggan dengan menambahkan total pembelian satu tahun yang dihitung dan pembelian rata-rata satu tahun untuk setiap pelanggan dalam kumpulan data yang ada. Untuk tujuan demonstrasi, kami membuat customer_orders
meja di sampledb
database menggunakan Athena seperti yang ditunjukkan pada perintah DDL berikut. (Anda dapat menggunakan kumpulan data yang ada dan mengikuti langkah-langkah yang disebutkan dalam posting ini.) customer_orders
kumpulan data dibuat dan disimpan di lokasi bucket S3 s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
dalam format Parket. Tabel ini bukan tabel Apache Iceberg.
Validasi data dalam tabel dengan menjalankan kueri:
Kami ingin menambahkan fitur baru ke tabel ini untuk mendapatkan pemahaman yang lebih mendalam tentang penjualan pelanggan, yang dapat menghasilkan pelatihan model yang lebih cepat dan wawasan yang lebih berharga. Untuk menambahkan fitur baru ke kumpulan data, konversikan customer_orders
Meja Athena ke meja Apache Iceberg di Athena. Isu a CTAS pernyataan permintaan untuk membuat tabel baru dengan format Apache Iceberg dari customer_orders
meja. Saat melakukannya, fitur baru ditambahkan untuk mendapatkan jumlah total pembelian dalam satu tahun terakhir (maks tahun kumpulan data) oleh setiap pelanggan.
Dalam kueri CTAS berikut, kolom baru diberi nama one_year_sales_aggregate
dengan nilai default sebagai 0.0
dari tipe data double
ditambahkan dan table_type
diatur ke ICEBERG
:
Keluarkan kueri berikut untuk memverifikasi data di tabel Apache Iceberg dengan kolom baru one_year_sales_aggregate
nilai sebagai 0.0
:
Kami ingin mengisi nilai untuk fitur baru one_year_sales_aggregate
dalam kumpulan data untuk mendapatkan jumlah total pembelian untuk setiap pelanggan berdasarkan pembelian mereka dalam satu tahun terakhir (tahun maksimum kumpulan data). Keluarkan pernyataan kueri MERGE ke tabel Apache Iceberg menggunakan Athena untuk mengisi nilai untuk one_year_sales_aggregate
Fitur:
Keluarkan kueri berikut untuk memvalidasi nilai yang diperbarui untuk total pembelanjaan oleh setiap pelanggan dalam satu tahun terakhir:
Kami memutuskan untuk menambahkan fitur lain ke tabel Apache Iceberg yang sudah ada untuk menghitung dan menyimpan jumlah pembelian rata-rata pada tahun lalu oleh setiap pelanggan. Keluarkan pernyataan kueri ALTER untuk menambahkan kolom baru ke tabel yang sudah ada untuk fitur one_year_sales_average
:
Sebelum mengisi nilai ke fitur baru ini, Anda dapat menetapkan nilai default untuk fitur tersebut one_year_sales_average
untuk 0.0
. Menggunakan tabel Apache Iceberg yang sama di Athena, keluarkan pernyataan kueri UPDATE untuk mengisi nilai fitur baru sebagai 0.0
:
Terbitkan kueri berikut untuk memverifikasi nilai yang diperbarui untuk pengeluaran rata-rata oleh setiap pelanggan dalam satu tahun terakhir telah ditetapkan 0.0
:
Sekarang kami ingin mengisi nilai untuk fitur baru one_year_sales_average
dalam kumpulan data untuk mendapatkan jumlah pembelian rata-rata untuk setiap pelanggan berdasarkan pembelian mereka dalam satu tahun terakhir (tahun maksimum kumpulan data). Keluarkan pernyataan kueri MERGE ke tabel Apache Iceberg yang ada di Athena menggunakan mesin Athena untuk mengisi nilai fitur one_year_sales_average
:
Keluarkan kueri berikut untuk memverifikasi nilai yang diperbarui untuk pengeluaran rata-rata oleh setiap pelanggan:
Setelah fitur data tambahan ditambahkan ke kumpulan data, ilmuwan data biasanya melanjutkan untuk melatih model ML dan membuat kesimpulan menggunakan Amazon Sagemaker atau kumpulan alat yang setara.
Kesimpulan
Dalam postingan ini, kami mendemonstrasikan cara melakukan rekayasa fitur menggunakan Athena dengan Apache Iceberg. Kami juga mendemonstrasikan penggunaan kueri CTAS untuk membuat tabel Apache Iceberg di Athena dari kumpulan data yang ada dalam format Apache Parquet, menambahkan fitur baru di tabel Apache Iceberg yang ada di Athena menggunakan kueri ALTER, dan menggunakan pernyataan kueri UPDATE dan MERGE untuk memperbarui nilai fitur dari kolom yang ada.
Kami mendorong Anda untuk menggunakan kueri CTAS untuk membuat tabel dengan cepat dan efisien, dan menggunakan pernyataan kueri MERGE untuk menyinkronkan tabel dalam satu langkah guna menyederhanakan persiapan data dan memperbarui tugas saat mengubah fitur menggunakan Athena dengan Apache Iceberg. Jika Anda memiliki komentar atau umpan balik, silakan tinggalkan di bagian komentar.
Tentang Penulis
Vivek Gautama adalah Arsitek Data dengan spesialisasi data lake di AWS Professional Services. Dia bekerja dengan pelanggan perusahaan yang membangun produk data, platform analitik, dan solusi di AWS. Saat tidak membangun dan mendesain platform data modern, Vivek adalah penggemar makanan yang juga suka menjelajahi tujuan perjalanan baru dan mendaki gunung.
Mikhail Vaynshteyn adalah Arsitek Solusi dengan Amazon Web Services. Mikhail bekerja dengan pelanggan perawatan kesehatan dan ilmu kehidupan untuk membangun solusi yang membantu meningkatkan hasil pasien. Mikhail berspesialisasi dalam layanan analitik data.
Naresh Gautama adalah Analisis Data dan pemimpin AI/ML di AWS dengan pengalaman 20 tahun, yang senang membantu pelanggan merancang analitik data yang sangat tersedia, berkinerja tinggi, dan hemat biaya serta solusi AI/ML untuk memberdayakan pelanggan dengan pengambilan keputusan berdasarkan data . Di waktu luangnya, dia menikmati meditasi dan memasak.
Harsha Tadiparthi adalah Spesialis Arsitek Solusi Utama, Analitik di AWS. Dia senang memecahkan masalah pelanggan yang kompleks dalam database dan analitik serta memberikan hasil yang sukses. Di luar pekerjaan, dia suka menghabiskan waktu bersama keluarganya, menonton film, dan bepergian jika memungkinkan.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Keuangan EVM. Antarmuka Terpadu untuk Keuangan Terdesentralisasi. Akses Di Sini.
- Grup Media Kuantum. IR/PR Diperkuat. Akses Di Sini.
- PlatoAiStream. Kecerdasan Data Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/big-data/accelerate-data-science-feature-engineering-on-transactional-data-lakes-using-amazon-athena-with-apache-iceberg/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 10
- 100
- 12
- 17
- 20
- 20 tahun
- 23
- 27
- 7
- a
- Tentang Kami
- mempercepat
- mengakses
- dicapai
- Akun
- tindakan
- menambahkan
- menambahkan
- menambahkan
- Tambahan
- alamat
- AI / ML
- juga
- Meskipun
- Amazon
- Amazon Athena
- Amazon SageMaker
- Amazon Web Services
- jumlah
- an
- Analitik
- Analytical
- analisis
- menganalisa
- menganalisis
- dan
- Lain
- Apa pun
- Apache
- Apache Spark
- ADALAH
- AS
- At
- tersedia
- rata-rata
- menghindari
- AWS
- Layanan Profesional AWS
- berdasarkan
- BE
- karena
- menjadi
- Manfaat
- membangun
- Bangunan
- dibangun di
- by
- dihitung
- CAN
- kemampuan
- kasus
- klasifikasi
- awan
- koleksi
- Kolom
- Kolom
- menggabungkan
- komentar
- Umum
- kompleks
- menghitung
- komputer
- Visi Komputer
- konfigurasi
- mengandung
- konteks
- mengubah
- memasak
- penyalinan
- Koreksi
- hemat biaya
- membuat
- dibuat
- membuat
- pelanggan
- pelanggan
- data
- Data Analytics
- Danau Data
- ilmu data
- ilmuwan data
- Data-driven
- Basis Data
- database
- kumpulan data
- Tanggal
- memutuskan
- Pengambilan Keputusan
- lebih dalam
- Default
- mengantarkan
- memberikan
- mendemonstrasikan
- menunjukkan
- merancang
- tujuan
- didistribusikan
- melakukan
- dua kali lipat
- Menjatuhkan
- daya tahan
- setiap
- Mudah
- efisien
- efisien
- usaha
- antara
- elemen
- memberdayakan
- aktif
- mendorong
- Mesin
- Teknik
- Mesin
- ditingkatkan
- Enterprise
- pelanggan perusahaan
- penggemar
- Seluruh
- Setara
- Eter (ETH)
- ada
- pengalaman
- menyelidiki
- luar
- palsu
- keluarga
- FAST
- lebih cepat
- Fitur
- Fitur
- umpan balik
- File
- Fokus
- mengikuti
- berikut
- makanan
- Untuk
- format
- kerangka
- Gratis
- dari
- umumnya
- dihasilkan
- mendapatkan
- Go
- Kelompok
- Hadoop
- Memiliki
- he
- kesehatan
- membantu
- membantu
- kinerja tinggi
- sangat
- Mendaki
- -nya
- secara historis
- Sarang lebah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTML
- HTTPS
- Identifikasi
- mengidentifikasi
- if
- gambar
- memperbaiki
- in
- Termasuk
- Meningkatkan
- tidak efisien
- Infrastruktur
- Sisipan
- wawasan
- sebagai gantinya
- instruksi
- interaktif
- ke
- diperkenalkan
- isolasi
- isu
- IT
- jpg
- json
- pelabelan
- danau
- bahasa
- besar
- Terakhir
- tata ruang
- pemimpin
- BELAJAR
- pengetahuan
- Meninggalkan
- Hidup
- Biologi
- siklus hidup
- MEMBATASI
- lokal
- tempat
- mencintai
- mesin
- Mesin belajar
- membuat
- MEMBUAT
- mengelola
- pengelolaan
- mengelola
- banyak
- Pasar
- cocok
- max
- berarti
- Meditasi
- tersebut
- Bergabung
- juta
- hilang
- ML
- model
- model
- modern
- memodifikasi
- lebih
- bioskop
- nama
- Bernama
- bangsa
- Alam
- Bahasa Alami
- Pengolahan Bahasa alami
- Perlu
- membutuhkan
- New
- Fitur baru
- Fitur Baru
- baru saja
- tidak
- jumlah
- of
- sering
- on
- ONE
- hanya
- Buka
- open source
- operasi
- Operasi
- or
- perintah
- Lainnya
- kami
- hasil
- di luar
- lalu
- Membayar
- melakukan
- prestasi
- telepon
- Platform
- plato
- Kecerdasan Data Plato
- Data Plato
- silahkan
- posisi
- mungkin
- Pos
- mempersiapkan
- harga pompa cor beton mini
- Utama
- masalah
- proses
- diproses
- pengolahan
- Produk
- profesional
- memberikan
- membeli
- pembelian
- tujuan
- Ular sanca
- query
- segera
- Mentah
- data mentah
- Baca
- pengakuan
- catatan
- arsip
- menurunkan
- melepaskan
- wajib
- mengakibatkan
- ulasan
- BARIS
- Run
- berjalan
- pembuat bijak
- penjualan
- sama
- Skala
- Ilmu
- ILMU PENGETAHUAN
- ilmuwan
- ilmuwan
- Bagian
- Tanpa Server
- layanan
- Layanan
- set
- beberapa
- ditunjukkan
- Pertunjukkan
- mirip
- Sederhana
- disederhanakan
- menyederhanakan
- tunggal
- So
- Solusi
- Memecahkan
- sumber
- percikan
- spesialis
- spesialisasi
- pidato
- Speech Recognition
- menghabiskan
- menghabiskan
- SQL
- standar
- Pernyataan
- Laporan
- Langkah
- Tangga
- penyimpanan
- menyimpan
- tersimpan
- mempersingkat
- Tali
- sukses
- seperti itu
- mendukung
- Mendukung
- sistem
- tabel
- tugas
- tugas
- bahwa
- Grafik
- Penggabungan
- mereka
- Mereka
- kemudian
- Sana.
- Ini
- ini
- waktu
- perjalanan waktu
- untuk
- puncak
- Total
- Pelatihan VE
- Pelatihan
- .
- transaksional
- berubah
- mengubah
- perjalanan
- mengetik
- pokok
- pemahaman
- Memperbarui
- diperbarui
- Pembaruan
- meningkatkan
- upload
- menggunakan
- menggunakan
- biasanya
- MENGESAHKAN
- Berharga
- nilai
- Nilai - Nilai
- berbagai
- memeriksa
- versi
- sangat
- melalui
- Video
- View
- penglihatan
- ingin
- adalah
- Menonton
- we
- jaringan
- layanan web
- adalah
- ketika
- kapan saja
- yang
- sementara
- SIAPA
- dengan
- tanpa
- Kerja
- alur kerja
- Kelompok Kerja
- kerja
- bekerja
- akan
- menulis
- tahun
- tahun
- kamu
- Anda
- zephyrnet.dll
- Zip