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:
|
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.
-
DATETIMEmenggunakan zona waktu UTC+8. Rentang nilainya dari 1 Januari 0000 hingga 31 Desember 9999. Presisinya hingga milidetik. -
TIMESTAMPTZmencakup 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.