All Products
Search
Document Center

Data Lake Formation:Akses DLF dari MaxCompute

Last Updated:Jun 19, 2026

MaxCompute memperkenalkan proyek eksternal yang dipetakan ke katalog Data Lake Formation (DLF), memungkinkan akses real-time ke metadata dan akses baca/tulis ke data yang dikelola DLF di Object Storage Service (OSS). DLF mengelola izin, dan pemetaan data lake tingkat katalog ini mendukung kolaborasi multi-engine berbasis Paimon.

Lingkup

Catatan

Fitur ini sedang dalam tahap private preview dan tersedia di MaxCompute berdasarkan undangan.

  • MaxCompute hanya mendukung tabel Paimon yang disimpan di OSS yang dikelola DLF.

  • MaxCompute tidak mendukung penulisan data ke tabel bucket dinamis atau tabel cross-partition menggunakan INSERT INTO atau INSERT OVERWRITE.

  • Anda tidak dapat menggunakan operasi SHOW TABLES pada tabel cross-partition yang menggunakan bucket tetap dan kunci primernya tidak mencakup kunci partisi.

  • Evolusi skema dan operasi partisi tidak didukung untuk tabel dalam proyek eksternal.

  • Operasi resource dan fungsi tidak didukung.

  • Anda tidak dapat menggunakan tabel Paimon sebagai sumber data untuk integrasi data di DataWorks.

Pemetaan tipe data

Untuk informasi lebih lanjut tentang tipe data MaxCompute, lihat Tipe Data (Versi 1.0) dan Tipe Data (Versi 2.0).

Tipe data Paimon

Tipe data MaxCompute 2.0

Dukungan baca/tulis

Deskripsi

TINYINT

TINYINT

Didukung

Bilangan bulat bertanda 8-bit.

SMALLINT

SMALLINT

Didukung

Bilangan bulat bertanda 16-bit.

INT

INT

Didukung

Bilangan bulat bertanda 32-bit.

BIGINT

BIGINT

Didukung

Bilangan bulat bertanda 64-bit.

BINARY(MAX_LENGTH)

BINARY

Didukung

Tipe data biner. Panjang maksimum saat ini adalah 8 MB.

FLOAT

FLOAT

Didukung

Bilangan titik mengambang biner 32-bit.

DOUBLE

DOUBLE

Didukung

Bilangan titik mengambang biner 64-bit.

DECIMAL(precision,scale)

DECIMAL(precision,scale)

Didukung

Tipe numerik desimal eksak. Nilai default adalah decimal(38,18). Anda dapat menyesuaikan nilai precision dan scale.

  • precision: Jumlah digit maksimum. Nilai yang valid adalah 1 hingga 38.

  • scale: Jumlah digit pada bagian pecahan. Nilai yang valid adalah 0 hingga 18.

VARCHAR(n)

VARCHAR(n)

Didukung

Tipe karakter panjang variabel. n menentukan panjang dan berkisar antara 1 hingga 65.535.

CHAR(n)

CHAR(n)

Didukung

Tipe karakter panjang tetap. n menentukan panjang dan berkisar antara 1 hingga 255.

VARCHAR(MAX_LENGTH)

STRING

Didukung

Tipe string. Panjang maksimum saat ini adalah 8 MB.

DATE

DATE

Didukung

Tipe tanggal. Formatnya adalah yyyy-mm-dd.

TIME, TIME(p)

Tidak didukung

Tidak didukung

Tipe data TIME Paimon merepresentasikan waktu tanpa zona waktu, terdiri atas jam, menit, dan detik, dengan presisi nanodetik.

TIME(p) menentukan presisi pecahan detik dari 0 hingga 9. Nilai default adalah 0.

Tidak ada tipe yang sesuai di MaxCompute.

TIMESTAMP, TIMESTAMP(p)

TIMESTAMP_NTZ

Didukung

Tipe timestamp tanpa zona waktu yang akurat hingga nanodetik.

