Persiapkan data dalam skala besar di Amazon SageMaker Studio menggunakan sesi interaktif AWS Glue tanpa server PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Siapkan data dalam skala besar di Amazon SageMaker Studio menggunakan sesi interaktif AWS Glue tanpa server

Studio Amazon SageMaker adalah lingkungan pengembangan terintegrasi penuh (IDE) pertama untuk pembelajaran mesin (ML). Ini menyediakan antarmuka visual berbasis web tunggal tempat Anda dapat melakukan semua langkah pengembangan ML, termasuk menyiapkan data dan membangun, melatih, dan menerapkan model.

Lem AWS adalah layanan integrasi data tanpa server yang memudahkan untuk menemukan, menyiapkan, dan menggabungkan data untuk analitik, ML, dan pengembangan aplikasi. AWS Glue memungkinkan Anda mengumpulkan, mengubah, membersihkan, dan menyiapkan data dengan mulus untuk penyimpanan di data lake dan saluran data Anda menggunakan berbagai kemampuan, termasuk transformasi bawaan.

Insinyur data dan ilmuwan data kini dapat secara interaktif menyiapkan data dalam skala besar menggunakan integrasi bawaan notebook Studio mereka dengan sesi Spark tanpa server yang dikelola oleh AWS Glue. Mulai dalam hitungan detik dan secara otomatis menghentikan komputasi saat idle, Sesi interaktif AWS Glue menyediakan backend Spark sesuai permintaan, sangat skalabel, tanpa server untuk mencapai persiapan data yang skalabel di dalam Studio. Manfaat penting menggunakan sesi interaktif AWS Glue di notebook Studio meliputi:

  • Tidak ada cluster untuk disediakan atau dikelola
  • Tidak ada cluster menganggur yang harus dibayar
  • Tidak diperlukan konfigurasi di muka
  • Tidak ada perebutan sumber daya untuk lingkungan pengembangan yang sama
  • Runtime dan platform Spark tanpa server yang sama persis dengan pekerjaan ekstrak, transformasi, dan muat (ETL) AWS Glue

Dalam postingan ini, kami menunjukkan cara menyiapkan data dalam skala besar di Studio menggunakan sesi interaktif AWS Glue tanpa server.

Ikhtisar solusi

Untuk menerapkan solusi ini, Anda menyelesaikan langkah-langkah tingkat tinggi berikut ini:

  1. Perbarui Identitas AWS dan Manajemen Akses (IAM) izin peran.
  2. Luncurkan kernel sesi interaktif AWS Glue.
  3. Konfigurasikan sesi interaktif Anda.
  4. Sesuaikan sesi interaktif Anda dan jalankan beban kerja persiapan data yang skalabel.

Perbarui izin peran IAM Anda

Untuk memulai, Anda perlu memperbarui peran eksekusi IAM pengguna Studio dengan izin yang diperlukan. Untuk petunjuk rinci, lihat Izin untuk sesi interaktif Lem di SageMaker Studio.

Anda terlebih dahulu menambahkan kebijakan terkelola ke peran eksekusi Anda:

  1. Di konsol IAM, pilih Peran di panel navigasi.
  2. Temukan peran eksekusi Studio yang akan Anda gunakan, dan pilih nama peran untuk membuka halaman ringkasan peran.
  3. pada izin tab, pada Tambahkan Izin menu, pilih Lampirkan kebijakan.
  4. Pilih kebijakan yang dikelola AmazonSageMakerFullAccess dan AwsGlueSessionUserRestrictedServiceRole
  5. Pilih Lampirkan kebijakan.
    Halaman ringkasan menunjukkan kebijakan terkelola yang baru ditambahkan. Sekarang Anda menambahkan kebijakan khusus dan melampirkannya ke peran eksekusi Anda.
  6. pada Tambahkan Izin menu, pilih Buat kebijakan sebaris.
  7. pada JSON tab, masukkan kebijakan berikut:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Ubah hubungan kepercayaan peran Anda:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Luncurkan kernel sesi interaktif AWS Glue

