Topik ini menjelaskan cara menganalisis distribusi biaya MaxCompute berdasarkan catatan penggunaan. Anda dapat memperoleh dan menganalisis tagihan MaxCompute untuk mencegah biaya tak terduga, memaksimalkan pemanfaatan resource, serta mengurangi pengeluaran.
Informasi latar belakang
MaxCompute adalah layanan komputasi data besar cloud-native yang dikembangkan oleh Alibaba Cloud. Sebelumnya dikenal sebagai ODPS, layanan ini merupakan gudang data enterprise-grade berbasis SaaS dan AI-native yang menawarkan efisiensi biaya tinggi, komputasi multi-model, keamanan enterprise-grade, serta kemampuan berbasis AI. Anda dapat menggunakan metode penagihan langganan atau bayar sesuai pemakaian untuk resource komputasi MaxCompute. MaxCompute menagih Anda setiap hari per proyek. Tagihan dihasilkan sebelum pukul 06.00 pada hari berikutnya. Untuk informasi lebih lanjut tentang item yang dapat ditagih dan metode penagihan, lihat Billing items and billing methods.
Alibaba Cloud menerbitkan informasi tentang fluktuasi tagihan MaxCompute—biasanya kenaikan biaya—selama pengembangan data atau sebelum rilis produk. Anda dapat menganalisis fluktuasi tersebut dan mengoptimalkan pekerjaan di proyek MaxCompute Anda. Anda dapat mengunduh catatan penggunaan untuk semua layanan berbayar Alibaba Cloud dari Konsol Expenses and Costs. Untuk informasi lebih lanjut tentang cara memperoleh dan mengunduh tagihan, lihat View billing details.
Langkah 1: Unduh catatan penggunaan
Buka halaman Usage Records untuk mengunduh catatan penggunaan harian dan memahami pembentukan biaya. Misalnya, identifikasi pekerjaan mana yang menghasilkan biaya penyimpanan dan komputasi harian.