Untuk membaca tipe data ini, Anda harus menonaktifkan native JNI bridge dengan menjalankan perintah berikut: SET odps.sql.common.table.jni.disable.native=true;

TIMESTAMP WITH LOCAL TIME_ZONE(9)

TIMESTAMP

Didukung

  • Tipe stempel waktu dengan akurasi hingga nanodetik. Formatnya adalah yyyy-mm-dd hh:mm:ss.xxxxxxxxx.

  • Untuk tipe TIMESTAMP presisi rendah di tabel sumber Paimon, MaxCompute memotong nilai saat menulis. Untuk presisi 0-3, data dipotong menjadi 3 digit. Untuk presisi 4-6, data dipotong menjadi 6 digit. Untuk presisi 7-9, data dipotong menjadi 9 digit.

TIMESTAMP WITH LOCAL TIME_ZONE(9)

DATETIME

Tidak didukung

Tipe timestamp yang akurat hingga nanodetik.

Formatnya adalah yyyy-mm-dd hh:mm:ss.xxxxxxxxx.

BOOLEAN

BOOLEAN

Didukung

Tipe BOOLEAN.

ARRAY

ARRAY

Didukung

Tipe kompleks.

MAP

MAP

Didukung

Tipe kompleks.

ROW

STRUCT

Didukung

Tipe kompleks.

MULTISET<t>

Tidak didukung

Tidak didukung

Tidak ada tipe yang sesuai di MaxCompute.

VARBINARY, VARBINARY(n), BYTES

BINARY

Didukung

Tipe data string biner panjang variabel.

Prosedur

Langkah 1: Berikan izin

Berikan izin kepada Pengguna RAM

Jika Anda menggunakan Pengguna RAM, pastikan kebijakan izin berikut dilampirkan. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Mengelola izin untuk Pengguna RAM.

  • AliyunRAMFullAccess: Jika Pengguna RAM tidak memiliki izin ini, Akun Alibaba Cloud harus memberikannya.

  • AliyunMaxComputeFullAccess: Izin ini diperlukan untuk membuat sumber data eksternal dan proyek eksternal.

  • AliyunDLFReadOnlyAccess: Izin ini diperlukan untuk membuat proyek eksternal. Anda memerlukan kebijakan izin ini karena pembuatan proyek eksternal Paimon_DLF memerlukan izin List pada katalog DLF.

Otorisasi dan aktifkan DLF

  1. Otorisasi akses sumber daya cloud

    Saat pertama kali menggunakan Data Lake Formation (DLF), Anda harus mengotorisasi layanan tersebut untuk mengakses sumber daya cloud terkait.

    Login ke Konsol Data Lake Formation (DLF), lalu pilih wilayah di pojok kiri atas.

    Di sebelah kanan Permissions to access cloud resources are granted., klik Authorize.

  2. Aktifkan Data Lake Formation

    Pilih wilayah. MaxCompute dan DLF harus dideploy di wilayah yang sama. Sebelum menggunakan DLF, aktifkan layanan tersebut di wilayah target.

    Di sebelah kanan DLF is activated., klik Activate.

Berikan izin data DLF kepada MaxCompute

Untuk mengizinkan MaxCompute mengakses data Paimon_DLF menggunakan sumber data eksternal dan proyek eksternal, Anda harus terlebih dahulu memberikan izin data DLF yang diperlukan kepada akun akses MaxCompute.

Untuk menggunakan identitas pelaksana tugas, Anda harus memberikan peran terkait layanan untuk MaxCompute agar dapat mengakses DLF. Saat MaxCompute mengakses DLF, identitas pelaksana tugas diteruskan ke DLF. Kedua layanan tersebut kemudian menerapkan izin yang diberikan dalam sistem masing-masing. Oleh karena itu, Anda harus terlebih dahulu membuat peran terkait layanan ini dan memberikan izin yang diperlukan. Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Login ke Konsol RAM.

  2. Di panel navigasi kiri, pilih Identities > Roles.

  3. Di halaman Roles, klik Create Role.

  4. Di pojok kanan atas halaman Create Role, klik Create Service Linked Role.

  5. Di halaman Create Service Linked Role, pilih AliyunServiceRoleForMaxComputeLakehouse untuk Select Service, lalu klik Create Service Linked Role.

    Jika muncul pesan bahwa peran tersebut sudah ada, Anda dapat mengabaikannya.