Jika Anda sudah memiliki pengguna dalam domain Studio, Anda mungkin perlu memilikinya matikan dan mulai ulang Server Jupyter mereka untuk mengambil gambar kernel notebook baru.

Setelah memuat ulang, Anda dapat membuat buku catatan Studio baru dan pilih kernel pilihan Anda. Built-in SparkAnalytics 1.0 image sekarang harus tersedia, dan Anda dapat memilih kernel AWS Glue pilihan Anda (Lem Scala Spark or Lem PySpark).

Konfigurasikan sesi interaktif Anda

Anda dapat dengan mudah mengonfigurasi sesi interaktif AWS Glue Anda dengan keajaiban sel notebook sebelum inisialisasi. Sihir adalah perintah kecil yang diawali dengan % di awal sel Jupyter yang menyediakan pintasan untuk mengontrol lingkungan. Dalam sesi interaktif AWS Glue, sihir digunakan untuk semua kebutuhan konfigurasi, termasuk:

  • %wilayah โ€“ Wilayah AWS tempat untuk menginisialisasi sesi. Standarnya adalah Wilayah Studio.
  • %iam_role โ€“ Peran IAM ARN untuk menjalankan sesi Anda. Defaultnya adalah peran eksekusi SageMaker pengguna.
  • %pekerja_type - The Jenis pekerja Lem AWS. Defaultnya adalah standar.
  • %jumlah_pekerja โ€“ Jumlah pekerja yang dialokasikan saat pekerjaan berjalan. Standarnya adalah lima.
  • %waktu menganggur_habis โ€“ Jumlah menit tidak aktif setelah sesi akan habis. Standarnya adalah 2,880 menit.
  • %tambahan_python_modules โ€“ Daftar modul Python tambahan yang dipisahkan koma untuk disertakan dalam cluster Anda. Ini bisa dari PyPi atau Layanan Penyimpanan Sederhana Amazon (Amazon S3).
  • %% konfigurasi โ€“ Kamus berformat JSON yang terdiri dari Parameter konfigurasi khusus AWS Glue untuk satu sesi.

Untuk daftar lengkap parameter ajaib yang dapat dikonfigurasi untuk kernel ini, gunakan %help keajaiban dalam buku catatan Anda.

Sesi interaktif AWS Glue Anda tidak akan dimulai hingga sel non-ajaib pertama dijalankan.

Sesuaikan sesi interaktif Anda dan jalankan beban kerja persiapan data

Sebagai contoh, sel buku catatan berikut menunjukkan bagaimana Anda dapat menyesuaikan sesi interaktif AWS Glue dan menjalankan beban kerja persiapan data yang dapat diskalakan. Dalam contoh ini, kami melakukan tugas ETL untuk mengumpulkan data kualitas udara untuk kota tertentu, mengelompokkan berdasarkan jam dalam sehari.

Kami mengonfigurasi sesi kami untuk menyimpan log Spark kami ke ember S3 untuk debugging waktu nyata, yang akan kami lihat nanti di posting ini. Pastikan bahwa iam_role yang menjalankan sesi AWS Glue Anda memiliki akses tulis ke bucket S3 yang ditentukan.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

Selanjutnya, kami memuat dataset kami langsung dari Amazon S3. Atau, Anda bisa memuat data menggunakan Katalog Data AWS Glue Anda.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

Terakhir, kami menulis dataset yang telah diubah ke lokasi bucket keluaran yang kami tentukan:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

Setelah menyelesaikan pekerjaan, Anda dapat segera mengakhiri sesi interaktif AWS Glue hanya dengan mematikan kernel notebook Studio, atau Anda dapat menggunakan %stop_session sihir.

Debugging dan Spark UI

