Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BUAT MODEL
Topik
Prasyarat
Sebelum Anda menggunakan pernyataan CREATE MODEL, lengkapi prasyarat diPenyiapan klaster untuk menggunakan Amazon Redshift ML. Berikut ini adalah ringkasan prasyarat tingkat tinggi.
-
Buat cluster Amazon Redshift dengan AWS Management Console atau AWS Command Line Interface (AWS CLI).
-
Lampirkan kebijakan AWS Identitas dan Manajemen Akses (IAM) saat membuat cluster.
-
Untuk memungkinkan Amazon Redshift dan SageMaker AI mengambil peran untuk berinteraksi dengan layanan lain, tambahkan kebijakan kepercayaan yang sesuai ke peran IAM.
Untuk detail tentang peran IAM, kebijakan kepercayaan, dan prasyarat lainnya, lihatPenyiapan klaster untuk menggunakan Amazon Redshift ML.
Berikut ini, Anda dapat menemukan berbagai kasus penggunaan untuk pernyataan CREATE MODEL.
Hak istimewa yang diperlukan
Berikut ini adalah hak istimewa yang diperlukan untuk CREATE MODEL:
-
Superuser
-
Pengguna dengan hak istimewa CREATE MODEL
-
Peran dengan hak istimewa GRANT CREATE MODEL
Pengendalian biaya
Amazon Redshift ML menggunakan sumber daya cluster yang ada untuk membuat model prediksi, jadi Anda tidak perlu membayar biaya tambahan. Namun, Anda mungkin memiliki biaya tambahan jika Anda perlu mengubah ukuran cluster Anda atau ingin melatih model Anda. Amazon Redshift ML menggunakan Amazon SageMaker AI untuk melatih model, yang memang memiliki biaya terkait tambahan. Ada cara untuk mengontrol biaya tambahan, seperti membatasi jumlah waktu maksimum pelatihan yang dapat diambil atau dengan membatasi jumlah contoh pelatihan yang digunakan untuk melatih model Anda. Untuk informasi selengkapnya, lihat Biaya untuk menggunakan Amazon Redshift ML.
LENGKAP MEMBUAT MODEL
Berikut ini merangkum opsi dasar sintaks CREATE MODEL lengkap.
Sintaks CREATE MODEL penuh
Berikut ini adalah sintaks lengkap dari pernyataan CREATE MODEL.
penting
Saat membuat model menggunakan pernyataan CREATE MODEL, ikuti urutan kata kunci dalam sintaks berikut.
CREATE MODEL model_name FROM { table_name | ( select_statement ) | 'job_name' } [ TARGET column_name ] FUNCTION function_name [ ( data_type [, ...] ) ] [ RETURNS data_type ] -- supported only for BYOM [ SAGEMAKER 'endpoint_name'[:'model_name']] -- supported only for BYOM remote inference IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [ AUTO ON / OFF ] -- default is AUTO ON [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER | KMEANS | FORECAST } ] -- not required for non AUTO OFF case, default is the list of all supported types -- required for AUTO OFF [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] -- not supported when AUTO OFF [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1_Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror'| 'reg:logistic'| 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge', 'multi:softmax' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | 'AverageWeightedQuantileLoss' ) ] -- for AUTO ON: first 5 are valid -- for AUTO OFF: 6-13 are valid -- for FORECAST: 14-18 are valid [ PREPROCESSORS 'string' ] -- required for AUTO OFF, when it has to be 'none' -- optional for AUTO ON [ HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( Key 'value' (,...) ) } ] -- support XGBoost hyperparameters, except OBJECTIVE -- required and only allowed for AUTO OFF -- default NUM_ROUND is 100 -- NUM_CLASS is required if objective is multi:softmax (only possible for AUTO OFF) [ SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | -- required TAGS 'string', | -- optional KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional, defualt is on. MAX_CELLS integer, | -- optional, default is 1,000,000 MAX_RUNTIME integer (, ...) | -- optional, default is 5400 (1.5 hours) HORIZON integer, | -- required if creating a forecast model FREQUENCY integer, | -- required if creating a forecast model PERCENTILES string, | -- optional if creating a forecast model MAX_BATCH_ROWS integer -- optional for BYOM remote inference ) ]
Parameter
- nama_model
-
Nama modul. Nama model dalam skema harus unik.
- DARI {table_name | (select_query) | 'job_name'}
-
Table_name atau kueri yang menentukan data pelatihan. Mereka dapat berupa tabel yang ada di sistem, atau kueri Amazon SELECT yang Redshift-compatible dilampirkan dengan tanda kurung, yaitu (). Setidaknya harus ada dua kolom dalam hasil kueri.
- Nama kolom TARGET
-
Nama kolom yang menjadi target prediksi. Kolom harus ada dalam klausa FROM.
- Fungsi nam a_fungsi (data_type [,...])
-
Nama fungsi yang akan dibuat dan tipe data dari argumen input. Anda dapat memberikan nama skema skema di database Anda alih-alih nama fungsi.
- RETURNS data_type
-
Jenis data yang akan dikembalikan dari fungsi model. Jenis
SUPERdata yang dikembalikan hanya berlaku untuk BYOM dengan inferensi jarak jauh. - SAGEMAKER 'nama titik akhir' [: 'nama_model']
-
Nama titik akhir Amazon SageMaker AI. Jika nama titik akhir menunjuk ke titik akhir multimodel, tambahkan nama model yang akan digunakan. Titik akhir harus di-host Wilayah AWS sama dengan cluster Amazon Redshift.
- <account-id><role-name>IAM_ROLE {default | 'arn:aws:iam: :rol/ '}
-
Gunakan kata kunci default agar Amazon Redshift menggunakan peran IAM yang ditetapkan sebagai default dan terkait dengan cluster saat perintah CREATE MODEL berjalan. Atau, Anda dapat menentukan ARN dari peran IAM untuk menggunakan peran itu.
- [OTOMATIS HIDUP/MATI]
-
Mengaktifkan atau menonaktifkan penemuan otomatis CREATE MODEL dari pemilihan preprosesor, algoritma, dan hiper-parameter. Menentukan saat membuat model Prakiraan menunjukkan untuk menggunakan AutoPredictor, di mana Amazon Forecast menerapkan kombinasi algoritma yang optimal untuk setiap deret waktu dalam kumpulan data Anda.
- TIPE_MODEL {XGBOOST | MLP | PEMBELAJAR_LINIER | KMEANS | PRAKIRAAN}
-
(Opsional) Menentukan jenis model. Anda dapat menentukan apakah Anda ingin melatih model tipe model tertentu, seperti XGBoost, multilayer perceptron (MLP), KMEANS, atau Linear Learner, yang semuanya merupakan algoritma yang didukung Amazon AI Autopilot. SageMaker Jika Anda tidak menentukan parameter, maka semua jenis model yang didukung dicari selama pelatihan untuk model terbaik. Anda juga dapat membuat model perkiraan di Redshift ML untuk membuat perkiraan deret waktu yang akurat.
- TIPE_MASALAH (REGRESI | KLASIFIKASI_BINER | KLASASI_MULTIKLASIFIKASI)
-
(Opsional) Menentukan jenis masalah. Jika Anda mengetahui jenis masalahnya, Anda dapat membatasi Amazon Redshift untuk hanya mencari model terbaik dari jenis model tertentu. Jika Anda tidak menentukan parameter ini, jenis masalah akan ditemukan selama pelatihan, berdasarkan data Anda.
- TUJUAN ('MSE' | 'Akurasi' | 'F1' | 'F1Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistik' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:logistik' | 'multi:softmax' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | '') AverageWeightedQuantileLoss
-
(Opsional) Menentukan nama metrik objektif yang digunakan untuk mengukur kualitas prediktif sistem pembelajaran mesin. Metrik ini dioptimalkan selama pelatihan untuk memberikan perkiraan terbaik untuk nilai parameter model dari data. Jika Anda tidak menentukan metrik secara eksplisit, perilaku defaultnya adalah secara otomatis menggunakan MSE: untuk regresi, F1: untuk klasifikasi biner, Akurasi: untuk klasifikasi multiclass. Untuk informasi selengkapnya tentang tujuan, lihat AutoMLJobObjective di parameter tugas Refer SageMaker ensi Amazon AI API dan Pem belajaran
di dokumentasi XGBOOST. Nilai RMSE, WAPE, MAPE, MASE, dan hanya berlaku untuk model AverageWeightedQuantileLoss Prakiraan. Untuk informasi selengkapnya, lihat operasi API CreateAutoPredictor. - PREPROCESSOR 'string'
-
(Opsional) Menentukan kombinasi tertentu dari preprocessor ke kumpulan kolom tertentu. Format adalah daftar ColumnSets, dan transformasi yang sesuai untuk diterapkan pada setiap set kolom. Amazon Redshift menerapkan semua transformator dalam daftar transformer tertentu ke semua kolom yang sesuai ColumnSet. Misalnya, untuk menerapkan OneHotEncoder dengan Imputer ke kolom t1 dan t2, gunakan perintah sampel berikut.
CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } PROBLEM_TYPE BINARY_CLASSIFICATION OBJECTIVE 'F1' PREPROCESSORS '[ ... {"ColumnSet": [ "t1", "t2" ], "Transformers": [ "OneHotEncoder", "Imputer" ] }, {"ColumnSet": [ "t3" ], "Transformers": [ "OneHotEncoder" ] }, {"ColumnSet": [ "temp" ], "Transformers": [ "Imputer", "NumericPassthrough" ] } ]' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' ) - HYPERPARAMETER {DEFAULT | DEFAULT KECUALI (kunci 'nilai' (,..))}
-
Menentukan apakah parameter XGBoost default digunakan atau diganti oleh nilai yang ditentukan pengguna. Nilai-nilai harus ditutup dengan tanda kutip tunggal. Berikut ini adalah contoh parameter untuk XGBoost dan defaultnya.
Nama parameter Nilai parameter Nilai default Catatan nom_class
Bilangan Bulat Diperlukan untuk klasifikasi Multiclass.
N/A num_putaran
Bilangan Bulat 100
N/A metode pohon
String Otomatis N/A kedalaman maksimum
Bilangan Bulat 6 [0, 10] berat min_anak Desimal 1 MinValue: 0, MaxValue: 120 subsampel Desimal 1 MinValue: 0.5, MaxValue: 1 gama Desimal 0 MinValue: 0, MaxValue: 5 alfa Desimal 0 MinValue: 0, MaxValue: 1000 eTea Desimal 0.3 MinValue: 0,1, MaxValue: 0,5 colsample_byleve Desimal 1 MinValue: 0,1, MaxValue: 1 colsample_bynode Desimal 1 MinValue: 0,1, MaxValue: 1 colsample_bytree Desimal 1 MinValue: 0.5, MaxValue: 1 Lambda Desimal 1 MinValue: 0, MaxValue: 1000 max_delta_step Bilangan Bulat 0 [0, 10] - PENGATURAN (S3_BUCKET 'amzn-s3-demo-bucket', | TAGS 'string', | KMS_KEY_ID 'kms_string', | S3_GARBAGE_COLLECT hidup/mati, | MAX_ CELLS integer, | MAX_RUNTIME (,...), | bilangan bulat HORIZON, | frekuensi predikast_frekuensi, | array string persentil)
-
Klausa S3_BUCKET menentukan lokasi Amazon S3 yang digunakan untuk menyimpan hasil perantara.
(Opsional) Parameter TAGS adalah daftar pasangan kunci-nilai yang dipisahkan koma yang dapat Anda gunakan untuk menandai sumber daya yang dibuat di Amazon SageMaker AI; dan Amazon Forecast. Tag membantu Anda mengatur sumber daya dan mengalokasikan biaya. Nilai dalam pasangan adalah opsional, sehingga Anda dapat membuat tag dengan menggunakan format
key=valueatau hanya dengan membuat kunci. Untuk informasi selengkapnya tentang tag di Amazon Redshift, lihat Ringkasan pen andaan.(Opsional) KMS_KEY_ID menentukan apakah Amazon Redshift menggunakan enkripsi sisi server dengan kunci untuk melindungi data saat diam. AWS KMS Data yang sedang transit dilindungi dengan Secure Sockets Layer (SSL).
(Opsional) S3_GARBAGE_COLLECT {ON | OFF} menentukan apakah Amazon Redshift melakukan pengumpulan sampah pada kumpulan data yang dihasilkan yang digunakan untuk melatih model dan model. Jika disetel ke OFF, kumpulan data yang dihasilkan digunakan untuk melatih model dan model tetap ada di Amazon S3 dan dapat digunakan untuk tujuan lain. Jika disetel ke AKTIF, Amazon Redshift menghapus artefak di Amazon S3 setelah pelatihan selesai. Defaultnya ON.
(Opsional) MAX_CELLS menentukan jumlah sel dalam data pelatihan. Nilai ini adalah produk dari jumlah catatan (dalam kueri atau tabel pelatihan) dikalikan jumlah kolom. Default adalah 1.000.000.
(Opsional) MAX_RUNTIME menentukan jumlah waktu maksimum untuk berlatih. Pekerjaan pelatihan sering selesai lebih cepat tergantung pada ukuran dataset. Ini menentukan jumlah waktu maksimum yang harus dilakukan pelatihan. Defaultnya adalah 5.400 (90 menit).
HORIZON menentukan jumlah prediksi maksimum yang dapat dikembalikan model perkiraan. Setelah model dilatih, Anda tidak dapat mengubah bilangan bulat ini. Parameter ini diperlukan jika melatih model perkiraan.
FREQUENCY menentukan seberapa terperinci dalam satuan waktu yang Anda inginkan dari perkiraan. Opsi yang tersedia adalah
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min. Parameter ini diperlukan jika melatih model perkiraan.(Opsional) PERCENTILES adalah string yang dipisahkan koma yang menentukan jenis perkiraan yang digunakan untuk melatih prediktor. Jenis prakiraan dapat berupa kuantil dari 0,01 hingga 0,99, dengan penambahan 0,01 atau lebih tinggi. Anda juga dapat menentukan perkiraan rata-rata dengan mean. Anda dapat menentukan maksimal lima jenis perkiraan.
- MAX_BATCH_ROWS bilangan bulat
-
(Opsional) Jumlah maksimum baris yang dikirim Amazon Redshift dalam permintaan batch tunggal untuk satu pemanggilan SageMaker AI. Ini didukung hanya untuk BYOM dengan inferensi jarak jauh. Nilai minimum parameter ini adalah 1. Nilai maksimumnya adalah
INT_MAX, atau 2.147.483.647. Parameter ini diperlukan hanya jika tipe data input dan yang dikembalikan adalah SUPER. Nilai defaultnya adalahINT_MAX, atau 2.147.483.647.