Izin

  • Izin control plane: Izin ini diperiksa saat Anda melakukan operasi di Konsol MaxCompute, terutama saat membuat proyek eksternal MaxCompute yang terikat ke katalog DLF.

    Izin ini dikelola oleh Resource Access Management (RAM). Gunakan Akun Alibaba Cloud Anda untuk login ke Konsol RAM guna mengonfigurasi izin ini. Untuk informasi lebih lanjut, lihat Mengelola izin untuk Pengguna RAM.

  • Izin data plane: Izin ini diperiksa saat Anda membaca atau menulis ke tabel Paimon setelah login ke proyek eksternal yang telah dibuat. Ini biasanya terjadi saat Anda membuat, memelihara, atau menggunakan skema, tabel, atau sumber daya lain dalam katalog DLF yang terikat dengan menjalankan pernyataan SQL di MaxCompute.

    Izin ini dikelola di Konsol DLF. Gunakan Akun Alibaba Cloud Anda untuk login ke Konsol DLF guna mengonfigurasi izin ini. Untuk informasi lebih lanjut, lihat Memberikan izin kepada Pengguna RAM.

Langkah 2: Buat sumber data eksternal Paimon_DLF

  1. Login ke Konsol MaxCompute, lalu pilih wilayah di pojok kiri atas.

  2. Di panel navigasi kiri, pilih Manage Configurations > External Data Source.

  3. Di halaman External Data Source, klik Create External Data Source.

  4. Di kotak dialog Create External Data Source, konfigurasikan parameter. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Wajib

    Deskripsi

    External Data Source Type

    Wajib

    Pilih Paimon_DLF.

    External Data Source Name

    Wajib

    Tentukan nama kustom yang memenuhi persyaratan berikut:

    • Harus dimulai dengan huruf dan hanya boleh berisi huruf kecil, angka, dan garis bawah (_).

    • Panjang maksimum 128 karakter.

    Contoh: paimon_dlf.

    Description

    Opsional

    Masukkan deskripsi sesuai kebutuhan.

    Region

    Wajib

    Default ke wilayah saat ini.

    Authentication and Authorization

    Wajib

    Default ke peran RAM Alibaba Cloud.

    Service-linked Role

    Wajib

    Parameter ini dihasilkan secara otomatis.

    Endpoint

    Wajib

    Parameter ini dihasilkan secara otomatis. Untuk wilayah China (Hangzhou), endpoint-nya adalah cn-hangzhou-intranet.dlf.aliyuncs.com.

    Foreign Server Supplemental Properties

    Opsional

    Properti tambahan untuk sumber data eksternal. Setelah Anda menentukan properti ini, tugas yang menggunakan sumber data eksternal ini dapat mengakses sistem sumber sebagaimana didefinisikan oleh properti tersebut.

    Catatan

    Daftar parameter yang didukung diperbarui seiring perkembangan kemampuan produk. Untuk informasi terbaru, rujuk dokumentasi resmi.

  5. Klik OK untuk membuat sumber data eksternal.

  6. Di halaman External Data Source, temukan sumber data tersebut dan klik Details di kolom Actions untuk melihat detailnya.

