All Products
Search
Document Center

MaxCompute:Panduan Pengguna SDK CatalogAPI

Last Updated:Jul 01, 2026

Kelola metadata resource MaxCompute secara programatik dengan SDK CatalogAPI untuk Java dan Python.

Versi produk: v0.2.2
Repositori SDK: aliyun/aliyun-odps-openapi-sdk

Ikhtisar

SDK CatalogAPI adalah SDK open source untuk mengelola katalog data MaxCompute. SDK ini menyediakan akses programatik ke metadata resource seperti Project, Schema, Table, Connection, Role, Taxonomy, DataPolicy, DataScan, dan Model.

Fitur

Kemampuan inti:

  • Manajemen tabel

    Buat dan perbarui tabel internal serta eksternal; kueri dan hapus tabel internal, tabel eksternal, view, materialized view, serta tabel snapshot.

  • Manajemen koneksi

    Kelola konfigurasi Connection untuk mengakses sumber data eksternal seperti OSS dan OTS.

  • Manajemen izin

    Terapkan kontrol akses detail halus melalui Role dan Policy.

  • Keamanan data

    Terapkan kontrol akses tingkat kolom melalui Taxonomy dan Policy Tag, serta penyembunyian data dinamis melalui DataPolicy.

  • Metadata Crawling

    Temukan dan pindai metadata dari sumber data eksternal secara otomatis melalui DataScan.

  • Manajemen model

    Kelola metadata untuk model pembelajaran mesin dengan dukungan multi-versi.

  • Pencarian resource

    Cari berbagai entitas metadata dalam suatu namespace.

Model resource

CatalogAPI mengikuti gaya desain RESTful. Hirarki resource intinya adalah sebagai berikut:

Namespace (UID akun utama)
├── Connection          # Koneksi sumber data eksternal
├── Role                # Role kustom
├── Taxonomy            # Klasifikasi tag kebijakan
│   └── PolicyTag       # Tag kebijakan
├── DataPolicy          # Kebijakan data (aturan penyembunyian)
├── DataScan            # Tugas pemerindaian metadata
│   └── ScanJob         # Pekerjaan pemerindaian
Project             # Proyek MaxCompute
    └── Schema          # Namespace (direktori)
        ├── Table       # Tabel data
        │   └── Partition # Partisi
        └── Model       # Model pembelajaran mesin
Catatan

ID Namespace adalah UID akun utama Alibaba Cloud.

Mulai cepat

Instal SDK

SDK CatalogAPI tersedia untuk Java dan Python, di-host di repositori GitHub Alibaba Cloud.

// Tambahkan dependensi di proyek Maven
<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>catalog-api</artifactId>
    <version>0.2.2</version>
</dependency>
pip install pyodps-catalog

Inisialisasi klien

Inisialisasi klien CatalogAPI menggunakan Pasangan Kunci Akses (AccessKey).

Penting

Jangan hard-code pasangan AccessKey di kode Anda. Gunakan Variabel lingkungan atau file konfigurasi untuk mengelola kredensial.

import com.aliyun.odps.catalog.Client;
import com.aliyun.odps.models.Config;

public class CatalogDemo {
    public static void main(String[] args) throws Exception {
        // Inisialisasi konfigurasi
        Config config = new Config();
        config.setAccessKeyId(System.getenv("ALIBABACLOUD_ACCESS_KEY_ID"));
        config.setAccessKeySecret(System.getenv("ALIBABACLOUD_ACCESS_KEY_SECRET"));
        // Tetapkan endpoint MaxCompute. SDK secara otomatis menemukan endpoint CatalogAPI melalui API routing.
        // Ganti cn-shanghai dengan wilayah Anda yang sebenarnya.
        config.setOdpsEndpoint("service.cn-shanghai.maxcompute.aliyun.com");
        
        // Buat klien
        Client client = new Client(config);
        
        // Gunakan klien untuk memanggil API
    }
}
import os
from pyodps_catalog.client import Client
from maxcompute_tea_openapi.models import Config

# Inisialisasi konfigurasi
config = Config(
    access_key_id=os.environ.get('ALIBABACLOUD_ACCESS_KEY_ID'),
    access_key_secret=os.environ.get('ALIBABACLOUD_ACCESS_KEY_SECRET'),
    # Metode 1 (disarankan): Tetapkan odps_endpoint. SDK secara otomatis menemukan endpoint CatalogAPI melalui API routing.
    odps_endpoint='service.cn-shanghai.maxcompute.aliyun.com'
    # Metode 2: Tentukan langsung endpoint CatalogAPI.
    # endpoint='catalogapi.cn-shanghai.maxcompute.aliyun.com'
)

# Buat klien
client = Client(config)

# Gunakan klien untuk memanggil API

Contoh: Daftar tabel

Contoh ini mencantumkan semua tabel dalam skema tertentu:

import com.aliyun.odps.catalog.models.ListTablesResponse;
import com.aliyun.odps.catalog.models.Table;

ListTablesResponse response = client.listTables(
    "my_project",    // projectId
    "default",       // schemaName
    100,             // pageSize
    ""               // pageToken. Berikan string kosong untuk panggilan pertama
);

if (response.getTables() != null) {
    for (Table table : response.getTables()) {
        System.out.println("Table: " + table.getTableName());
    }
}

// Jika ada halaman tambahan, gunakan nextPageToken untuk melanjutkan
String nextToken = response.getNextPageToken();
response = client.list_tables(
    project_id="my_project",
    schema_name="default",
    page_size=100,
    page_token=""
)

if response.tables:
    for table in response.tables:
        print(f"Table: {table.table_name}")

# Jika ada halaman tambahan, gunakan next_page_token untuk melanjutkan
next_token = response.next_page_token

Otentikasi

Kredensial akses

CatalogAPI memerlukan pasangan AccessKey Alibaba Cloud untuk otentikasi. Kami merekomendasikan penggunaan pasangan AccessKey Pengguna RAM dan menerapkan prinsip hak istimewa minimal.

Daftar izin

Tabel berikut mencantumkan izin yang diperlukan untuk setiap Operasi API:

Klik untuk memperluas daftar izin lengkap

Resource

Operasi

Izin yang diperlukan

Connection

Create

CreateConnection

Connection

List

ListConnection

Connection

Get

GetConnection

Connection

Update

UpdateConnection

Connection

Delete

DeleteConnection

Connection

SetPolicy

SetConnectionPolicy

Connection

GetPolicy

GetConnectionPolicy

Role

Create

CreateRole

Role

List

ListRole

Role

Get

GetRole

Role

Update

UpdateRole

Role

Delete

DeleteRole

Role

SetPolicy

SetRolePolicy

Role

GetPolicy

GetRolePolicy

Taxonomy

Create

CreateTaxonomy

Taxonomy

List

ListTaxonomy

Taxonomy

Get

GetTaxonomy

Taxonomy

Update

UpdateTaxonomy

Taxonomy

Delete

DeleteTaxonomy

Taxonomy

SetPolicy

SetTaxonomyPolicy

Taxonomy

GetPolicy

GetTaxonomyPolicy

PolicyTag

Create

UpdateTaxonomy

PolicyTag

List

GetTaxonomy

PolicyTag

Get

GetTaxonomy

PolicyTag

Update

UpdateTaxonomy

PolicyTag

Delete

UpdateTaxonomy

DataPolicy

Create

CreateDataPolicy

DataPolicy

List

ListDataPolicy

DataPolicy

Get

GetDataPolicy

DataPolicy

Delete

DeleteDataPolicy

DataPolicy

SetPolicy

SetDataPolicyPolicy

DataPolicy

GetPolicy

GetDataPolicyPolicy

Project

Get

ConnectProject

Schema

Create

CreateSchema

Schema

List

ListSchema

Schema

Get

GetSchema

Schema

Update

UpdateSchema

Schema

Delete

DeleteSchema

Schema

SetPolicy

SetSchemaPolicy

Schema

GetPolicy

GetSchemaPolicy

Table

Create

CreateTable

Table

List

List Table

Table

Get

Describe Table

Table

Update

Alter Table

Table

Delete

Drop Table

Table

SetPolicy

SetTablePolicy

Table

GetPolicy

GetTablePolicy

Table

GetDataToken

Select Table+UseConnection

Partition

List

Describe Table

Model

Create

CreateModel

Model

List

List Model

Model

Get

Describe Model

Model

Update

Alter Model

Model

Delete

Drop Model

Model

SetPolicy

SetModelPolicy

Model

GetPolicy

GetModelPolicy

ModelVersion

Create

Alter Model

ModelVersion

Delete

Alter Model

ModelVersion

List

Describe Model

DataScan

Create

CreateDataScan

DataScan

List

ListDataScan

DataScan

Get

GetDataScan

DataScan

Update

UpdateDataScan

DataScan

