Anda dapat menggunakan dataset di node—seperti node Shell, Python, dan Notebook—untuk membaca dari serta menulis ke Object Storage Service (OSS) atau Apsara File Storage NAS (NAS) selama pengembangan data. Anda juga dapat memasang dataset sebagai penyimpanan saat membuat instans lingkungan pengembangan pribadi.
Kami menyarankan membaca Kelola dataset untuk mempelajari cara membuat dataset.
Ikhtisar
Dataset memungkinkan Anda membaca dan menulis data yang disimpan di OSS dan NAS dari DataWorks. Anda dapat membuat beberapa versi dataset, melacak perubahan, serta mengembalikan ke versi sebelumnya jika diperlukan.
Batasan
-
Dataset hanya didukung di versi baru DataStudio.
-
Resource group: Anda hanya dapat mengakses dataset dari node pengembangan data melalui Serverless resource group.
-
Objek yang didukung: Dataset hanya didukung di node Shell, node Python, Notebook untuk pengembangan dasar, dan lingkungan pengembangan pribadi. Anda dapat memasang maksimal 5 dataset ke setiap objek.
-
Jenis penyimpanan: Dataset mendukung Object Storage Service (OSS) dan Apsara File Storage NAS (NAS) menggunakan Protokol NFS.
-
Izin: Jika titik pemasangan dataset diatur sebagai read-only, Anda tidak dapat memodifikasi atau menghapus folder atau file di dalamnya. Tindakan tersebut akan menghasilkan error izin.
Gunakan dataset di node
Bagian ini menjelaskan cara memasang dataset OSS ke node. Dalam contoh ini, Anda membuat dataset DataWorks yang didukung oleh OSS, memasang jalur OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ ke jalur pemasangan dataset /mnt/data/dataset01, lalu membaca dan menulis data dalam kode node.
Prasyarat: buat dataset
-
Buat bucket atau buat sistem file.
Contoh ini menggunakan dataset OSS. Buat bucket bernama
datasets-ossdi wilayah China (Shanghai), lalu buat direktori/dataset01/v1. -
Dalam contoh ini, buat dataset OSS bernama
datasets-ossdan pasang jalur OSSoss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ke/mnt/data/dataset01.
1. Konfigurasikan dataset untuk node
Pada Debug Configuration node Shell atau Python, konfigurasikan dataset datasets-oss.
-
Sebelum menerbitkan node, Anda juga harus menambahkan dataset di bagian Scheduling Settings.
-
Untuk menggunakan dataset, Anda harus mengalokasikan minimal 0,5 computing unit (CU) ke node.
|
Parameter |
Deskripsi |
|
Datasets |
Menentukan dataset yang dapat diakses oleh kode node saat ini.
Dalam contoh ini, pilih dataset OSS |
|
Mount Path |
Jalur yang digunakan kode node untuk mengakses dataset. Bidang ini secara otomatis diisi dengan Default Mount Path yang dikonfigurasi saat dataset didefinisikan. Penting
Jika Anda memasang beberapa dataset ke node yang sama, jalur pemasangannya tidak boleh bentrok. |
|
Advanced Settings |
Parameter ini opsional. Anda dapat menentukan tool dan parameter untuk mengakses data OSS atau konfigurasi untuk mengakses sistem file NAS dalam format JSON.
|
|
Read Only |
Secara default, Anda dapat membaca dan menulis ke dataset di node saat ini. Jika dataset diatur sebagai read-only untuk node ini, Anda tidak dapat menulis data ke direktori pemasangannya dari kode node. Setiap upaya penulisan akan menghasilkan error izin. |
2. Gunakan dataset di node
Contoh ini menggunakan node Shell. Setelah Anda menyambungkan dataset OSS ke node Shell, Anda dapat mengelola data OSS dalam kode node Shell seolah-olah itu adalah file lokal. Contoh berikut menggunakan tool ossfs 2.0 default untuk menulis file file01.txt ke jalur pemasangan /mnt/data/dataset01 dari dataset OSS datasets-oss.
Kode contoh:
echo "Hello World" > /mnt/data/dataset01/file01.txt
ls -tl /mnt/data/dataset01
Di panel Debug Configurations di sebelah kanan, buka tab Dataset dan pilih dataset kustom datasets-oss/V1. Konfirmasi pesan otorisasi resource group yang berhasil, dan pastikan sakelar Read-only dimatikan. Setelah menjalankan node, log menunjukkan bahwa file01.txt berhasil dibuat (12 byte, izin: rwxrwxrwx), kode keluar adalah 0, waktu yang berlalu adalah 0,741 detik, dan statusnya FINISH.
Jika Anda menerima pesan error Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [103:ILLEGAL_TASK]:Task with dataset need 0.5cu at least! selama runtime, artinya tugas tersebut memiliki CU yang tidak mencukupi. Tingkatkan alokasi CU untuk resource group minimal menjadi 0,5.
3. Verifikasi data di OSS
Setelah kode di 2. Gunakan dataset di node dijalankan, file tersebut secara otomatis ditulis ke jalur penyimpanan OSS yang sesuai dengan jalur pemasangan dataset. Anda dapat melihat file tersebut di jalur penyimpanan OSS. Dalam contoh ini, jalur pemasangan /mnt/data/dataset01 dari dataset OSS datasets-oss dipetakan ke oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/. Gambar berikut menunjukkan contoh data yang ditulis ke jalur OSS.
Di jalur ini, Anda dapat menemukan file yang ditulis file01.txt (0,012 KB, penyimpanan Standard).
Gunakan dataset di lingkungan pengembangan pribadi
Setelah dataset didefinisikan, Anda dapat memasangnya ke instans lingkungan pengembangan pribadi saat membuat atau mengubah instans tersebut. Anda kemudian dapat mengakses data dataset langsung di terminal atau Notebook dalam direktori pribadi Anda.
Prasyarat: buat dataset
-
Buat bucket atau buat sistem file.
-
Contoh ini menggunakan dataset berbasis NAS. Buat dataset NAS bernama
datasets-nasdi wilayah China (Shanghai), lalu pasang jalur NASnas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/ke/mnt/data/dataset02.
1. Konfigurasikan dataset untuk lingkungan pribadi
Buat instans lingkungan pengembangan pribadi dan pilih dataset NAS yang sudah ada datasets-nas.
Di halaman konfigurasi, pilih datasets-nas dari daftar drop-down Dataset dan tentukan jalur pemasangannya yang sesuai.
|
Parameter |
Deskripsi |
|
Datasets |
Menentukan dataset yang dapat diakses oleh kode instans. Pastikan VPC yang dipilih untuk instans lingkungan pengembangan pribadi dapat terhubung ke titik pemasangan NAS. Dalam contoh ini, pilih dataset NAS |
|
Mount Path |
Jalur yang digunakan kode instans untuk mengakses dataset. Dalam contoh ini, pasang jalur dataset NAS Penting
Jika Anda memasang beberapa dataset ke instans lingkungan pengembangan pribadi yang sama, jalur pemasangannya tidak boleh bentrok. |
|
Advanced Settings |
Parameter ini opsional. Anda dapat menggunakan JSON untuk menentukan konfigurasi (parameter nasOptions) guna mengakses sistem file Apsara File Storage NAS (NAS) yang menggunakan Protokol NFS. Kode berikut menunjukkan konfigurasi default. Anda juga dapat merujuk ke Memasang sistem file NFS secara manual untuk menyesuaikan nilai parameter. Penting
|
|
Read Only |
Secara default, Anda dapat membaca dan menulis ke dataset di instans. Jika dataset diatur sebagai read-only untuk instans, Anda tidak dapat menulis data ke direktori pemasangannya dari kode dalam instans. Setiap upaya penulisan akan menghasilkan error izin. |
2. Gunakan dataset di Notebook
-
Di bagian atas halaman DataStudio, beralihlah ke instans lingkungan pengembangan pribadi, lalu buat Notebook untuk pengembangan dasar.
-
Di Notebook, tambahkan konten berikut.
-
Tulis data ke jalur tertentu di dataset.
import os # Tentukan jalur tujuan dan nama file file_path = "/mnt/data/dataset02/file02.txt" # Pastikan direktori sudah ada. Jika belum, buat direktori tersebut. os.makedirs(os.path.dirname(file_path),exist_ok=True) # Tulis kontennya content = "Hello World!" try: with open(file_path, "w", encoding="utf-8") as file: file.write(content) print(f"File berhasil ditulis ke {file_path}") except Exception as e: print(f"Gagal menulis file: {str(e)}") -
Baca data dari jalur tertentu di dataset.
file_path = "/mnt/data/dataset02/file02.txt" with open(file_path, "r") as file: content = file.read() content
-
-
Jalankan dua potongan kode Python tersebut secara terpisah.
CatatanSebelum menjalankan kode, pastikan Anda telah memilih kernel Python yang benar. Contoh ini menggunakan Python 3.11.9.
Potongan kode pertama: Tulis data ke jalur tertentu di dataset.
import os # Tentukan jalur tujuan dan nama file file_path = "/mnt/data/dataset02/file02.txt" # Pastikan direktori sudah ada. Jika belum, buat direktori tersebut. os.makedirs(os.path.dirname(file_path),exist_ok=True) # Tulis kontennya content = "Hello World!" try: with open(file_path, "w", encoding="utf-8") as file: file.write(content) print(f"File berhasil ditulis ke {file_path}") except Exception as e: print(f"Gagal menulis file: {str(e)}")Jika output-nya adalah
File berhasil ditulis ke /mnt/data/dataset02/file02.txt, operasi penulisan berhasil. Potongan kode kedua: Baca data dari jalur tertentu di dataset.file_path = "/mnt/data/dataset02/file02.txt" with open(file_path, "r") as file: content = file.read() contentJika output-nya adalah
'Hello World!', operasi pembacaan berhasil.
3. Konfigurasikan penjadwalan
Di sisi kanan node Notebook, klik Scheduling Settings dan tambahkan opsi dataset. Gunakan parameter yang sama seperti yang dikonfigurasi untuk instans lingkungan pengembangan pribadi.
Contoh konfigurasi lanjutan
Saat mengonfigurasi dataset, Anda dapat mengatur konfigurasi lanjutan untuk menyesuaikan parameter terkait dalam format JSON:
-
Saat Anda mengonfigurasi dataset untuk node, Anda dapat mengatur konfigurasi lanjutan untuk menentukan tool dan parameter guna membaca dan menulis data OSS atau menentukan konfigurasi untuk membaca dan menulis data di sistem file NAS.
-
Saat Anda mengonfigurasi dataset untuk lingkungan pengembangan pribadi, Anda dapat mengatur parameter lanjutan untuk menentukan konfigurasi guna membaca dan menulis data di sistem file NAS.
Pasang OSS dengan ossfs 2.0
ossfs 2.0 adalah klien yang memasang OSS untuk akses berkinerja tinggi. Tool ini memberikan throughput baca/tulis sekuensial tinggi dan memanfaatkan bandwidth OSS secara penuh. Tool ini cocok untuk aplikasi komputasi-intensif yang memerlukan kinerja I/O sekuensial tinggi, seperti pelatihan AI dan pemrosesan data besar. Skenario beban kerja ini terutama melibatkan pembacaan sekuensial dan acak serta penulisan sekuensial (append-only), dan tidak memerlukan semantik POSIX lengkap.
Di bagian Advanced Settings, Anda dapat mengatur parameter lanjutan. Pisahkan beberapa opsi dengan koma (,). Untuk petunjuk penggunaan parameter lanjutan dan opsi konfigurasi lainnya, lihat opsi pemasangan ossfs 2.0. Contoh berikut menunjukkan beberapa skenario umum:
-
Sumber data immutable: Jika semua file yang Anda baca tidak dimodifikasi selama tugas, Anda dapat mengatur waktu cache yang panjang untuk mengurangi jumlah permintaan metadata. Skenario khasnya adalah membaca batch file yang sudah ada dan menghasilkan batch file baru setelah pemrosesan.
{"mountOssType":"ossfs", "attr_timeout": "7200"} -
Operasi baca dan tulis cepat: Gunakan waktu cache metadata yang pendek untuk menyeimbangkan efisiensi cache dan ketepatan waktu data.
{"mountOssType":"ossfs", "attr_timeout": "3", "negative_timeout":"0"} -
Tampilan konsisten untuk tugas terdistribusi: Secara default, ossfs memperbarui data file berdasarkan cache metadata. Gunakan konfigurasi berikut untuk mencapai tampilan yang disinkronkan di beberapa node.
{ "mountOssType":"ossfs","negative_timeout": "0", "close_to_open":"false"} -
OOM akibat membuka terlalu banyak file: Konkurensi tugas tinggi dengan sejumlah besar file yang dibuka secara bersamaan dapat menyebabkan masalah kehabisan memori (OOM). Gunakan konfigurasi berikut untuk mengurangi tekanan memori.
{"mountOssType":"ossfs","readdirplus": "false", "inode_cache_eviction_threshold":"300000"}
Pasang OSS dengan ossfs 1.0
ossfs 1.0 memasang bucket OSS sebagai sistem file lokal pada sistem Linux. Dibandingkan dengan ossfs 2.0, ossfs 1.0 menyediakan dukungan operasi file yang lebih komprehensif. Jika Anda mengalami ketidakcocokan operasi file dengan ossfs 2.0, coba gunakan ossfs 1.0 sebagai gantinya.
Untuk informasi lebih lanjut tentang parameter yang diperlukan untuk pemasangan dengan ossfs 1.0, lihat opsi pemasangan ossfs 1.0.
Pasang OSS dengan JindoFuse
Anda dapat menggunakan komponen JindoFuse untuk memasang dataset OSS ke jalur tertentu dalam kontainer. Tool ini cocok untuk skenario berikut:
-
Anda ingin membaca data OSS seolah-olah itu adalah dataset lokal, atau dataset tersebut cukup kecil sehingga dapat memanfaatkan akselerasi cache lokal JindoFuse.
-
Anda perlu menulis data ke OSS.
Di bagian Advanced Settings, Anda dapat mengatur parameter lanjutan. Pisahkan beberapa opsi dengan koma (,). Kode berikut hanya menunjukkan contoh. Untuk deskripsi parameter dan opsi konfigurasi lainnya, lihat Panduan Pengguna JindoFuse dan Gunakan JindoFuse untuk memasang dan mengakses data.
Saat ini, DataWorks hanya mendukung parameter dalam format key=value.
{
"mountOssType":"jindofuse",
"fs.oss.download.thread.concurrency": "2 × jumlah core CPU",
"fs.oss.upload.thread.concurrency": "2 × jumlah core CPU",
"attr_timeout": 3,
"entry_timeout": 0,
"negative_timeout": 0
}
Gunakan dataset NAS
Untuk dataset berbasis NAS, Anda dapat menentukan konfigurasi (menggunakan parameter nasOptions) untuk mengakses sistem file Apsara File Storage NAS (NAS) berbasis NFS. Kode berikut menunjukkan konfigurasi default. Untuk menyesuaikan nilai parameter, lihat Memasang sistem file NFS secara manual.
-
Hanya sistem file NAS yang menggunakan Protokol NFS yang dapat dipasang.
-
Untuk NAS, hanya satu parameter konfigurasi lanjutan yang didukung:
nasOptions. Untuk menyesuaikan parameter pemasangan NAS, Anda dapat mengatur Advanced Configuration menjadi{"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.
{"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}