Langkah 3: Buat proyek eksternal

  1. Login ke Konsol MaxCompute, lalu pilih wilayah di pojok kiri atas.

  2. Di panel navigasi kiri, pilih Manage Configurations > Projects.

  3. Di tab External Project, klik Create Project.

  4. Di kotak dialog Create Project, konfigurasikan pengaturan dan klik OK.

    Parameter

    Wajib

    Deskripsi

    Project Type

    Wajib

    Default ke proyek eksternal.

    Region

    Wajib

    Default ke wilayah saat ini dan tidak dapat diubah.

    Project Name (Globally Unique)

    Wajib

    Nama harus dimulai dengan huruf, terdiri dari 3 hingga 28 karakter, dan hanya boleh berisi huruf, angka, dan garis bawah (_).

    MaxCompute Foreign Server Type

    Opsional

    Default ke Paimon_DLF.

    MaxCompute Foreign Server

    Opsional

    • Use Existing: Daftar sumber data eksternal yang ada akan muncul.

    • Create Foreign Server: Anda dapat membuat dan menggunakan sumber data eksternal baru.

    MaxCompute Foreign Server Name

    Wajib

    • Jika Anda memilih untuk menggunakan sumber data yang ada, pilih namanya dari daftar drop-down.

    • Jika Anda memilih untuk membuat sumber data eksternal baru, namanya akan digunakan secara otomatis.

    Data Catalog

    Wajib

    Katalog data DLF.

    Billing Method

    Wajib

    Pilih Subscription atau Pay-as-you-go.

    Default Quota

    Wajib

    Pilih kuota yang sudah ada.

    Description

    Opsional

    Masukkan deskripsi kustom untuk proyek tersebut.

Langkah 4: Akses sumber data menggunakan SQL

  1. Login ke proyek eksternal menggunakan tool koneksi.

    Contoh berikut menunjukkan cara menjalankan SQL di node SQL DataWorks dalam ruang kerja.

    1. Login ke Konsol DataWorks, lalu pilih wilayah di pojok kiri atas.

    2. Di panel navigasi kiri, pilih Workspace.

    3. Di halaman Workspaces, klik Create Workspace atau klik nama ruang kerja target yang sudah ada.

    4. Di halaman Workspace Details, klik Computing Resource di panel navigasi kiri.

    5. Di halaman Computing Resource, klik Associate Computing Resources, lalu pilih MaxCompute.

    6. Konfigurasikan Basic Information untuk Associate MaxCompute Computing Resource.

      Untuk parameter proyek MaxCompute, pilih proyek eksternal.

  2. Daftar skema dalam proyek eksternal.

    -- Aktifkan sintaks skema pada tingkat sesi.
    SET odps.namespace.schema=true;
    SHOW schemas;
    -- Contoh hasil:
    ID = 20250919****am4qb
    default
    system
    OK
  3. Daftar tabel dalam skema di proyek eksternal.

    Jika Anda perlu mengakses tabel dari proyek produksi eksternal di lingkungan saat ini, tambahkan use external_project_pro; sebelum semua pernyataan SQL Anda.

    -- <schema_name> adalah nama skema yang ditampilkan oleh perintah SHOW schemas.
    SET odps.namespace.schema=true;
    USE schema <schema_name>;
    SHOW tables;
    -- Contoh hasil:
    ID = 20250919****am4qb
    acs:ram::<uid>:root  emp
    OK
  4. Buat skema dalam proyek eksternal.

    -- Dalam contoh ini, schema_name adalah schema_demo_test.
    CREATE schema <schema_name>;
  5. Gunakan skema yang baru dibuat.

    USE schema <schema_name>;
  6. Buat tabel dalam skema dan masukkan data.

    Jika Anda login sebagai Pengguna RAM, Anda harus memiliki izin pada katalog DLF untuk operasi ini. Untuk informasi tentang cara memberikan izin, lihat Manajemen otorisasi data.

    • Format perintah:

      -- Buat tabel.
      CREATE TABLE [IF NOT EXISTS] <table_name> 
      (
        <col_name> <data_type>,
        ...
      )
      [COMMENT <table_comment>]
      [PARTITIONED BY (<col_name> <data_type>, ...)] 
      ;
      -- Masukkan data.
      INSERT {INTO|OVERWRITE} TABLE <table_name> [PARTITION (<pt_spec>)] [(<col_name> [,<col_name> ...])]
      <select_statement>
      FROM <from_statement>
    • Contoh:

      Catatan

      Saat Anda menulis data ke tabel sumber Paimon, nilai TIMESTAMP dengan presisi lebih rendah dipotong: presisi 0–3 dipotong menjadi milidetik (3 tempat desimal), 4–6 menjadi mikrodetik (6 tempat desimal), dan 7–9 menjadi nanodetik (9 tempat desimal).

      CREATE TABLE schema_table(id int,name string);
      INSERT INTO schema_table VALUES (101,'Zhang San'),(102,'Li Si');
      -- Kueri tabel schema_table.
      SELECT * FROM schema_table;
      -- Contoh hasil:
      +------------+------------+
      | id         | name       | 
      +------------+------------+
      | 101        | Zhang San  | 
      | 102        | Li Si      | 
      +------------+------------+
  7. Beralih ke skema default yang sudah ada.

    use schema default;
    SHOW tables;
    -- Contoh hasil:
    ID = 20250919*******yg5
    acs:ram::<uid>:root	emp
    acs:ram::<uid>:root	emp_detail
    acs:ram::<uid>:root	test_table
    OK
    -- Baca data dari tabel.
    SELECT * FROM test_table;
    -- Contoh hasil:
    +------------+------------+
    | id         | name       | 
    +------------+------------+
    | 101        | Zhang San  | 
    | 102        | Li Si      | 
    +------------+------------+
    -- Tulis data ke tabel dan periksa apakah data berhasil ditulis.
    INSERT INTO test_table VALUES (103,'Wang Wu');
    SELECT * FROM test_table;
    -- Contoh hasil:
    +------------+------------+
    | id         | name       | 
    +------------+------------+
    | 101        | Zhang San  | 
    | 102        | Li Si      | 
    | 103        | Wang Wu    | 
    +------------+------------+