Delete

DeleteDataScan

DataScan

Trigger

TriggerDataScan

ScanJob

List

ListDataScanJob

Search

Search

SearchNamespace. Jika pencarian mencakup kondisi project, izin SearchProject diperlukan untuk project tersebut

Policy dan Role

CatalogAPI mendukung kontrol akses berbasis Policy. Policy terdiri dari serangkaian Binding, di mana setiap Binding menetapkan Role kepada sekumpulan Member.

  • Model Policy

    {
      "etag": "string",
      "bindings": [
        {
          "role": "string",
          "members": ["string"]
        }
      ]
    }
    • etag: digunakan untuk validasi konsistensi read-modify-write

    • bindings: daftar binding role

      • peran: Nama peran

      • members: daftar member dalam format user:{userId}

  • Contoh Set Policy

    import com.aliyun.odps.catalog.models.*;
    
    // Bangun SetPolicyRequest
    Policy policy = new Policy();
    Binding binding = new Binding();
    // Field role memerlukan format path resource lengkap: namespaces/{namespaceId}/roles/{roleName}
    binding.setRole("namespaces/{namespaceId}/roles/odps.admin");
    binding.setMembers(Arrays.asList("user:123456789"));
    policy.setBindings(Arrays.asList(binding));
    policy.setEtag("fetch_with_get_policy");
    SetPolicyRequest request = new SetPolicyRequest();
    request.setPolicy(policy);
    
    // Tetapkan Policy tabel
    client.setTablePolicy(table, request);

Model data

Field umum

Field

Tipe

Deskripsi

name

string

Nama resource REST lengkap, unik secara global dalam domain. SDK menggunakan nama resource untuk membangun URL permintaan REST. Biasanya merupakan field output-only.

Tipe data

Selain tipe JSON standar, penanda tipe data khusus berikut digunakan:

Tipe data

Deskripsi

enum

Tipe enumerasi semantik, direpresentasikan sebagai string dalam format JSON

int64

Integer 64-bit, dikirim sebagai string

Model tabel

Table adalah salah satu resource inti dalam CatalogAPI.

{
  "etag": "string",
  "name": "string",
  "projectId": "string",
  "schemaName": "string",
  "tableName": "string",
  "type": "enum(TableType)",
  "description": "string",
  "tableSchema": { "object(TableFieldSchema)" },
  "clustering": { "object(Clustering)" },
  "tableConstraints": { "object(TableConstraints)" },
  "partitionDefinition": { "object(PartitionDefinition)" },
  "tableFormatDefinition": { "object(TableFormatDefinition)" },
  "externalDataConfiguration": { "object(ExternalDataConfiguration)" },
  "maxLakeConfiguration": { "object(MaxLakeConfiguration)" },
  "externalCatalogTableOptions": { "object(ExternalCatalogTableOptions)" },
  "expirationOptions": { "object(ExpirationOptions)" },
  "createTime": "string (int64 format)",
  "lastModifiedTime": "string (int64 format)",
  "labels": { "map<string, string>" }
}

Klik untuk memperluas detail field

Field

Tipe

Wajib

Deskripsi

etag

string

Tidak

Digunakan untuk validasi konsistensi read-modify-write

name

string

Tidak

Path lengkap tabel, seperti projects/{projectId}/schemas/{schemaName}/tables/{tableName}. Output-only

projectId

string

Ya

ID Proyek tempat tabel tersebut berada

schemaName

string

Kondisi

Nama skema tempat tabel tersebut berada. Wajib dalam model tiga-tier; tidak boleh ditentukan dalam model dua-tier

tableName

string

Ya

Nama tabel

type

enum(TableType)

Tidak

Tipe tabel. Nilai valid: TABLE (tabel internal), EXTERNAL (tabel eksternal), VIEW (view), MATERIALIZED_VIEW (materialized view), SNAPSHOT (tabel snapshot)

description

string

Tidak

Deskripsi tabel, setara dengan komentar dalam DDL SQL

tableSchema

TableFieldSchema

Tidak

Definisi skema kolom tabel

clustering

Clustering

Tidak

Definisi atribut kluster. Hanya tersedia untuk tabel terkluster

tableConstraints

TableConstraints

Tidak

Definisi kendala kunci primer. Hanya tersedia untuk tabel delta

partitionDefinition

PartitionDefinition

Tidak

Definisi kolom partisi. Hanya tersedia untuk tabel partisi

tableFormatDefinition

TableFormatDefinition

Tidak

Hanya tersedia untuk tabel internal. Default ke format tabel standar

externalDataConfiguration

ExternalDataConfiguration

Tidak

Konfigurasi tabel eksternal. Hanya berlaku untuk tabel eksternal

maxLakeConfiguration

MaxLakeConfiguration

Tidak

Konfigurasi tabel lake terkelola

externalCatalogTableOptions

ExternalCatalogTableOptions

Tidak

Informasi katalog eksternal

expirationOptions

ExpirationOptions

Tidak

Konfigurasi masa berlaku untuk data tabel dan partisi

createTime

string (int64)

Tidak

Waktu pembuatan tabel dalam milidetik. Output-only

lastModifiedTime

string (int64)

Tidak

Waktu modifikasi terakhir tabel dalam milidetik. Output-only

labels

map<string, string>

Tidak

Label pada tabel

Model TableFieldSchema

Tipe data yang didukung (FieldDataType): TINYINT, SMALLINT, INT, BIGINT, BINARY, FLOAT, DOUBLE, DECIMAL, VARCHAR, CHAR, STRING, DATE, DATETIME, TIMESTAMP, TIMESTAMP_NTZ, BOOLEAN, STRUCT, ARRAY, MAP

{
  "fieldName": "string",
  "sqlTypeDefinition": "string",
  "typeCategory": "enum(FieldDataType)",
  "mode": "enum(FieldMode)",
  "fields": [{ "object(TableFieldSchema)" }],
  "description": "string",
  "policyTags": { "object(PolicyTags)" },
  "maxLength": "string (int64 format)",
  "precision": "string (int64 format)",
  "scale": "string (int64 format)",
  "defaultValueExpression": "string"
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

fieldName

string

Nama kolom (kolom tingkat atas) atau nama field struct. Tidak ada dalam tableSchema tingkat tabel

sqlTypeDefinition

string

Output-only. Definisi string yang merepresentasikan tipe kolom dalam pernyataan DDL SQL. Hanya output untuk kolom tabel

typeCategory

enum(FieldDataType)

Tipe field

mode

enum(FieldMode)

REQUIRED (tidak boleh NULL) atau NULLABLE (boleh NULL)

fields

TableFieldSchema[]

Sub-field dari tipe STRUCT

description

string

Komentar kolom

policyTags

PolicyTags

Opsional. Tag kebijakan yang terikat pada kolom, digunakan untuk kontrol akses tingkat kolom dan penyamaran data. Tidak adanya field ini menunjukkan tidak ada tag kebijakan. Untuk tipe bersarang, tag kebijakan hanya dapat diterapkan pada node daun. Tag kebijakan tidak dapat diterapkan pada kolom partisi

policyTags.names

string[]

Opsional. Daftar nama resource tag kebijakan. Saat ini, setiap kolom hanya mendukung satu tag kebijakan

maxLength

string (int64)

Panjang maksimum untuk tipe CHAR/VARCHAR

precision

string (int64)

Presisi untuk tipe DECIMAL

scale

string (int64)

Skala untuk tipe DECIMAL

defaultValueExpression

string

Opsional. String ekspresi untuk nilai default

Model Connection

Connection digunakan untuk mengonfigurasi informasi koneksi guna mengakses sumber data eksternal seperti OSS dan OTS.

{
  "name": "string",
  "connectionName": "string",
  "description": "string",
  "creationTime": "string (int64 format)",
  "lastModifiedTime": "string (int64 format)",
  "connectionType": "enum(ConnectionType)",
  "cloudResource": { "object(CloudResourceOptions)" },
  "region": "string"
}

Klik untuk memperluas detail field

Field

Tipe

Wajib

Deskripsi

name

string

Tidak

Nama resource unik secara global: namespaces/{namespace_ID}/connections/{connectionName}. Output-only

connectionName

string

Ya

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 32] byte

description

string

Tidak

Opsional. Maksimum 1 KB

creationTime

string (int64)

Tidak

Waktu pembuatan koneksi dalam milidetik. Output-only

lastModifiedTime

string (int64)

Tidak

Waktu modifikasi terakhir dalam milidetik

connectionType

enum(ConnectionType)

Ya

Tipe koneksi. Nilai valid: CLOUD_RESOURCE (tipe sumber daya cloud, seperti OSS dan OTS)

cloudResource

CloudResourceOptions

Kondisi

