全部产品
Search
文档中心

MaxCompute:Operasi terkait Tampilan

更新时间:Jul 06, 2025

Tampilan adalah tabel virtual yang dibuat dari tabel yang ada di lapisan tabel. Tampilan memungkinkan Anda mempertahankan logika kueri (Pernyataan SQL) tanpa memerlukan tabel tambahan yang mengonsumsi ruang penyimpanan. Topik ini menjelaskan pernyataan untuk mengelola tampilan dan mencakup contoh penggunaannya.

Operasi

Tipe

Peran

Platform operasi

Buat atau perbarui tampilan

Pengguna dengan izin CreateTable dalam sebuah proyek

Anda dapat mengeksekusi perintah yang dijelaskan dalam topik ini pada platform berikut:

Ubah nama tampilan

Pengguna dengan izin Alter pada tabel

Ubah pemilik tampilan

Pengguna dengan izin Alter pada tabel

Daftar semua tampilan standar dalam sebuah proyek

Pengguna dengan izin List pada objek dalam sebuah proyek

Kueri tampilan

Pengguna dengan izin Describe untuk membaca metadata tabel

Hapus tampilan

Pengguna dengan izin Drop pada tabel

Buat atau perbarui tampilan

Operasi ini digunakan untuk membuat tampilan baru atau memperbarui tampilan yang sudah ada menggunakan pernyataan kueri.

  • Batasan

    • Tampilan dapat merujuk ke tampilan lain, tetapi tidak boleh menciptakan referensi sirkular atau merujuk pada dirinya sendiri.

    • Data tidak dapat ditulis ke dalam tampilan. Operasi seperti INSERT INTO atau INSERT OVERWRITE tidak diperbolehkan.

  • Sintaksis

    CREATE [OR REPLACE] VIEW [IF NOT EXISTS] <view_name>
        [(<col_name> [comment <col_comment>], ...)]
        [comment <view_comment>]
        AS <select_statement>;
  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    OR REPLACE

    Tidak

    Bidang ini harus disertakan untuk memperbarui tampilan yang sudah ada.

    IF NOT EXISTS

    Tidak

    Jika IF NOT EXISTS tidak ditentukan, upaya membuat tampilan yang sudah ada menggunakan CREATE VIEW akan menghasilkan pengecualian. Dalam hal ini, CREATE OR REPLACE VIEW dapat digunakan untuk membuat ulang tampilan, dan izin tampilan tetap tidak berubah setelah pembuatan ulang.

    view_name

    Ya

    Nama tampilan yang akan dibuat atau diperbarui.

    col_name

    Ya

    Nama kolom dalam tampilan yang akan dibuat.

    col_comment

    Tidak

    Komentar untuk kolom dalam tampilan yang akan dibuat.

    view_comment

    Tidak

    Komentar untuk tampilan yang akan dibuat.

    select_statement

    Ya

    Pernyataan kueri SELECT yang berfungsi sebagai sumber data untuk tampilan. Anda harus memiliki izin baca untuk tabel yang dirujuk dalam tampilan. Hanya satu pernyataan SELECT yang valid yang diizinkan dalam sebuah tampilan.

    Catatan

    Setelah tampilan dibuat atau diperbarui, tampilan mungkin tidak dapat diakses jika tabel yang dirujuknya dimodifikasi, misalnya jika tabel yang dirujuk dihapus. Pastikan untuk memelihara pemetaan antara tabel yang dirujuk dan tampilan.

  • Contoh

    • Contoh 1: Buat tampilan sale_detail_view berdasarkan tabel sale_detail.

      CREATE VIEW IF NOT EXISTS sale_detail_view 
      (store_name, customer_id, price, sale_date, region) 
      comment 'a view for table sale_detail' 
      AS SELECT * FROM sale_detail;
    • Contoh 2: Perbarui tampilan sale_detail_view berdasarkan tabel sale_detail.

      CREATE OR REPLACE VIEW IF NOT EXISTS sale_detail_view 
      (store_name, customer_id, price)
      comment 'a view for table sale_detail'
      AS SELECT shop_name, customer_id, total_price FROM sale_detail;

Ubah nama tampilan

  • Sintaksis

    ALTER VIEW <view_name> RENAME TO <new_view_name>;
  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    view_name

    Ya

    Nama tampilan yang akan diubah namanya.

    new_view_name

    Ya

    Nama baru untuk tampilan. Kesalahan akan dikembalikan jika tampilan dengan nama baru sudah ada.

  • Contoh

    --Ubah nama tampilan sale_detail_view menjadi market.
    ALTER VIEW sale_detail_view RENAME TO market;

Ubah pemilik tampilan

  • Sintaksis

    ALTER VIEW <view_name> CHANGEOWNER TO <new_owner>;
  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    view_name

    Ya

    Nama tampilan yang pemiliknya ingin Anda ubah.

    new_owner

    Ya

    Akun pemilik baru setelah modifikasi.

  • Contoh

    --Ubah pemilik tampilan sale_detail_view menjadi ALIYUN$xxx@aliyun.com.
    ALTER VIEW sale_detail_view CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';

Daftar semua tampilan standar dalam sebuah proyek

Catatan

Perintah SHOW VIEWS; memerlukan Klien MaxCompute (odpscmd) versi V0.43.0 atau lebih baru.

  • Sintaksis

    Untuk mencantumkan hanya tampilan dalam sebuah proyek, gunakan SHOW VIEWS;. Sebagai alternatif, SHOW TABLES; mencantumkan semua tabel dan tampilan dalam sebuah proyek. Untuk informasi lebih lanjut, lihat Daftar Tabel dan Tampilan dalam Sebuah Proyek.

    --Daftar semua tampilan standar dalam sebuah proyek.
    SHOW VIEWS;
    --Daftar tampilan dalam sebuah proyek yang namanya cocok dengan pola grafik.
    SHOW VIEWS LIKE '<chart>';
  • Contoh

    SHOW VIEWS LIKE 'sale*';  

    Hasil yang Dikembalikan:

    ALIYUN$account_name:sale_detail_view
    ......
    --ALIYUN adalah prompt sistem, yang menunjukkan bahwa tabel dibuat menggunakan akun Alibaba Cloud. Jika Anda adalah pengguna RAM, prompt sistemnya adalah RAM.

Kueri tampilan

Lihat informasi definisi, waktu pembuatan, proyek tempat tampilan berada, serta metadata lainnya.

  • Sintaksis

    DESC <view_name>; 
  • Parameter

    view_name: Diperlukan. Nama tampilan yang ingin Anda kueri.

  • Contoh

    DESC sale_detail_view;

    Hasil yang Dikembalikan:

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$san****@aliyunid.com                  |
    | Project:                  aning****                                               |
    | Schema:                   default                                                  |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-03-19 13:22:48                                      |
    | LastDDLTime:              2025-03-19 13:22:48                                      |
    | LastModifiedTime:         2025-03-19 13:22:48                                      |
    +------------------------------------------------------------------------------------+
    | VirtualView  : YES                                                                 |
    | ViewText: SELECT shop_name, customer_id, total_price FROM sale_detail              |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | shop_name       | string     |       |                                             |
    | customer_id     | string     |       |                                             |
    | total_price     | double     |       |                                             |
    +------------------------------------------------------------------------------------+

Hapus tampilan

Perintah ini digunakan untuk menghapus tampilan yang sudah ada dari database.

  • Sintaksis

    DROP VIEW [IF EXISTS] <view_name>;
  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    IF EXISTS

    Tidak

    Jika tampilan tidak ada dan IF EXISTS tidak ditentukan, kesalahan akan dikembalikan.

    view_name

    Ya

    Nama tampilan yang akan dihapus.

  • Contoh

    --Hapus tampilan sale_detail_view.
    DROP VIEW IF EXISTS sale_detail_view;