全部产品
Search
文档中心

Hologres:CREATE FOREIGN TABLE

更新时间:Feb 05, 2026

Pernyataan CREATE FOREIGN TABLE digunakan untuk membuat tabel eksternal. Anda dapat membuat tabel eksternal untuk sumber data seperti MaxCompute, OSS, DLF, dan Hologres. Topik ini menjelaskan cara menggunakan pernyataan tersebut.

Batasan

Hanya Hologres V1.3 ke atas yang mendukung model Lapisan 3 MaxCompute. Model Lapisan 3 menambahkan lapisan skema di antara proyek dan tabel. Untuk informasi selengkapnya, lihat Operasi skema. Jika instans Hologres Anda menggunakan versi sebelum V1.3 dan ingin membuat tabel eksternal untuk proyek MaxCompute yang menerapkan model Lapisan 3, Anda harus melakukan upgrade instans terlebih dahulu. Jika upgrade gagal, lihat Error umum saat mempersiapkan upgrade. Anda juga dapat bergabung ke grup DingTalk Hologres untuk memberikan masukan. Untuk informasi selengkapnya, lihat Bagaimana cara mendapatkan dukungan online tambahan?.

Sintaksis

CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
  { column_name data_type }
  [, ... ]
  ] )
SERVER odps_server
[ OPTIONS ( option 'value' [, ... ] ) ]

Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Deskripsi

SERVER

Server yang menghubungkan ke sumber data eksternal.

Panggil langsung server tabel eksternal odps_server, yang telah dikonfigurasi sebelumnya di Hologres. Untuk informasi lebih lanjut mengenai prinsipnya, lihat Postgres FDW.

OPTIONS

Tentukan project_name dan table_name. Jika proyek MaxCompute Anda menggunakan model Lapisan 3 tetapi Anda menggunakan sintaksis model dua lapisan, maka akan terjadi error. Berikut contoh pesan error tersebut:

failed to import foreign schema:Table not found - table_xxx
  • Model dua lapisan MaxCompute:

    • project_name: Nama proyek MaxCompute.

    • table_name: Nama tabel MaxCompute yang akan dikueri.

  • Model tiga lapisan MaxCompute:

    • project_name: Nama proyek dan skema MaxCompute. Gunakan format odps_project_name#odps_schema_name.

    • table_name: Nama tabel MaxCompute yang akan dikueri.

Catatan

Tipe data bidang dalam tabel eksternal Hologres harus sesuai dengan tipe data bidang yang sesuai dalam tabel MaxCompute.

Contoh

  • Kueri data langsung dari tabel eksternal.

    Setelah membuat tabel eksternal di Hologres, Anda dapat langsung mengkueri data dari tabel eksternal MaxCompute tersebut. Contohnya ditunjukkan dalam pernyataan SQL berikut.

    -- Model dua lapisan
    CREATE FOREIGN TABLE src_pt(
      id text, 
      pt text) 
    SERVER odps_server 
    OPTIONS(project_name '<odps_project>', table_name '<odps_table>');
    
    -- Model Lapisan 3
    CREATE FOREIGN TABLE src_pt(
      id text,
      pt text)
    SERVER odps_server
    OPTIONS(project_name '<odps_project>#<odps_schema>', table_name '<odps_table>');
    
    SELECT * FROM src_pt;

    Untuk informasi selengkapnya, lihat Percepat kueri data MaxCompute berdasarkan tabel eksternal.

  • Impor data dari tabel eksternal lalu kueri datanya.

    Anda dapat mengimpor data dari MaxCompute ke Hologres sebelum mengkuerinya. Contohnya ditunjukkan dalam pernyataan berikut.

    CREATE FOREIGN TABLE src_pt_odps(
      id text,
      pt text) 
    SERVER odps_server 
    OPTIONS (project_name'<odps_project>', table_name'<odps_table>');
    
    BEGIN;
    CREATE TABLE src_pt(
     id text, 
      pt text);
    COMMIT;
    
    INSERT INTO src_pt SELECT * FROM src_pt_odps;

    Untuk informasi selengkapnya, lihat Mengimpor data dari MaxCompute menggunakan SQL.

Pemetaan tipe data antara MaxCompute dan Hologres

Untuk informasi selengkapnya mengenai pemetaan tipe data antara MaxCompute dan Hologres, lihat Pemetaan tipe data antara MaxCompute dan Hologres.

Catatan
  • DATETIME menggunakan zona waktu UTC+8. Rentang nilainya dari 1 Januari 0000 hingga 31 Desember 9999. Presisinya hingga milidetik.

  • TIMESTAMPTZ mencakup zona waktu. Rentang nilainya dari 4713 SM hingga 294276 M. Presisinya hingga mikrodetik.

  • Jika tabel MaxCompute berisi bidang dengan tipe data yang tidak didukung, Anda tetap dapat mengkueri bidang lain yang bertipe data didukung selama tidak mengakses bidang yang tidak didukung tersebut.