Diatur hanya ketika connectionType adalah CLOUD_RESOURCE

  • delegatedAccount

    Tipe STRING. Nama akun yang didelegasikan, disimpan otomatis sebagai akun utama pembuat saat pembuatan. Output-only.

  • ramRoleArn

    Tipe STRING, wajib. ARN dari peran RAM yang diberi otorisasi untuk layanan MaxCompute.

region

string

Tidak

Wilayah tempat koneksi ini berada. Output-only

Model peran

Role digunakan untuk mendefinisikan role kustom.

{
  "name": "string",
  "roleName": "string",
  "description": "string",
  "includedPermissions": ["string"],
  "etag": "string",
  "deleted": false
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Nama resource unik secara global: namespaces/{namespace_ID}/roles/{roleName}. Output-only

roleName

string

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

description

string

Opsional. Maksimum 1 KB

includedPermissions

string[]

Daftar izin yang termasuk dalam Role

etag

string

Output-only untuk saat ini. Akan digunakan untuk konsistensi read-modify-write di masa depan

deleted

boolean

Output-only. Menunjukkan apakah item telah dihapus

RoleView enum

Nilai enum

Deskripsi

BASIC

Tidak mengembalikan includedPermissions. Ini adalah default

FULL

Mengembalikan semua field

Model Taxonomy

Taxonomy digunakan untuk mengelola sistem klasifikasi tag kebijakan (Policy Tag).

{
  "name": "string",
  "taxonomyName": "string",
  "description": "string",
  "activatedPolicyTypes": ["enum(PolicyType)"],
  "policyTagCount": 0,
  "createTime": "string (int64 format)",
  "lastModifiedTime": "string (int64 format)"
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Output-only. Format: namespaces/{namespace_ID}/taxonomies/{ID}, di mana ID adalah ID unik yang ditetapkan sistem

taxonomyName

string

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

description

string

Opsional. Maksimum 2000 byte

activatedPolicyTypes

PolicyType[]

Opsional. Daftar tipe kebijakan yang diaktifkan di bawah Taxonomy ini. Default ke POLICY_TYPE_UNSPECIFIED

policyTagCount

integer

Output-only. Jumlah tag kebijakan dalam Taxonomy ini

createTime

string (int64)

Output-only. Timestamp pembuatan Taxonomy dalam milidetik UTC

lastModifiedTime

string (int64)

Output-only. Timestamp modifikasi terakhir Taxonomy dalam milidetik UTC

Enum PolicyType

Nilai enum

Deskripsi

POLICY_TYPE_UNSPECIFIED

Tipe tidak ditentukan

FINE_GRAINED_ACCESS_CONTROL

Aktifkan kontrol akses tingkat kolom

Catatan

Ketika taxonomy secara eksplisit menentukan FINE_GRAINED_ACCESS_CONTROL atau tag kebijakan apa pun di bawah taxonomy tersebut memiliki kebijakan data yang dikonfigurasi, semua tag kebijakan di bawah taxonomy tersebut dianggap telah mengaktifkan kontrol akses tingkat kolom.

Model PolicyTag

PolicyTag adalah tag kebijakan yang dilampirkan pada Taxonomy, digunakan untuk menerapkan kontrol akses tingkat kolom.

{
  "name": "string",
  "policyTagName": "string",
  "description": "string",
  "parentPolicyTag": "string",
  "childPolicyTags": ["string"]
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Path lengkap PolicyTag: namespaces/{namespace_ID}/taxonomies/{TID}/policyTags/{ID}, di mana ID adalah ID unik yang ditetapkan sistem

policyTagName

string

Unik dalam Taxonomy induk. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

description

string

Opsional. Maksimum 2000 byte

parentPolicyTag

string

Nama node induk. Kosong menunjukkan node root. Default ke kosong

childPolicyTags

string[]

Output-only. Daftar nama node anak

Model DataPolicy

DataPolicy digunakan untuk mendefinisikan aturan penyembunyian data.

{
  "name": "string",
  "dataPolicyName": "string",
  "policyTag": "string",
  "dataPolicyType": "enum(DataPolicyType)",
  "dataMaskingPolicy": { "object(DataMaskingPolicy)" }
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

namespaces/{namespace_ID}/dataPolicies/{dataPolicyName}. Output-only

dataPolicyName

string

Nama kebijakan data yang ditentukan pengguna, unik di tingkat akun

policyTag

string

Nama resource lengkap tag kebijakan yang terikat pada kebijakan data ini

dataPolicyType

enum(DataPolicyType)

Saat ini, hanya DATA_MASKING_POLICY (penyembunyian data tingkat kolom) yang didukung

dataMaskingPolicy

DataMaskingPolicy

Aturan penyembunyian yang ditetapkan pada kebijakan data ini

  • DataMaskingPolicy

    Field

    Tipe

    Deskripsi

    predefinedExpression

    enum(PredefinedExpression)

    Tipe strategi penyembunyian yang telah ditentukan

    parameters

    string[]

    Parameter strategi penyembunyian yang telah ditentukan

  • Strategi penyembunyian yang telah ditentukan (PredefinedExpression)

    Nilai enum

    Deskripsi

    SHA256

    Hash SHA256

    SHA512

    Hash SHA512

    ALWAYS_NULL

    Selalu mengembalikan NULL

    DEFAULT_MASKING_VALUE

    Nilai penyembunyian default

    DATE_YEAR

    Hanya mempertahankan tahun

    POINT_RESERVE

    Mempertahankan titik desimal

    STRING_MASKED_BA

    Penyembunyian string (maju)

    STRING_UNMASKED_BA

    String tidak disembunyikan (maju)

    MD5

    Hash MD5

    SM3

    Hash SM3

    REPLACE_RANDOM

    Penggantian acak

    REPLACE_RANDOM_BA

    Penggantian acak (maju)

    REPLACE_FIXED

    Penggantian nilai tetap

Model DataScan

DataScan digunakan untuk mengonfigurasi tugas pemerindaian metadata.

{
  "name": "string",
  "scanName": "string",
  "type": "string",
  "creator": "string",
  "customerId": "string",
  "namespaceId": "string",
  "description": "string",
  "scanId": "string",
  "creationTime": 0,
  "lastModifiedTime": 0,
  "lastTriggeredTime": 0,
  "lastSuccessfulScheduleTime": 0,
  "lastTriggeredBy": "string",
  "schedulingStatus": "string",
  "source": { "object(DataScanSource)" },
  "target": { "object(DataScanTarget)" },
  "properties": { "object(DataScanProperties)" },
  "schedulerMode": "string",
  "schedulerInterval": "string",
  "scheduledCount": 0
}

Klik untuk memperluas detail field

Field

Type

Deskripsi

name

string

Nama resource unik secara global: namespaces/{namespaceID}/dataScans/{dataScanName}

scanName

string

Nama tugas pemerindaian yang ditentukan pengguna

type

string

Nilai valid: TABLE_DISCOVERY (penemuan tabel), SCHEMA_DISCOVERY (penemuan skema)

creator

string

Pembuat dataScan

customerId

string

ID Pelanggan

namespaceId

string

Namespace tempat dataScan berada

description

string

Deskripsi yang ditentukan pengguna

scanId

string

ID pemindaian yang dihasilkan sistem. Field tampilan read-only

creationTime

int64

Waktu pembuatan, timestamp UTC

lastModifiedTime

int64

Waktu modifikasi terakhir, timestamp UTC

lastTriggeredTime

int64

Waktu pemicu terakhir tugas pemerindaian (waktu mulai penjadwalan), timestamp UTC. Default ke 0 jika belum pernah dipicu

lastSuccessfulScheduleTime

int64

Waktu eksekusi Pekerjaan Datascan terakhir yang berhasil. Default ke 0

lastTriggeredBy

string

Sumber yang memicu penjadwalan saat ini: pengguna tertentu atau penjadwal

schedulingStatus

string

Status penjadwalan. Nilai valid: IDLE / IMMEDIATE / PENDING / SCHEDULING. Status awal adalah IDLE. Atur ke IMMEDIATE untuk mengeksekusi segera setelah pembuatan

source

DataScanSource

Sumber pemerindaian dan penemuan metadata

target

DataScanTarget

Parameter yang mengontrol cara hasil penemuan ditulis

properties

DataScanProperties

Parameter opsional untuk tugas pemerindaian

schedulerMode

string

manual (dipicu manual) / periodic (pemicu otomatis berkala)

schedulerInterval

string

Ketika schedulerMode adalah periodic, interval maksimum antara dua tugas pemerindaian. Rentang valid: [1h-7d]

scheduledCount

int64

Jumlah total kali dataScan ini telah dijadwalkan

  • DataScanSource

    Field

    Tipe

    Deskripsi

    location

    string

    Alamat lokasi. Mendukung OSS, DLF, dan Holo

    connection

    string

    Nama koneksi. Menyediakan identitas dan informasi jaringan yang diperlukan untuk mengakses sumber. Otentikasi diperlukan

    ignores

    string[]

    Path yang diabaikan. Mendukung ekspresi reguler

  • DataScanTarget

    Field

    Tipe

    Deskripsi

    project

    string

    Nama proyek tempat hasil ditulis

    schema

    string

    Ketika dataScan.type adalah table, skema tempat tabel ditulis

    namePrefix

    string

    Awalan untuk nama tabel/skema yang dihasilkan otomatis oleh tugas pemerindaian, mencegah konflik penamaan

    properties

    string

    Atribut tabel/skema yang dapat ditentukan pengguna untuk output akhir

  • DataScanProperties

    Field

    Type

    Deskripsi

    formatFilter

    string

    AUTO/PARQUET/ORC/JSON/CSV. Pindai hanya data dengan format yang ditentukan. Jika ditentukan, file dengan format lain diabaikan. AUTO mengaktifkan deteksi format otomatis

    scanMode

    enum

    SAMPLE / TOTAL. Default ke SAMPLE

    enableStats

    boolean

    Apakah statistik digunakan untuk optimasi kueri

    options

    string

    Konfigurasi opsional tambahan, seperti opsi ekstra untuk format CSV

    pattern

    string

    Pola pengenalan path partisi, seperti {table}/{part1}={value1}/{part2}={value2}

    updatePolicy

    string

    Kebijakan untuk menangani perubahan metadata tabel: APPEND_ONLY / OVERWRITE / IGNORE

    syncRemove

    boolean

    Apakah tabel dihapus otomatis ketika dihapus dari sumber

    autoCommit

    boolean

    false menunjukkan tugas pemerindaian hanya menghasilkan output tanpa melakukan commit DDL

    inventoryLocation

    string

    Menentukan lokasi penyimpanan untuk log Inventaris OSS, digunakan untuk pemindaian inkremental

Model

Model digunakan untuk mengelola metadata untuk model pembelajaran mesin.

{
  "name": "string",
  "modelName": "string",
  "versionName": "string",
  "defaultVersion": "string",
  "createTime": "string",
  "updateTime": "string",
  "versionCreateTime": "string",
  "versionUpdateTime": "string",
  "description": "string",
  "versionDescription": "string",
  "expirationDays": 0,
  "versionExpirationDays": 0,
  "sourceType": "string",
  "modelType": "string",
  "labels": { "map<string, string>" },
  "transform": { "map<string, string>" },
  "path": "string",
  "options": { "map<string, string>" },
  "extraInfo": { "map<string, string>" },
  "versionExtraInfo": { "map<string, string>" },
  "trainingInfo": { "map<string, string>" },
  "inferenceParameters": { "map<string, string>" },
  "featureColumns": { "object(ModelFieldSchema)" },
  "tasks": ["string"]
}

Klik untuk memperluas rincian bidang

Field

Tipe

Deskripsi

name

string

Path lengkap model: projects/{projectId}/schemas/{schemaName}/models/{modelName}

modelName

string

Nama model, unik dalam skema induk. Tidak sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

versionName

string

Nama versi, unik dalam model yang sama. Tidak sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

defaultVersion

string

Nama versi default model

createTime

string

Waktu pembuatan model dalam milidetik

updateTime

string

Waktu modifikasi terakhir model dalam milidetik

versionCreateTime

string

Waktu pembuatan versi dalam milidetik

versionUpdateTime

string

Waktu modifikasi terakhir versi dalam milidetik

description

string

Deskripsi model, maksimum 1 KB

versionDescription

string

Deskripsi versi, maksimum 1 KB

expirationDays

integer

Siklus hidup dalam hari berdasarkan waktu pembaruan terakhir model

versionExpirationDays

integer

Siklus hidup dalam hari berdasarkan waktu pembaruan terakhir versi

sourceType

string

Tipe sumber model. Tidak dapat dimodifikasi setelah pembuatan

modelType

string

Tipe model. Tidak dapat dimodifikasi setelah pembuatan

labels

map<string, string>

Label model

transform

map<string, string>

Informasi pra-pemrosesan versi

path

string

Path ke file model versi tersebut

options

map<string, string>

Parameter versi

extraInfo

map<string, string>

Informasi tambahan tentang model

versionExtraInfo

map<string, string>

Informasi tambahan tentang versi

trainingInfo

map<string, string>

Informasi pelatihan versi

inferenceParameters

map<string, string>

Parameter inferensi versi

featureColumns

ModelFieldSchema

Definisi skema kolom versi

tasks

string[]

Semua tipe tugas yang didukung oleh versi ini

Batasan field tasks

  • Untuk model LLM/MLLM, nilai valid mencakup satu atau lebih dari: text-generation, chat, sentence-embedding

  • Untuk model BOOSTED_TREE_CLASSIFIER, nilai valid adalah [predict, predict-proba, feature-importance] (dalam urutan apa pun)

  • Untuk model BOOSTED_TREE_REGRESSOR, nilai valid adalah [predict, feature-importance] (dalam urutan apa pun)

Model Schema

{
  "name": "string",
  "schemaName": "string",
  "description": "string",
  "type": "enum(SchemaType)",
  "owner": "string",
  "externalSchemaConfiguration": { "object(ExternalSchemaConfiguration)" }
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Nama resource lengkap skema: projects/{projectId}/schemas/{schemaName}. Output-only

schemaName

string

Nama skema, unik dalam proyek

description

string

Opsional. Deskripsi skema

type

enum(SchemaType)

Tipe skema: DEFAULT (tipe default), EXTERNAL (eksternal, saat ini tidak didukung)

owner

string

Pemilik skema

externalSchemaConfiguration

ExternalSchemaConfiguration

Opsional. Hanya tersedia untuk skema eksternal. Saat ini tidak diaktifkan dalam versi ini

Model Project

{
  "name": "string",
  "projectId": "string",
  "owner": "string",
  "description": "string",
  "createTime": "string (int64 format)",
  "lastModifiedTime": "string (int64 format)",
  "schemaEnabled": "boolean",
  "region": "string"
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Nama resource lengkap proyek: projects/{projectId}. Output-only

projectId

string

ID unik Proyek

owner

string

Pemilik proyek

description

string

Deskripsi proyek

createTime

string (int64)

Timestamp pembuatan proyek dalam milidetik UTC

lastModifiedTime

string (int64)

Timestamp modifikasi terakhir proyek dalam milidetik UTC

schemaEnabled

boolean

Apakah model tiga-tier diaktifkan untuk proyek

region

string

Wilayah tempat proyek berada

Model Partition

{
  "spec": "string"
}

Field

Tipe

Deskripsi

spec

string

Spesifikasi partisi. Contoh format: bu=tt/ds=20250515

Model Pencarian

{
  "name": "string",
  "displayName": "string",
  "type": "string",
  "aspects": { "map<string, string>" },
  "createTime": "string",
  "lastModifiedTime": "string",
  "description": "string"
}

Klik untuk memperluas detail field

Field

Tipe

Deskripsi

name

string

Path lengkap entitas, sepertiprojects/{projectId}/schemas/{schemaName}/tables/{tableName}

displayName

string

Nama entitas

type

string

Tipe entitas, misalnya, TABLE, RESOURCE, SCHEMA

aspects

map<string, string>

Informasi tambahan tentang entitas

createTime

string

Waktu pembuatan entitas dalam milidetik

lastModifiedTime

string

Waktu modifikasi terakhir entitas dalam milidetik

description

string

Deskripsi entitas

Referensi API

Catatan umum

Awalan URL: Semua URL API dalam dokumen ini menggunakan awalan berikut: /api/catalog/v1alpha/.

Penting

Awalan ini tidak diulang dalam deskripsi API individual.

Penanganan error

Kode status HTTP

Alasan

Deskripsi

400

InvalidArgument

Input permintaan tidak valid

403

AccessDenied

Tidak memiliki izin untuk melakukan operasi ini

404

NotFound

Objek yang akan dioperasikan tidak ada

409

AlreadyExists

Objek yang akan dibuat sudah ada

429

RateLimitExceeded

Laju permintaan terlalu tinggi. Pembatasan laju dipicu

500

InternalError

Error server internal

API Tabel

Buat tabel

Buat tabel baru.

  • Signature metode

    Table createTable(Table table)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel, berisi definisi tabel lengkap

  • Respons

    Mengembalikan objek Table yang dibuat.

  • Contoh penggunaan

    // Bangun tabel
    Table table = new Table();
    table.setProjectId("my_project");
    table.setSchemaName("default");
    table.setTableName("my_table");
    table.setDescription("Ini adalah contoh tabel");
    table.setType("TABLE");
    
    // Tetapkan skema tabel
    TableFieldSchema field = new TableFieldSchema();
    field.setFieldName("id");
    field.setTypeCategory("BIGINT");
    field.setMode("REQUIRED");
    
    TableFieldSchema nameField = new TableFieldSchema();
    nameField.setFieldName("name");
    nameField.setTypeCategory("STRING");
    nameField.setMode("NULLABLE");
    
    TableFieldSchema schema = new TableFieldSchema();
    schema.setFields(Arrays.asList(field, nameField));
    table.setTableSchema(schema);
    
    // Buat tabel
    Table createdTable = client.createTable(table);
    System.out.println("Tabel dibuat: " + createdTable.getName());

Dapatkan tabel

Dapatkan informasi detail tentang tabel tertentu.

  • Signature metode

    Table getTable(Table table)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel yang berisi projectId, schemaName, dan tableName

  • Respons

    Mengembalikan objek Table.

  • Contoh penggunaan

    Table query = new Table();
    query.setProjectId("my_project");
    query.setSchemaName("default");
    query.setTableName("my_table");
    
    Table result = client.getTable(query);
    System.out.println("Tipe tabel: " + result.getType());
    System.out.println("Deskripsi: " + result.getDescription());

Perbarui tabel

Perbarui atribut tabel tertentu.

  • Signature metode

    Table updateTable(Table table)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel yang berisi pembaruan

  • Respons

    Mengembalikan objek Table yang diperbarui.

  • Contoh penggunaan

    Table table = client.getTable(query);
    table.setDescription("Deskripsi diperbarui");
    
    Table updated = client.updateTable(table);

Hapus tabel

Hapus tabel tertentu.

  • Signature metode

    HttpResponse deleteTable(Table table)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel yang berisi projectId, schemaName, dan tableName

  • Respons

    Mengembalikan HttpResponse kosong jika berhasil.

  • Contoh penggunaan

    HttpResponse response = client.deleteTable(table);
    System.out.println("Kode status: " + response.getStatusCode());

Daftar tabel

Cantumkan semua tabel dalam skema tertentu.

  • Signature metode

    ListTablesResponse listTables(String projectId, String schemaName, Integer pageSize, String pageToken)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schemaName

    string

    Ya

    Nama skema

    pageSize

    integer

    Tidak

    Ukuran halaman. Default ke 100, maksimum 1000

    pageToken

    string

    Tidak

    Token halaman. Default ke kosong

  • Respons

    {
      "tables": [Table],
      "nextPageToken": "string"
    }
  • Contoh penggunaan

    ListTablesResponse response = client.listTables("my_project", "default", 100, "");
    
    // Iterasi melalui semua halaman
    while (response.getTables() != null && !response.getTables().isEmpty()) {
        for (Table t : response.getTables()) {
            System.out.println(t.getTableName());
        }
        
        if (response.getNextPageToken() == null || response.getNextPageToken().isEmpty()) {
            break;
        }
        response = client.listTables("my_project", "default", 100, response.getNextPageToken());
    }

Tetapkan Policy tabel

Tetapkan kebijakan akses tabel.

  • Signature metode

    Policy setTablePolicy(Table table, SetPolicyRequest request)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel

    request

    SetPolicyRequest

    Ya

    Permintaan kebijakan

  • Respons

    Mengembalikan objek Policy yang diperbarui.

Dapatkan Policy tabel

Dapatkan kebijakan akses tabel.

  • Signature metode

    Policy getTablePolicy(Table table)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel

  • Respons

    Mengembalikan objek Policy tabel.

Dapatkan DataToken tabel

Dapatkan token akses sementara untuk tabel tertentu.

  • Signature metode

    DataToken getDataToken(Table table, Integer duration)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    table

    Table

    Ya

    Objek tabel

    duration

    integer

    Tidak

    Periode validitas token (detik)

  • Respons

    {
      "version": "string",
      "type": "string",
      "value": "string",
      "expiration": "string"
    }
  • Deskripsi field DataToken

    Field

    Type

    Deskripsi

    version

    string

    Versi format. Saat ini V1

    type

    string

    Tipe. Saat ini hanya STS yang didukung

    value

    string

    Isi token, di-encode base64

    expiration

    string

    Waktu kedaluwarsa

API Partisi

Daftar partisi

Cantumkan semua partisi dari tabel tertentu.

  • Signature metode

    ListPartitionsResponse listPartitions(
        String projectId, 
        String schemaName, 
        String tableName, 
        Integer pageSize, 
        String pageToken,
        String query,
        String view
    )
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schemaName

    string

    Ya

    Nama skema

    tableName

    string

    Ya

    Nama tabel

    pageSize

    integer

    Tidak

    Ukuran halaman. Default ke 100, maksimum 1000

    pageToken

    string

    Tidak

    Token halaman. Default ke kosong

    query

    string

    Tidak

    Kondisi pencarian partisi, misalnya, partition_name:part

    view

    string

    Tidak

    Saat ini, hanya BASIC yang didukung

  • Respons

    {
      "partitions": [Partition],
      "nextPageToken": "string"
    }

API Koneksi

Buat koneksi

Buat koneksi sumber data eksternal baru.

  • Signature metode

    Connection createConnection(String namespace, Connection connection)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace (UID akun utama)

    connection

    Connection

    Ya

    Objek koneksi

  • Respons

    Mengembalikan objek Connection yang dibuat.

  • Contoh penggunaan

    // Bangun Koneksi
    Connection conn = new Connection();
    conn.setConnectionName("my_oss_connection");
    conn.setDescription("Koneksi untuk mengakses OSS");
    conn.setConnectionType("CLOUD_RESOURCE");
    
    CloudResourceOptions options = new CloudResourceOptions();
    options.setRamRoleArn("acs:ram::123456789:role/MaxComputeOSSRole");
    conn.setCloudResource(options);
    
    // Buat koneksi
    Connection created = client.createConnection("123456789", conn);

Daftar koneksi

Cantumkan semua koneksi dalam namespace tertentu.

  • Signature metode

    ListConnectionsResponse listConnections(String namespace, Integer pageSize, String pageToken)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    pageSize

    integer

    Tidak

    Ukuran halaman. Default ke 100, maksimum 1000

    pageToken

    string

    Tidak

    Token halaman. Default ke kosong

  • Respons

    {
      "connections": [Connection],
      "nextPageToken": "string"
    }

Dapatkan koneksi

Dapatkan informasi detail tentang koneksi tertentu.

  • Signature metode

    Connection getConnection(String namespace, String connectionName)

Perbarui koneksi

Perbarui atribut koneksi tertentu.

  • Signature metode

    Connection updateConnection(String namespace, String connectionName, Connection connection, String updateMask)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    connectionName

    string

    Ya

    Nama koneksi

    connection

    Connection

    Ya

    Objek koneksi yang berisi pembaruan

    updateMask

    string

    Ya

    Tentukan field yang akan diperbarui. Saat ini, hanya field description yang didukung

  • Respons

    Mengembalikan objek Connection yang diperbarui.

  • Contoh penggunaan

    Connection conn = new Connection();
    conn.setConnectionName("my_oss_connection");
    conn.setDescription("Deskripsi diperbarui");
    
    Connection updated = client.updateConnection("123456789", "my_oss_connection", conn, "description");

Hapus koneksi

Hapus koneksi tertentu.

  • Signature metode

    HttpResponse deleteConnection(String namespace, String connectionName)

Tetapkan kebijakan koneksi

Tetapkan kebijakan akses koneksi.

  • Signature metode

    Policy setConnectionPolicy(String namespace, String connectionName, SetPolicyRequest request)

Mendapatkan kebijakan koneksi

Dapatkan kebijakan akses koneksi.

  • Signature metode

    Policy getConnectionPolicy(String namespace, String connectionName)

API Role

Buat role

Buat Role kustom.

  • Signature metode

    Role createRole(String namespace, Role role)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    role

    Role

    Ya

    Objek role

  • Respons

    Mengembalikan objek Role yang dibuat.

  • Contoh penggunaan

    Role role = new Role();
    role.setRoleName("my_custom_role");
    role.setDescription("Role kustom");
    role.setIncludedPermissions(Arrays.asList("odps:CreateTable", "odps:ListTable"));
    
    Role created = client.createRole("123456789", role);

Daftar role

Cantumkan semua role dalam namespace tertentu.

  • Signature metode

    ListRolesResponse listRoles(
        String namespace, 
        Integer pageSize, 
        String pageToken, 
        String view, 
        Boolean showDeleted
    )
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    pageSize

    integer

    Tidak

    Ukuran halaman. Default ke 100, maksimum 1000

    pageToken

    string

    Tidak

    Token halaman. Default ke kosong

    view

    enum(RoleView)

    Tidak

    Default ke BASIC. Ketika diatur ke FULL, semua field dikembalikan

    showDeleted

    boolean

    Tidak

    Apakah role yang dihapus disertakan. Default ke false

  • Respons

    {
      "roles": [Role],
      "nextPageToken": "string"
    }

Dapatkan role

Dapatkan informasi detail mengenai peran yang telah ditentukan.

  • Signature metode

    Role getRole(String namespace, String roleName)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    roleName

    string

    Ya

    Nama role

Perbarui role

Perbarui atribut role tertentu.

  • Signature metode

    Role updateRole(String namespace, String roleName, Role role, String updateMask)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    roleName

    string

    Ya

    Nama role

    role

    Role

    Ya

    Objek role yang berisi pembaruan

    updateMask

    string

    Ya

    Tentukan field yang akan diperbarui, seperti "description, includedPermissions"

Hapus role

Hapus role kustom tertentu.

  • Signature metode

    HttpResponse deleteRole(String namespace, String roleName)
Penting

Setelah role dihapus, perubahan berikut berlaku segera:

  • Role tidak dapat lagi diikat ke Policy.

  • Policy yang sudah diikat ke role ini tetap dalam keadaan terikat, tetapi tidak berpengaruh.

  • Operasi daftar role tidak mencantumkan role yang dihapus secara default. Setelah dihapus, role tersebut tetap dihitung terhadap batas total dan tetap dalam keadaan dihapus selama tujuh hari. Setelah tujuh hari, role tersebut dihapus permanen, semua ikatan resource dengan role ini dihapus, dan tidak lagi dihitung terhadap batas total.

Atur Kebijakan Peran

Tetapkan kebijakan akses role.

  • Signature metode

    Policy setRolePolicy(String namespace, String roleName, SetPolicyRequest request)

Dapatkan Kebijakan Peran

Dapatkan kebijakan akses role.

  • Signature metode

    Policy getRolePolicy(String namespace, String roleName)

API Taxonomy

Buat Taxonomy

Buat klasifikasi tag kebijakan baru.

  • Signature metode

    Taxonomy createTaxonomy(String namespace, Taxonomy taxonomy)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    taxonomy

    Taxonomy

    Ya

    Objek taxonomy

  • Response

    Mengembalikan objek Taxonomy yang dibuat.

  • Contoh penggunaan

    Taxonomy taxonomy = new Taxonomy();
    taxonomy.setTaxonomyName("sensitive_data");
    taxonomy.setDescription("Klasifikasi data sensitif");
    taxonomy.setActivatedPolicyTypes(Arrays.asList("FINE_GRAINED_ACCESS_CONTROL"));
    
    Taxonomy created = client.createTaxonomy("123456789", taxonomy);

Daftar Taxonomy

Cantumkan semua Taxonomy dalam namespace tertentu.

  • Signature metode

    ListTaxonomiesResponse listTaxonomies(String namespace, Integer pageSize, String pageToken)

Dapatkan Taxonomy

Dapatkan informasi detail tentang Taxonomy tertentu.

  • Signature metode

    Taxonomy getTaxonomy(String namespace, String taxonomyId)

Perbarui Taxonomy

Perbarui atribut Taxonomy tertentu.

  • Signature metode

    Taxonomy updateTaxonomy(String namespace, String taxonomyId, Taxonomy taxonomy, String updateMask)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    taxonomyId

    string

    Ya

    ID Taxonomy

    taxonomy

    Taxonomy

    Ya

    Objek taxonomy yang berisi pembaruan

    updateMask

    string

    Ya

    Tentukan field yang akan diperbarui, seperti"description, activatedPolicyTypes"

Hapus Taxonomy

Menghapus secara kaskade semua tag kebijakan, kebijakan data yang dikonfigurasi, dan hubungan pengikatan kolom di bawah taxonomy.

  • Signature metode

    HttpResponse deleteTaxonomy(String namespace, String taxonomyId)

Tetapkan Policy Taxonomy

Tetapkan kebijakan akses Taxonomy.

  • Signature metode

    Policy setTaxonomyPolicy(String namespace, String taxonomyId, SetPolicyRequest request)

Dapatkan Policy Taxonomy

Dapatkan kebijakan akses Taxonomy.

  • Signature metode

    Policy getTaxonomyPolicy(String namespace, String taxonomyId)

API PolicyTag

Buat PolicyTag

Buat tag kebijakan baru di bawah Taxonomy tertentu.

  • Signature metode

    PolicyTag createPolicyTag(String namespace, String taxonomyId, PolicyTag policyTag)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    taxonomyId

    string

    Ya

    ID Taxonomy

    policyTag

    PolicyTag

    Ya

    Objek PolicyTag

  • Respons

    Mengembalikan objek PolicyTag yang dibuat.

  • Contoh penggunaan

    PolicyTag tag = new PolicyTag();
    tag.setPolicyTagName("phone_number");
    tag.setDescription("Tag penyembunyian nomor telepon");
    
    PolicyTag created = client.createPolicyTag("123456789", "taxonomy_id_123", tag);

Daftar PolicyTag

Cantumkan semua PolicyTag di bawah Taxonomy tertentu.

  • Signature metode

    ListPolicyTagsResponse listPolicyTags(
        String namespace, 
        String taxonomyId, 
        Integer pageSize, 
        String pageToken
    )

Dapatkan PolicyTag

Dapatkan informasi detail tentang PolicyTag tertentu.

  • Signature metode

    PolicyTag getPolicyTag(String namespace, String taxonomyId, String policyTagId)

Perbarui PolicyTag

Perbarui atribut PolicyTag tertentu.

  • Signature metode

    PolicyTag updatePolicyTag(
        String namespace, 
        String taxonomyId, 
        String policyTagId, 
        PolicyTag policyTag, 
        String updateMask
    )
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    taxonomyId

    string

    Ya

    ID Taxonomy

    policyTagId

    string

    Ya

    ID PolicyTag

    policyTag

    PolicyTag

    Ya

    Objek PolicyTag yang berisi pembaruan

    updateMask

    string

    Ya

    Tentukan field yang akan diperbarui. Saat ini, hanya field description yang didukung

Hapus PolicyTag

Hapus tag kebijakan dan hapus secara rekursif: semua node anak dari tag kebijakan, semua kebijakan data yang dikonfigurasi pada tag kebijakan (termasuk node anak), serta hubungan pengikatan kolom tag kebijakan pada tabel (termasuk node anak).

  • Signature metode

    HttpResponse deletePolicyTag(String namespace, String taxonomyId, String policyTagId)

Tetapkan Policy PolicyTag

Tetapkan kebijakan akses PolicyTag.

  • Signature metode

    Policy setPolicyTagPolicy(String namespace, String taxonomyId, String policyTagId, SetPolicyRequest request)

Dapatkan Kebijakan PolicyTag

Dapatkan kebijakan akses PolicyTag.

  • Signature metode

    Policy getPolicyTagPolicy(String namespace, String taxonomyId, String policyTagId)

API DataPolicy

Buat DataPolicy

Buat kebijakan data baru (aturan penyembunyian).

  • Signature metode

    DataPolicy createDataPolicy(String namespace, DataPolicy dataPolicy)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    dataPolicy

    DataPolicy

    Ya

    Objek DataPolicy

  • Respons

    Mengembalikan objek DataPolicy yang dibuat.

  • Contoh penggunaan

    // Bangun aturan penyembunyian
    DataMaskingPolicy maskingPolicy = new DataMaskingPolicy();
    maskingPolicy.setPredefinedExpression("STRING_MASKED_BA");
    
    DataPolicy policy = new DataPolicy();
    policy.setDataPolicyName("phone_masking");
    policy.setPolicyTag("namespaces/123456789/taxonomies/tid_123/policyTags/ptid_456");
    policy.setDataPolicyType("DATA_MASKING_POLICY");
    policy.setDataMaskingPolicy(maskingPolicy);
    
    DataPolicy created = client.createDataPolicy("123456789", policy);

Daftar DataPolicy

Cantumkan semua DataPolicy dalam namespace tertentu.

  • Signature metode

    ListDataPoliciesResponse listDataPolicies(String namespace, Integer pageSize, String pageToken)

Dapatkan DataPolicy

Dapatkan informasi detail tentang DataPolicy tertentu.

  • Signature metode

    DataPolicy getDataPolicy(String namespace, String dataPolicyName)

Hapus DataPolicy

Hapus DataPolicy tertentu.

  • Signature metode

    HttpResponse deleteDataPolicy(String namespace, String dataPolicyName)

Tetapkan Policy DataPolicy

Tetapkan kebijakan akses DataPolicy.

  • Signature metode

    Policy setDataPolicyPolicy(String namespace, String dataPolicyName, SetPolicyRequest request)

Dapatkan Policy DataPolicy

Dapatkan kebijakan akses DataPolicy.

  • Signature metode

    Policy getDataPolicyPolicy(String namespace, String dataPolicyName)

API DataScan

Buat DataScan

Buat tugas pemerindaian metadata baru.

  • Signature metode

    DataScan createDataScan(String namespace, DataScan dataScan)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespace

    string

    Ya

    ID Namespace

    dataScan

    DataScan

    Ya

    Objek DataScan

  • Respons

    Mengembalikan objek DataScan yang dibuat.

  • Contoh penggunaan

    // Bangun tugas pemerindaian
    DataScanSource source = new DataScanSource();
    source.setLocation("oss://my-bucket/my-path/");
    source.setConnection("my_oss_connection");
    
    DataScanTarget target = new DataScanTarget();
    target.setProject("my_project");
    target.setSchema("default");
    target.setNamePrefix("auto_");
    
    DataScanProperties properties = new DataScanProperties();
    properties.setFormatFilter("AUTO");
    properties.setScanMode("SAMPLE");
    properties.setAutoCommit(true);
    
    DataScan dataScan = new DataScan();
    dataScan.setScanName("my_oss_scan");
    dataScan.setType("TABLE_DISCOVERY");
    dataScan.setDescription("Pindai metadata OSS");
    dataScan.setSource(source);
    dataScan.setTarget(target);
    dataScan.setProperties(properties);
    dataScan.setSchedulerMode("MANUAL");
    
    DataScan created = client.createDataScan("123456789", dataScan);

Daftar DataScan

Cantumkan semua DataScan dalam namespace tertentu.

  • Signature metode

    ListDataScansResponse listDataScans(String namespace, Integer pageSize, String pageToken)

Dapatkan DataScan

Dapatkan informasi detail tentang DataScan tertentu.

  • Signature metode

    DataScan getDataScan(String namespace, String dataScanName)

Perbarui DataScan

Perbarui atribut DataScan tertentu.

  • Signature metode

    DataScan updateDataScan(String namespace, DataScan dataScan, String updateMask)

Hapus DataScan

Hapus DataScan tertentu.

  • Signature metode

    HttpResponse deleteDataScan(String namespace, String dataScanName)

PicuDataScan

Picu secara manual tugas pemerindaian DataScan.

  • Signature metode

    HttpResponse triggerDataScan(String namespace, String dataScanName)
  • Contoh penggunaan

    HttpResponse response = client.triggerDataScan("123456789", "my_oss_scan");
    System.out.println("Dipicu: " + response.getStatusCode());

Daftar pekerjaan DataScan

Cantumkan riwayat pekerjaan pemerindaian dari DataScan tertentu.

  • Signature metode

    ListDataScanJobsResponse listDataScanJobs(
        String namespace, 
        String dataScanName, 
        Integer pageSize, 
        String pageToken
    )
  • Respons

    {
      "scanJobs": [ScanJob],
      "nextPageToken": "string"
    }
  • Model ScanJob

    Field

    Tipe

    Deskripsi

    jobId

    string

    ID Pekerjaan

    namespaceId

    string

    Namespace tempat pekerjaan berada

    dataScanId

    string

    ID dataScan yang dihasilkan sistem

    dataScanName

    string

    Nama tugas pemerindaian induk

    triggeredBy

    string

    Orang yang memicu pekerjaan pemerindaian ini. scheduler untuk pemicu terjadwal

    startTime

    int64

    Waktu mulai pekerjaan pemerindaian, timestamp UTC

    endTime

    int64

    Waktu selesai pekerjaan pemerindaian, timestamp UTC

    status

    string

    Status pekerjaan pemerindaian: Created/Running/Terminated/Failed

    statusDetail

    string

    Detail status pekerjaan pemerindaian, seperti pesan error

    ddl

    string

    Informasi DDL yang dikembalikan oleh pekerjaan pemerindaian yang perlu di-commit

    stats

    string

    Informasi stats yang dikembalikan oleh pekerjaan pemerindaian dalam format JSON

API Model

Buat model

Buat model pembelajaran mesin baru.

  • Signature metode

    Model createModel(String projectId, String schemaName, Model model)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schemaName

    string

    Ya

    Nama skema

    model

    Model

    Ya

    Objek model

  • Respons

    Mengembalikan objek Model yang dibuat.

  • Contoh penggunaan

    Model model = new Model();
    model.setModelName("my_llm_model");
    model.setVersionName("v1");
    model.setDefaultVersion("v1");
    model.setDescription("Model bahasa besar saya");
    model.setSourceType("IMPORT");
    model.setModelType("LLM");
    model.setPath("oss://my-bucket/models/my_llm/");
    model.setTasks(Arrays.asList("text-generation", "chat"));
    
    Model created = client.createModel("my_project", "default", model);

Daftar model

Cantumkan semua model dalam skema tertentu.

  • Signature metode

    ListModelsResponse listModels(
        String projectId, 
        String schemaName, 
        Integer pageSize, 
        String pageToken
    )

Dapatkan model

Dapatkan informasi detail tentang model tertentu.

  • Signature metode

    Model getModel(String projectId, String schemaName, String modelName, String versionName)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schemaName

    string

    Ya

    Nama skema

    modelName

    string

    Ya

    Nama model

    versionName

    string

    Tidak

    Nama versi. Jika tidak ditentukan, metadata model (tanpa versi) yang diambil

Perbarui model

Perbarui atribut model tertentu.

  • Signature metode

    Model updateModel(
        String projectId, 
        String schemaName, 
        String modelName, 
        Model model, 
        String updateMask, 
        String versionName
    )

Hapus model

Hapus model tertentu (termasuk semua versi).

  • Signature metode

    HttpResponse deleteModel(String projectId, String schemaName, String modelName)

Buat versi model

Buat versi baru untuk model tertentu.

  • Signature metode

    Model createModelVersion(String projectId, String schemaName, String modelName, Model model)
  • Contoh penggunaan

    Model version = new Model();
    version.setModelName("my_llm_model");
    version.setVersionName("v2");
    version.setVersionDescription("Versi model diperbarui");
    version.setPath("oss://my-bucket/models/my_llm_v2/");
    version.setTasks(Arrays.asList("text-generation", "chat"));
    
    Model createdVersion = client.createModelVersion("my_project", "default", "my_llm_model", version);

Hapus versi model

Hapus versi model tertentu.

  • Signature metode

    HttpResponse deleteModelVersion(
        String projectId, 
        String schemaName, 
        String modelName, 
        String versionName
    )

Daftar versi model

Cantumkan semua versi dari model tertentu.

  • Signature metode

    ListModelVersionsResponse listModelVersions(
        String projectId, 
        String schemaName, 
        String modelName, 
        Integer pageSize, 
        String pageToken
    )

Tetapkan Policy model

Tetapkan kebijakan akses model.

  • Signature metode

    Policy setModelPolicy(String projectId, String schemaName, String modelName, SetPolicyRequest request)

Dapatkan Policy model

Dapatkan kebijakan akses model.

  • Signature metode

    Policy getModelPolicy(String projectId, String schemaName, String modelName)

API Project

Dapatkan Proyek

Dapatkan informasi detail tentang Project tertentu.

  • Signature metode

    Project getProject(String projectId)
  • Contoh penggunaan

    Project project = client.getProject("my_project");
    System.out.println("Pemilik proyek: " + project.getOwner());
    System.out.println("Skema diaktifkan: " + project.getSchemaEnabled());
    System.out.println("Wilayah: " + project.getRegion());

API Skema

Buat Skema

Buat Skema baru dalam Project tertentu.

  • Signature metode

    Schema createSchema(String projectId, Schema schema)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schema

    Schema

    Ya

    Objek skema

  • Respons

    Mengembalikan objek Schema yang dibuat.

  • Contoh penggunaan

    Schema schema = new Schema();
    schema.setSchemaName("my_schema");
    schema.setDescription("Skema kustom saya");
    
    Schema created = client.createSchema("my_project", schema);

Daftar Skema

Cantumkan semua Skema dalam Project tertentu.

  • Signature metode

    ListSchemasResponse listSchemas(String projectId, Integer pageSize, String pageToken)

Dapatkan Skema

Dapatkan informasi detail tentang Skema tertentu.

  • Signature metode

    Schema getSchema(String projectId, String schemaName)

Perbarui Skema

Perbarui atribut Skema tertentu.

  • Signature metode

    Schema updateSchema(String projectId, String schemaName, String updateMask, Schema schema)
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    projectId

    string

    Ya

    ID Proyek

    schemaName

    string

    Ya

    Nama skema

    updateMask

    string

    Ya

    Tentukan field yang akan diperbarui. Saat ini, hanya field description dan owner yang didukung, dan hanya satu field yang dapat diperbarui sekaligus

    schema

    Schema

    Ya

    Objek skema yang berisi pembaruan

Hapus Skema

Hapus Skema tertentu.

  • Signature metode

    HttpResponse deleteSchema(String projectId, String schemaName)

Tetapkan Policy Skema

Tetapkan kebijakan akses Skema.

  • Signature metode

    Policy setSchemaPolicy(String projectId, String schemaName, SetPolicyRequest request)

Dapatkan Policy Skema

Dapatkan kebijakan akses Skema.

  • Signature metode

    Policy getSchemaPolicy(String projectId, String schemaName)

API Pencarian

Cari entitas

Cari berbagai entitas dalam namespace tertentu.

  • Signature metode

    SearchResponse search(
        String namespaceId, 
        String query, 
        Integer pageSize, 
        String pageToken, 
        String orderBy
    )
  • Parameter permintaan

    Parameter

    Tipe

    Wajib

    Deskripsi

    namespaceId

    string

    Ya

    ID akun utama. Pencarian dilakukan dalam cakupan akun utama ini

    query

    string

    Ya

    String kueri pencarian yang terdiri dari satu atau lebih kondisi kueri yang dipisahkan koma

    pageSize

    integer

    Tidak

    Jumlah hasil per halaman. Harus > 0, maksimum 100

    pageToken

    string

    Tidak

    Token halaman

    orderBy

    string

    Tidak

    Urutan pengurutan hasil

  • Sintaks kueri

    • Daftar kondisi kueri:

      Kondisi kueri

      Deskripsi

      name:foo

      Cocokkan foo sebagai substring terhadap nama entitas

      description:bar

      Cocokkan bar sebagai substring terhadap deskripsi entitas

      type=TABLE

      Wajib. Cocokkan entitas dengan tipe tertentu. Saat ini mendukung TABLE, RESOURCE, SCHEMA

      project=proj

      Cari entitas hanya di bawah proyek tertentu. Pemanggil harus memiliki izin SearchProject untuk proyek tersebut

      project=(proj1|proj2|proj3)

      Cari entitas di beberapa proyek (maksimal 512). Pemanggil harus memiliki izin SearchProject untuk semua proyek yang ditentukan

      region=region_id

      Cari entitas di bawah proyek dalam wilayah tertentu

      • project=proj dan project=(proj1|proj2|proj3) tidak dapat digunakan bersamaan

      • region=region_id tidak dapat digunakan bersamaan dengan kondisi kueri project

  • Urutan pengurutan (orderBy)

    Nilai valid

    Deskripsi

    default

    Urutan penyimpanan internal (default)

    create_time asc

    Waktu pembuatan ascending

    create_time desc

    Waktu pembuatan descending

    last_modified_time asc

    Waktu modifikasi terakhir naik

    last_modified_time desc

    Waktu modifikasi terakhir descending

  • Respons

    {
      "entries": [SearchResultEntry],
      "nextPageToken": "string"
    }
  • Contoh penggunaan

    // Cari semua tabel dalam proyek tertentu
    SearchResponse response = client.search(
        "123456789",                            // namespaceId
        "type=TABLE,project=my_project",        // query
        50,                                     // pageSize
        "",                                     // pageToken
        "last_modified_time desc"               // orderBy
    );
    
    if (response.getEntries() != null) {
        for (SearchResultEntry entry : response.getEntries()) {
            System.out.println("Nama: " + entry.getDisplayName());
            System.out.println("Tipe: " + entry.getType());
            System.out.println("Path: " + entry.getName());
        }
    }

Batasan penggunaan

Batas laju

Batas laju diberlakukan di tingkat akun utama. Setiap metode memiliki batas lajunya sendiri, yang bervariasi berdasarkan kategori permintaan.

Batas

Nilai

Metode Get dan GetPolicy

1500 permintaan / 15 detik

Metode List, Create, Update, Delete, dan SetPolicy

150 permintaan / 15 detik

GetProject, ListTables, ListPartitions view=StorageDetail/FULL

15 permintaan / 15 detik

Batas kapasitas

Batas

Nilai

Jumlah role kustom per akun utama

300

Jumlah izin per Role

3000

Jumlah principal per Allow Policy

1500

Ukuran total Role kustom tunggal (termasuk description, roleName, dll.)

64KB

Batas Tag Kebijakan

Batas

Nilai

Jumlah Tag Kebijakan yang terikat pada kolom tunggal dalam tabel tunggal

1

Jumlah Taxonomy per akun

40

Jumlah Tag Kebijakan per Taxonomy

100

Kedalaman Pohon Tag Kebijakan

5

Jumlah Kebijakan Data per Tag

8

Batas paginasi

Parameter

Nilai default

Nilai maksimum

pageSize

100

1000 (100 untuk beberapa API)

Konvensi penamaan

Konvensi penamaan Connection

Field

Konvensi

connectionName

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 32] byte

Konvensi penamaan Role

Field

Konvensi

roleName

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

Konvensi penamaan Taxonomy

Field

Konvensi

taxonomyName

Unik dalam namespace. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

Konvensi penamaan PolicyTag

Field

Konvensi

policyTagName

Unik dalam Taxonomy induk. Sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

Konvensi penamaan DataPolicy

Field

Konvensi

dataPolicyName

Unik di tingkat akun

Konvensi penamaan Model

Field

Konvensi

modelName

Unik dalam skema induk. Tidak sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

versionName

Unik dalam model yang sama. Tidak sensitif terhadap huruf besar/kecil. Karakter valid: [a-z][A-Z][0-9]_. Rentang panjang: [3, 255] byte

FAQ

Apa itu ID Namespace?

ID Namespace adalah UID akun utama Alibaba Cloud. Saat memanggil API tingkat namespace seperti Connection, Role, Taxonomy, DataPolicy, dan DataScan, UID akun utama harus diteruskan sebagai parameter namespace.

Apa itu model tiga-tier?

MaxCompute mendukung dua metode pengorganisasian metadata:

  • Model dua-tier: Project → Table (metode tradisional)

  • Model tiga-tier: Project → Schema → Table (metode baru)

Gunakan field Project.schemaEnabled untuk menentukan apakah model tiga-tier diaktifkan untuk suatu Project. Jika model tiga-tier diaktifkan, parameter schemaName harus ditentukan saat memanggil API Table.

Bagaimana menerapkan kontrol akses tingkat kolom menggunakan Policy Tag?

Alur kerja lengkap untuk kontrol akses tingkat kolom:

  1. Buat Taxonomy dengan activatedPolicyTypes diatur ke FINE_GRAINED_ACCESS_CONTROL.

  2. Buat PolicyTag di bawah Taxonomy (mendukung struktur hierarkis seperti pohon).

  3. Ikat PolicyTag ke kolom tertentu dalam skema kolom tabel.

  4. Buat DataPolicy untuk PolicyTag (definisikan aturan penyembunyian, opsional).

  5. Gunakan Policy untuk mengontrol pengguna mana yang dapat mengakses kolom yang terikat dengan PolicyTag.

Bagaimana memeriksa hasil pemerindaian DataScan?

Setelah tugas pemerindaian DataScan berjalan, ScanJob dihasilkan. Riwayat pekerjaan dapat dilihat melalui API listDataScanJobs. Setiap ScanJob berisi:

  • status: status pekerjaan (Created/Running/Terminated/Failed)

  • ddl: informasi DDL yang dikembalikan oleh pemerindaian yang perlu di-commit

  • stats: informasi statistik yang dikembalikan oleh pemerindaian (format JSON)

Apakah tag kebijakan dipulihkan saat memulihkan tabel yang dihapus dengan perintah RESTORE?

Tidak. Tag kebijakan yang diterapkan pada tabel sebelum penghapusan tidak dipulihkan bersama tabel. Setelah pemulihan, tag kebijakan harus diterapkan kembali pada kolom tabel.

Bagaimana menangani paginasi?

Sebagian besar API Daftar mengembalikan field nextPageToken. Jika field ini tidak kosong, masih ada halaman tambahan. Teruskan nextPageToken sebagai parameter pageToken dalam permintaan berikutnya untuk mengambil halaman data berikutnya.

Lampiran

Riwayat versi SDK

Versi

Tanggal rilis

Deskripsi

v0.2.2

—

Versi saat ini

Glosarium

Istilah

Deskripsi

Namespace

Namespace, sesuai dengan UID akun utama Alibaba Cloud

Project

Proyek MaxCompute

Schema

Namespace (direktori) untuk model tiga-tier

Table

Tabel data

Connection

Koneksi sumber data eksternal

Role

Role kustom

Taxonomy

Sistem klasifikasi tag kebijakan

PolicyTag

Tag kebijakan untuk menerapkan kontrol akses tingkat kolom

DataPolicy

Kebijakan data untuk mendefinisikan aturan penyembunyian data

DataScan

Tugas pemerindaian metadata

Model

Metadata model pembelajaran mesin

Policy

Kebijakan akses, terdiri dari serangkaian Binding

Binding

Mengikat role ke sekumpulan member