Dalam contoh sebelumnya, kami menentukan โ€--enable-spark-uiโ€: โ€œtrueโ€ argumen bersama dengan "--spark-event-logs-path": location. Ini mengonfigurasi sesi AWS Glue kami untuk merekam log sesi sehingga kami dapat menggunakan Spark UI untuk memantau dan men-debug pekerjaan AWS Glue kami secara real time.

Untuk proses meluncurkan dan membaca log Spark tersebut, lihat Meluncurkan server riwayat Spark. Pada tangkapan layar berikut, kami telah meluncurkan wadah Docker lokal yang memiliki izin untuk membaca ember S3 yang berisi log kami. Secara opsional, Anda dapat menyelenggarakan Cloud komputasi elastis Amazon (Amazon EC2) untuk melakukan ini, seperti yang dijelaskan dalam dokumentasi tertaut sebelumnya.

Persiapkan data dalam skala besar di Amazon SageMaker Studio menggunakan sesi interaktif AWS Glue tanpa server PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Harga

Saat Anda menggunakan sesi interaktif AWS Glue pada notebook Studio, Anda akan dikenakan biaya secara terpisah untuk penggunaan sumber daya pada notebook AWS Glue dan Studio.

AWS membebankan biaya untuk sesi interaktif AWS Glue berdasarkan berapa lama sesi aktif dan jumlah Unit Pemrosesan Data (DPU) yang digunakan. Anda dikenai tarif per jam untuk jumlah DPU yang digunakan untuk menjalankan beban kerja Anda, yang ditagih dengan penambahan 1 detik. Sesi interaktif AWS Glue menetapkan default 5 DPU dan memerlukan minimal 2 DPU. Ada juga durasi penagihan minimum 1 menit untuk setiap sesi interaktif. Untuk melihat contoh harga dan harga Lem AWS, atau untuk memperkirakan biaya Anda menggunakan Kalkulator Harga AWS, lihat Harga Lem AWS.

Notebook Studio Anda berjalan pada instans EC2 dan Anda dikenai biaya untuk jenis instans yang Anda pilih, berdasarkan durasi penggunaan. Studio memberi Anda jenis instans EC2 default dari ml-t3-medium saat Anda memilih SparkAnalytics gambar dan kernel terkait. Anda dapat mengubah jenis instans notebook Studio agar sesuai dengan beban kerja Anda. Untuk informasi tentang harga SageMaker Studio, lihat Harga Amazon SageMaker.

Kesimpulan

Integrasi asli notebook Studio dengan sesi interaktif AWS Glue memfasilitasi persiapan data tanpa server yang lancar dan dapat diskalakan untuk ilmuwan data dan insinyur data. Kami mendorong Anda untuk mencoba fungsi baru ini di Studio!

Lihat Siapkan Data menggunakan Sesi Interaktif AWS Glue for more information.


Tentang penulis

Sean MorganSean Morgan adalah Arsitek Solusi ML Senior di AWS. Dia memiliki pengalaman di bidang penelitian semikonduktor dan akademik, dan menggunakan pengalamannya untuk membantu pelanggan mencapai tujuan mereka di AWS. Di waktu luangnya, Sean adalah kontributor/pengelola open source aktif dan memimpin grup minat khusus untuk Addons TensorFlow.

Persiapkan data dalam skala besar di Amazon SageMaker Studio menggunakan sesi interaktif AWS Glue tanpa server PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Sumedha Swamy adalah Manajer Produk Utama di Amazon Web Services. Dia memimpin tim SageMaker Studio untuk membuatnya menjadi IDE pilihan untuk ilmu data interaktif dan alur kerja rekayasa data. Dia telah menghabiskan 15 tahun terakhir membangun produk konsumen dan perusahaan yang terobsesi dengan pelanggan menggunakan Machine Learning. Di waktu luangnya, dia suka memotret geologi yang menakjubkan di Barat Daya Amerika.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS