All Products
Search
Document Center

MaxCompute:Mengelola view

Last Updated:Jul 23, 2026

View adalah tabel virtual yang didefinisikan oleh kueri berdasarkan satu atau beberapa tabel. View memungkinkan Anda menyimpan logika kueri (pernyataan SQL) tanpa membuat tabel fisik yang mengonsumsi ruang penyimpanan. Topik ini menjelaskan perintah untuk mengelola view beserta contoh penggunaannya.

Tabel berikut menjelaskan perintah yang digunakan untuk mengelola view.

Operation

Description

Required permission

Platform

Create or update a view

Membuat view berdasarkan kueri atau memperbarui view yang sudah ada.

Izin CreateTable pada proyek.

Anda dapat menjalankan perintah-perintah ini pada platform berikut:

Rename a view

Mengubah nama view yang sudah ada.

Izin Alter pada view.

Change the owner of a view

Mengubah pemilik view yang sudah ada.

Pemilik proyek.

List standard views

Menampilkan semua view standar dalam suatu proyek.

Izin List pada proyek.

View the DDL statement for a standard view

Menampilkan pernyataan DDL dari view standar.

Izin Describe pada view.

Describe a view

Menampilkan metadata dari view yang sudah ada.

Izin Describe pada view.

Drop a view

Menghapus view yang sudah ada.

Izin Drop pada view.

Create or update a view

Membuat view berdasarkan kueri atau memperbarui view yang sudah ada.

  • Limitations

    • View dapat mereferensi view lain, tetapi tidak dapat mereferensi dirinya sendiri atau membentuk referensi sirkular.

    • Anda tidak dapat menulis data ke view. Misalnya, Anda tidak dapat menggunakan INSERT INTO atau INSERT OVERWRITE pada view.

  • Syntax

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

    Parameter

    Required

    Description

    OR REPLACE

    No

    Sertakan klausa ini untuk memperbarui view.

    IF NOT EXISTS

    No

    Jika Anda tidak menentukan IF NOT EXISTS, kesalahan akan dikembalikan saat Anda menggunakan CREATE VIEW pada view yang sudah ada. Dalam kasus ini, Anda dapat menggunakan CREATE OR REPLACE VIEW untuk membuat ulang view tersebut. Izin view tetap tidak berubah setelah pembuatan ulang.

    view_name

    Yes

    Nama view yang ingin Anda buat atau perbarui.

    col_name

    Yes

    Nama kolom dalam view yang akan dibuat.

    col_comment

    No

    Komentar untuk kolom dalam view.

    view_comment

    No

    Komentar untuk view.

    select_statement

    Yes

    Kueri SELECT yang mendefinisikan view. Anda harus memiliki izin baca pada tabel yang direferensikan oleh view tersebut. View hanya dapat berisi satu pernyataan SELECT yang valid.

    Catatan

    View mungkin menjadi tidak dapat diakses jika tabel yang direferensikan diubah, misalnya jika tabel tersebut dihapus. Anda harus memelihara pemetaan antara view dan tabel yang direferensikannya.

  • Examples

    • Contoh 1: Buat view bernama 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 view 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;

Rename a view

Mengubah nama view yang sudah ada.

  • Syntax

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

    Parameter

    Required

    Description

    view_name

    Yes

    Nama view yang ingin Anda ubah namanya.

    new_view_name

    Yes

    Nama baru view tersebut. Kesalahan terjadi jika view dengan nama yang sama sudah ada.

  • Example

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

Change the owner of a view

Mengubah pemilik view yang sudah ada.

  • Syntax

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

    Parameter

    Required

    Description

    view_name

    Yes

    Nama view tersebut.

    new_owner

    Yes

    Akun pemilik baru.

  • Example

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

List standard views

Catatan

Perintah SHOW VIEWS; memerlukan MaxCompute client (odpscmd) versi 0.43.0 atau lebih baru.

  • Syntax

    Jalankan SHOW VIEWS; untuk menampilkan hanya view dalam suatu proyek. Anda juga dapat menjalankan SHOW TABLES; untuk menampilkan semua tabel dan view dalam suatu proyek. Untuk informasi selengkapnya, lihat List tables and views in a project.

    -- Tampilkan semua view standar dalam suatu proyek.
    SHOW VIEWS;
    -- Tampilkan view dalam proyek yang namanya sesuai pola tertentu.
    SHOW VIEWS LIKE '<chart>';
  • Example

    SHOW VIEWS LIKE 'sale*';  

    Hasil berikut dikembalikan:

    ALIYUN$account_name:sale_detail_view
    ......
    -- Prompt ALIYUN menunjukkan bahwa Anda menggunakan Akun Alibaba Cloud. Jika Anda menggunakan RAM user, prompt-nya adalah RAM.

View the DDL statement

Menampilkan pernyataan DDL dari view standar.

  • Syntax

    SHOW CREATE VIEW <view_name>;
  • Parameters

    view_name: Wajib. Nama view standar.

  • Example

    -- Tampilkan pernyataan pembuatan untuk 'sale_detail_view'.
    SHOW CREATE VIEW sale_detail_view;
    -- Hasil berikut dikembalikan:
    CREATE VIEW IF NOT EXISTS project.sale_detail_view(store_name,customer_id,price,sale_date,region) COMMENT 'a view for table sale_detail' AS SELECT sale_detail.shop_name, sale_detail.customer_id, sale_detail.total_price, sale_detail.sale_date, sale_detail.region FROM project.sale_detail sale_detail;

Describe a view

Menampilkan metadata view, seperti definisinya (ViewText), waktu pembuatan, dan proyeknya.

  • Syntax

    DESC <view_name>; 
  • Parameters

    view_name: Wajib. Nama view tersebut.

  • Example

    DESC sale_detail_view;

    Hasil berikut 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     |       |                                             |
    +------------------------------------------------------------------------------------+

Drop a view

Menghapus view yang sudah ada.

  • Syntax

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

    Parameter

    Required

    Description

    IF EXISTS

    No

    Jika view tidak ada dan Anda tidak menentukan IF EXISTS, kesalahan terjadi.

    view_name

    Yes

    Nama view yang akan dihapus.

  • Example

    -- Hapus view 'sale_detail_view'.
    DROP VIEW IF EXISTS sale_detail_view;