Kesalahan umum

Masalah 1: Kesalahan saat membuat proyek eksternal

Gejala: Saat membuat proyek eksternal baru, muncul kesalahan "You are not authorized to perform this action."

Detail kesalahan mencantumkan kode kesalahan NoMCPermission.

Solusi:

  1. Jika Anda adalah Pengguna RAM, verifikasi bahwa izin AliyunMaxComputeFullAccess telah diberikan kepada Pengguna RAM tersebut. Untuk informasi lebih lanjut, lihat prosedur terkait di Langkah 1.

  2. Operasi ini memerlukan pemilihan katalog dari Data Lake Formation (DLF). Pastikan izin DLF yang diperlukan telah diberikan. Untuk informasi lebih lanjut, lihat prosedur terkait di Langkah 1.

Masalah 2: Kesalahan show tables di skema default

Gejala: Saat menjalankan show tables di skema default proyek eksternal, muncul kesalahan "Forbidden:User acs: ram: :<uid>:user/** doesn't have privilege LIST on DATABASE default".

Solusi:

  1. Login ke Konsol Data Lake Formation (DLF), lalu pilih wilayah di pojok kiri atas.

  2. Di panel navigasi kiri, pilih System & Security.

  3. Di tab Access Control > Users, refresh untuk memeriksa apakah RAM user saat ini sudah ada.

  4. Jika ada, berikan izin kepada RAM user tersebut di Access Control > Role.

Masalah 3: Kesalahan "invalid database operations on two-tier"

Gejala: Saat menjalankan show schemas di proyek eksternal, muncul kesalahan "invalid database operations on two-tier".