Klik Export CSV. Setelah menunggu sebentar, buka halaman Export Records untuk mengunduh catatan penggunaan.
Deskripsi parameter
Time Period: Klik untuk memilih waktu mulai dan akhir.
Jika suatu pekerjaan dimulai pada 1 Desember dan berakhir pada 2 Desember, atur waktu mulai menjadi 1 Desember agar pekerjaan tersebut termasuk dalam catatan penggunaan yang diunduh. Namun, catatan konsumsi akan muncul dalam tagihan tanggal 2 Desember.
Commodity Name:
MaxCompute(Subscription)
MaxCompute (Pay-as-you-go)
Billable Item: Anda dapat memilih sesuai kebutuhan.
Billable Item
ODPSDataPlus:
Jika Anda hanya membeli proyek subscription untuk MaxCompute di suatu wilayah, penggunaan item penagihan pay-as-you-go seperti penyimpanan dan unduhan akan diukur dalam proyek subscription tersebut.
Sebelum 25 April 2024, jika Anda memiliki proyek MaxCompute subscription dan pay-as-you-go yang diaktifkan di Hong Kong (Tiongkok) atau wilayah di luar Tiongkok, kuota komputasi default dikaitkan dengan proyek subscription. Kuota ini juga mencakup detail pengukuran untuk item penagihan penyimpanan dan unduhan pay-as-you-go. Dalam kasus seperti ini, Anda dapat memperoleh detail pengukuran untuk kuota komputasi default proyek pay-as-you-go dengan melakukan kueri terhadap MaxCompute (Pay-As-You-Go).
ODPS_QUOTA_USAGE: Catatan metering untuk resource komputasi elastically reserved dan resource Tunnel khusus.
MaxCompute (Pay-as-you-go): Catatan metering untuk item penagihan pay-as-you-go, seperti komputasi, penyimpanan, dan unduhan.
Time Unit: Jam, secara default.
Langkah 2 (Opsional): Unggah catatan penggunaan ke MaxCompute
Jika Anda ingin menganalisis catatan penggunaan menggunakan SQL MaxCompute, ikuti langkah ini untuk mengunggahnya ke MaxCompute. Lewati langkah ini jika Anda hanya berencana menggunakan Excel.
Buat tabel MaxCompute bernama
maxcomputefeemenggunakan client MaxCompute (odpscmd). Contoh pernyataan:CREATE TABLE IF NOT EXISTS maxcomputefee ( projectid STRING COMMENT 'Project ID' ,feeid STRING COMMENT 'Metering ID' ,meteringtime STRING COMMENT 'MeteringTime' ,type STRING COMMENT 'Metering type, such as Storage, ComputationSQL, or DownloadEx' ,starttime STRING COMMENT 'Start time' ,storage BIGINT COMMENT 'Storage (bytes)' ,endtime STRING COMMENT 'End time' ,computationsqlinput BIGINT COMMENT 'SQL input (bytes)' ,computationsqlcomplexity DOUBLE COMMENT 'SQL complexity' ,uploadex BIGINT COMMENT 'Internet upload (bytes)' ,download BIGINT COMMENT 'Internet download (bytes)' ,cu_usage DOUBLE COMMENT 'MR/Spark compute (core*second)' ,Region STRING COMMENT 'Region' ,input_ots BIGINT COMMENT 'Input from Tablestore (bytes)' ,input_oss BIGINT COMMENT 'Input from OSS (bytes)' ,source_id STRING COMMENT 'DataWorks node ID' ,source_type STRING COMMENT 'Specification type' ,RecycleBinStorage BIGINT COMMENT 'Recycle bin storage (bytes)' ,JobOwner STRING COMMENT 'Job owner' ,Signature STRING COMMENT 'SQL job signature' );Deskripsi field:
Project ID: Daftar proyek MaxCompute untuk Akun Alibaba Cloud Anda atau Akun Alibaba Cloud yang terkait dengan Pengguna RAM saat ini.
Metering ID: ID penagihan. Ini adalah ID tugas untuk tugas penyimpanan, komputasi, unggah, atau unduh. Untuk tugas SQL, ini adalah InstanceID. Untuk tugas unggah atau unduh, ini adalah Tunnel SessionId.
Metering type: Storage, ComputationSql, UploadIn, UploadEx, DownloadIn, atau DownloadEx. Hanya item yang ditampilkan dalam warna merah yang ditagih.
Storage (bytes): Volume penyimpanan yang dibaca per jam, dalam byte.
Start time atau End time: Diukur berdasarkan waktu eksekusi pekerjaan aktual. Hanya penyimpanan yang diambil sampelnya per jam.
SQL input (bytes): Volume data input untuk setiap eksekusi SQL, dalam byte.
SQL complexity: Kompleksitas SQL, salah satu faktor penagihan SQL.
Internet upload (bytes) atau Internet download (bytes): Volume data yang diunggah atau diunduh melalui Internet, dalam byte.
MR/Spark compute (core*second): Jam yang dapat ditagih untuk pekerjaan MapReduce atau Spark, diukur dalam
core*second. Konversikan ke jam yang dapat ditagih.SQL input from Tablestore (bytes) atau SQL input from OSS (bytes): Volume data input setelah tabel eksternal ditagih, dalam byte.
Backup Storage (Byte): Jumlah penyimpanan backup yang dibaca per jam.
Region: Wilayah tempat proyek MaxCompute berada.
Job owner: Pengguna yang mengajukan pekerjaan.
SQL job signature: Mengidentifikasi pekerjaan SQL. Pekerjaan dengan konten identik tetapi dieksekusi berulang atau dijadwalkan memiliki signature yang sama.
Unggah data menggunakan Tunnel.
Saat mengunggah file CSV, pastikan jumlah kolom dan tipe data sesuai dengan tabel maxcomputefee. Jika tidak, unggahan akan gagal.
tunnel upload ODPS_2019-01-12_2019-01-14.csv maxcomputefee -c "UTF-8" -h "true" -dfp "yyyy-M-d HH:mm";Untuk konfigurasi perintah Tunnel, lihat Tunnel commands.
Anda juga dapat menggunakan fitur impor data DataWorks. Untuk detailnya, lihat Import data using DataWorks (offline and real-time).
Jalankan pernyataan berikut untuk memverifikasi data.
SELECT * FROM maxcomputefee limit 10;
Langkah 3: Analisis data penagihan
Analisis biaya SQL
Sembilan puluh lima persen pengguna cloud memenuhi kebutuhan bisnis mereka hanya dengan menggunakan MaxCompute SQL. Biaya SQL juga menyumbang porsi besar dalam tagihan MaxCompute.
Biaya SQL = Volume data input × Kompleksitas SQL × Harga satuan (USD 0,0438 per GB)
Metode 1: Analisis menggunakan Excel
Analisis catatan dengan Metering type ComputationSql dalam catatan penggunaan. Periksa apakah ada biaya pekerjaan SQL yang melebihi ekspektasi atau terlalu banyak pekerjaan SQL. Hitung biaya pekerjaan SQL menggunakan rumus ini:
SQL input (bytes)/1024/1024/1024 × Kompleksitas SQL × Harga satuan SQL.Misalnya, pekerjaan SQL standar dengan volume input
7352600872 bytemenghasilkan biayaSQL input (7352600872 byte/1024/1024/1024) × Kompleksitas SQL 1 × CNY 0,3 per GB = CNY 2.Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze SQL fees, ranked by sqlmoney. SELECT to_char(endtime,'yyyymmdd') as ds,feeid as instanceid ,projectid ,computationsqlcomplexity -- Complexity ,SUM((computationsqlinput / 1024 / 1024 / 1024)) as computationsqlinput -- Input volume (GB) ,SUM((computationsqlinput / 1024 / 1024 / 1024)) * computationsqlcomplexity * 0.0438 AS sqlmoney FROM maxcomputefee WHERE TYPE = 'ComputationSql' AND to_char(endtime,'yyyymmdd') >= '20190112' GROUP BY to_char(endtime,'yyyymmdd'),feeid ,projectid ,computationsqlcomplexity ORDER BY sqlmoney DESC LIMIT 10000 ;
Kesimpulan dari hasil kueri:
Pekerjaan besar dapat mengurangi data yang dibaca, menurunkan kompleksitas, dan mengoptimalkan biaya.
Rangkum data yang diproses per hari menggunakan field
dsuntuk menganalisis tren biaya SQL dari waktu ke waktu. Gunakan alat seperti Excel atau Quick BI untuk membuat grafik garis guna visualisasi yang lebih jelas.Untuk menemukan titik optimasi, lakukan hal berikut:
Ambil URL LogView untuk log eksekusi dari instans yang diidentifikasi oleh instanceid.
Jalankan
wait <instanceid>;di client MaxCompute (odpscmd) atau DataWorks untuk melihat log eksekusi instance dengan ID instanceid.
Jalankan perintah berikut untuk melihat detail pekerjaan:
DESC instance 2016070102275442go3xxxxxx;Respons:
ID 2016070102275442go3xxxxxx Owner ALIYUN$***@aliyun-inner.com StartTime 2016-07-01 10:27:54 EndTime 2016-07-01 10:28:16 Status Terminated console_query_task_1467340078684 Success Query select count(*) from src where ds='20160628';Buka URL LogView di browser Anda. Di LogView, klik tab SourceXML untuk mengambil nilai SKYNET_NODENAME.
CatatanUntuk informasi lebih lanjut tentang LogView, lihat View job run information using Logview 2.0.
Jika nilai parameter SKYNET_NODENAME tidak dapat diambil atau parameter SKYNET_NODENAME tidak memiliki nilai, Anda dapat memperoleh potongan kode dari tab SQL Script. Anda kemudian dapat mencari potongan kode tersebut di DataWorks untuk menemukan dan mengoptimalkan node target. Untuk informasi lebih lanjut, lihat DataWorks code search.
Di DataWorks, cari node menggunakan nilai SKYNET_NODENAME dan optimalkan.
Analisis tren pertumbuhan pekerjaan
Biaya sering meningkat karena lonjakan pekerjaan akibat eksekusi berulang atau atribut penjadwalan yang salah konfigurasi.
Metode 1: Analisis menggunakan Excel
Analisis catatan dengan Metering type ComputationSql dalam catatan penggunaan. Hitung jumlah pekerjaan harian per proyek dan periksa adanya fluktuasi besar dalam jumlah pekerjaan.
Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze job growth trends. SELECT TO_CHAR(endtime,'yyyymmdd') AS ds ,projectid ,COUNT(*) AS tasknum FROM maxcomputefee WHERE TYPE = 'ComputationSql' AND TO_CHAR(endtime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(endtime,'yyyymmdd') ,projectid ORDER BY tasknum DESC LIMIT 10000 ;Amati tren jumlah pekerjaan untuk pekerjaan yang diajukan ke dan berhasil dijalankan di MaxCompute antara 12 hingga 14 Januari.
Analisis biaya penyimpanan
Analisis mengapa biaya penyimpanan sebesar CNY 0,01 menggunakan Excel:
Setelah Anda mengaktifkan uji coba MaxCompute, tidak ada beban kerja yang dijalankan di MaxCompute, tetapi Anda menerima tagihan ¥0,01 setiap hari. Hal ini biasanya terjadi karena data sisa disimpan di MaxCompute, dan volume datanya tidak melebihi 0,5 GB.
Periksa catatan dengan Metering type Storage. Seperti yang ditunjukkan pada gambar, proyek
maxcompute_docmenyimpan 508 byte. Berdasarkan aturan penagihan penyimpanan, data ≤ 512 MB dikenai biaya CNY 0,01.
Jika data ini hanya untuk pengujian, selesaikan masalah sebagai berikut:Jika hanya data tabel yang tidak digunakan, jalankan pernyataan
Drop Tableuntuk menghapus data tabel di proyek.Jika proyek tidak digunakan, Anda dapat menghapusnya di Konsol MaxCompute di bawah .
Analisis Excel untuk biaya penyimpanan data
kurang dari satu hari:Periksa catatan dengan Metering type Storage. Asumsikan proyek alian (contoh nama proyek) menyimpan 333507833900 byte. Karena data diunggah pada pukul 08.00, penagihan dimulai pada pukul 09.07 dan mencakup 15 jam.
Siklus penagihan berakhir pada akhir setiap hari, sehingga catatan terakhir tidak termasuk dalam tagihan 4 April.
Hitung rata-rata penyimpanan 24 jam sesuai aturan penagihan penyimpanan, lalu terapkan rumus penagihan.
-- Calculate average storage. 333507833900 bytes × 15 / 1024 / 1024 / 1024 / 24 = 194.127109076362103 GB -- Calculate daily storage fee, rounded to four decimal places. 194.127109076362103 GB × USD 0.0006 per GB per day = USD 0.1165 per day
Analisis distribusi biaya penyimpanan menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze storage fees. SELECT t.ds ,t.projectid ,t.storage ,CASE WHEN t.storage < 0.5 THEN t.storage*0.01 -- Unit price is CNY 0.01 per GB per day if actual storage is > 0 MB and ≤ 512 MB. WHEN t.storage >= 0.5 THEN t.storage*0.004 -- Unit price is CNY 0.004 per GB per day if actual storage is > 512 MB. END storage_fee FROM ( SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24 AS storage FROM maxcomputefee WHERE TYPE = 'Storage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid ) t ORDER BY storage_fee DESC ;Hasil:
Kesimpulan:Penyimpanan meningkat pada 12 Januari dan menurun pada 14 Januari.
Untuk mengoptimalkan penyimpanan, atur siklus hidup untuk tabel dan hapus tabel temporary yang tidak diperlukan.
Analisis penyimpanan jangka panjang, penyimpanan Akses Jarang (IA), akses penyimpanan jangka panjang, dan akses penyimpanan IA menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze long-term storage fees. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24*0.0011 AS longTerm_storage FROM maxcomputefee WHERE TYPE = 'ColdStorage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze IA storage fees. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24*0.0011 AS lowFre_storage FROM maxcomputefee WHERE TYPE = 'LowFreqStorage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze long-term storage access fees. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(computationsqlinput/1024/1024/1024)*0.522 AS longTerm_IO FROM maxcomputefee WHERE TYPE = 'SqlLongterm' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze IA storage access fees. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(computationsqlinput/1024/1024/1024)*0.522 AS lowFre_IO FROM maxcomputefee WHERE TYPE = 'SqlLowFrequency' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid;
Analisis biaya unduhan
MaxCompute menagih Anda untuk unduhan data berbasis Internet atau cross-region berdasarkan jumlah yang diunduh.
Biaya unduhan = Volume data yang diunduh × Harga satuan (USD 0,1166 per GB)
Metode 1: Analisis menggunakan Excel
Metering type = DownloadEx menunjukkan penagihan unduhan Internet.
Misalnya, Anda menemukan catatan untuk trafik unduhan sebesar 0,036 GB (38.199.736 byte). Dalam kasus ini, biaya unduhan dihitung berdasarkan aturan penagihan yang dijelaskan dalam Download pricing (pay-as-you-go) menggunakan rumus berikut:
(38.199.736 byte/1024/1024/1024) × 0,1166 USD/GB = 0,004 USD.Optimalkan unduhan. Periksa apakah layanan Tunnel Anda menggunakan jaringan publik, yang dikenai biaya. Untuk informasi lebih lanjut, lihat Endpoint. Untuk unduhan massal, jika Anda berada di Suzhou dan wilayah Anda adalah Tiongkok (Shanghai), unduh terlebih dahulu data ke mesin virtual menggunakan Instance ECS di Tiongkok (Shanghai), lalu gunakan Instance ECS berlangganan Anda untuk mengunduh data tersebut.
Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze download fees. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,SUM((download/1024/1024/1024)*0.1166) AS download_fee FROM maxcomputefee WHERE type = 'DownloadEx' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ORDER BY download_fee DESC ;
Analisis Konsumsi Pekerjaan MapReduce
Biaya pekerjaan MapReduce = Total jam yang dapat ditagih × Harga satuan (USD 0,0690 per jam per tugas)
Metode 1: Analisis menggunakan Excel
Analisis catatan dengan Metering type MapReduce dalam catatan penggunaan. Hitung dan urutkan biaya pekerjaan MapReduce berdasarkan jenis spesifikasi. Rumus biaya pekerjaan MapReduce:
(MR/Spark compute (core*second)/3600 × Harga satuan (USD 0,0690))Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze MapReduce job fees. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(cu_usage/3600)*0.0690 AS mr_fee FROM maxcomputefee WHERE type = 'MapReduce' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,cu_usage ORDER BY mr_fee DESC ;
Analisis pekerjaan tabel eksternal (Tablestore dan OSS)
Biaya tabel eksternal SQL = Volume data input × Harga satuan (USD 0,0044 per GB)
Metode 1: Analisis menggunakan Excel
Analisis catatan dengan Metering type ComputationSqlOTS atau ComputationSqlOSS dalam catatan penggunaan. Urutkan biaya tabel eksternal SQL. Rumus biaya:
SQL input (bytes)/1024/1024/1024 × Harga satuan (USD 0,0044).Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze Tablestore external table SQL job fees. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(computationsqlinput/1024/1024/1024)*1*0.03 AS ots_fee FROM maxcomputefee WHERE type = 'ComputationSqlOTS' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,computationsqlinput ORDER BY ots_fee DESC ; -- Analyze OSS external table SQL job fees. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(computationsqlinput/1024/1024/1024)*1*0.03 AS oss_fee FROM maxcomputefee WHERE type = 'ComputationSqlOSS' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,computationsqlinput ORDER BY oss_fee DESC ;
Analisis biaya komputasi Spark
Biaya pekerjaan Spark = Total jam yang dapat ditagih × Harga satuan (USD 0,1041 per jam per tugas)
Metode 1: Analisis menggunakan Excel
Analisis catatan dengan Metering type Spark dalam catatan penggunaan. Urutkan biaya pekerjaan. Rumus biaya:
(MR/Spark compute (core*second)/3600 × Harga satuan (USD 0,1041)).Metode 2: Analisis menggunakan SQL
Anda telah menyelesaikan Langkah 2 dan membuat tabel maxcomputefee:
-- Analyze Spark job fees. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(cu_usage/3600)*0.1041 AS mr_fee FROM maxcomputefee WHERE type = 'spark' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,cu_usage ORDER BY mr_fee DESC ;