Solusi:

  1. Verifikasi bahwa proyek saat ini adalah proyek eksternal.

    1. Jika Anda menggunakan node SQL DataWorks, klik Debugging Configuration di panel kanan dan verifikasi bahwa sumber daya komputasi yang terkait adalah proyek eksternal.

    2. Jika Anda menggunakan analisis SQL di DataWorks, klik Data Source di pojok kanan atas dan verifikasi bahwa sumber data yang terkait adalah proyek eksternal.

    3. Jika Anda menggunakan analisis SQL di MaxCompute, klik Execution Configuration di panel kanan dan verifikasi bahwa proyek yang dipilih untuk sumber daya komputasi adalah proyek eksternal.

    4. Jika Anda menggunakan odpscmd, periksa file odps_config.ini dan verifikasi bahwa nilai parameter project_name adalah nama proyek eksternal.

  2. Setelah memastikan Anda menggunakan proyek eksternal, pilih dan jalankan pernyataan SQL berikut secara bersamaan.

    -- Aktifkan sintaks skema pada tingkat sesi.
    SET odps.namespace.schema=true;
    SHOW schemas;

Masalah 4: show schemas hanya mengembalikan skema default

Gejala: Saat menjalankan perintah show schemas di proyek eksternal, hanya skema default yang dikembalikan.

Solusi:

  1. Verifikasi bahwa proyek saat ini adalah proyek eksternal.

    1. Jika Anda menggunakan node SQL DataWorks, klik Debugging Configuration di panel kanan dan verifikasi bahwa sumber daya komputasi yang terkait adalah proyek eksternal.

    2. Jika Anda menggunakan analisis SQL di DataWorks, klik Data Source di pojok kanan atas dan verifikasi bahwa sumber data yang terkait adalah proyek eksternal.

    3. Jika Anda menggunakan analisis SQL di MaxCompute, klik Execution Configuration di panel kanan dan verifikasi bahwa proyek yang dipilih untuk sumber daya komputasi adalah proyek eksternal.

    4. Jika Anda menggunakan odpscmd, periksa file odps_config.ini dan verifikasi bahwa nilai parameter project_name adalah nama proyek eksternal.

  2. Setelah memastikan Anda menggunakan proyek eksternal, login ke Konsol Data Lake Formation (DLF) dan periksa apakah terdapat database lain di katalog yang terikat ke proyek eksternal tersebut.

  3. Jika perintah show schemas masih tidak mengembalikan database yang diharapkan setelah melakukan pemeriksaan pada langkah 1 dan 2, kirimkan tiket untuk bantuan.

Masalah 5: Kesalahan "You should use dynamic bucket..."

Gejala: Saat menjalankan show tables di proyek eksternal, muncul kesalahan berikut: ODPS-0110005: com.aliyun.odps.meta.exception.MetaException: com.aliyun.odps.common.table.na.NativeException: common/table/jni/utils/jni_helper.cpp(79): UnretryableException: Common table connector exception - ExceptionType: java.lang.IllegalArgumentException - Message: You should use dynamic bucket (bucket = -1) mode in cross partition update case (Primary key constraint [sending_time, symbol, sequence_number] not include all partition fields [pt]).[pt])

Solusi:

Kesalahan ini terjadi karena MaxCompute saat ini tidak mendukung tabel kunci primer cross-partition dengan bucket tetap. Akibatnya, perintah show tables gagal.

Sebagai solusi sementara, hapus tabel kunci primer cross-partition yang tidak didukung di Konsol Data Lake Formation (DLF).

Masalah 6: Kesalahan "Can't set default schema..."

Gejala: Saat menjalankan perintah show tables atau show schemas, muncul kesalahan "FAILED: Can't set default schema if odps.namespace.schema is false".

Solusi:

  1. Jalankan perintah SET odps.namespace.schema=true; sebelum pernyataan SQL lainnya untuk mengaktifkan sintaks skema pada tingkat sesi.

  2. Jika kesalahan tetap muncul, verifikasi urutan perintah. Untuk membaca tabel dari proyek eksternal lain, gunakan urutan perintah berikut:

    USE external_project;
    SET odps.namespace.schema=true;
    USE schema schema_name;
    SHOW tables;