日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

同構數據源訪問

更新時間:

若您需要訪問同阿里云賬號下其他AnalyticDB PostgreSQL版實例數據,可以使用同構數據源訪問功能,將不同實例以外部數據源的形式輕松快速地實現聯合查詢,在保證數據實時性的同時,有效減少數據冗余。

說明

本地實例:創建連接、使用數據的實例。

遠程實例:接受連接、提供數據的實例。

注意事項

  • 本功能僅支持以下數據庫內核版本:

    • AnalyticDB PostgreSQL 6.0版實例需為v6.6.0.0及以上版本。

    • AnalyticDB PostgreSQL 7.0版實例需為v7.0.3.0及以上版本。

    • AnalyticDB PostgreSQL版Serverless模式實例需為v2.1.1.5及以上版本。

  • 若訪問的遠程實例為Serverless模式實例,當遠程實例處于擴縮容狀態時,擴縮容期間數據不可訪問。

前提條件

  • 本地實例與遠程實例需要屬于同一個阿里云賬號,且位于同一個地域,同一個VPC下。

  • 本地實例與遠程實例已創建初始賬號,具體操作,請參見創建數據庫賬號。

操作步驟

本文以開通本地實例A和遠程實例B(兩個實例位于同一地域、同一可用區、同一 VPC 下)跨實例查詢為例。開通跨實例查詢后,您可以在本地實例A的local_db庫訪問遠程實例Bremote_db庫中的表,并利用計算節點之間高速互聯的特性,輕松實現聯合查詢。

步驟一:準備測試數據

  1. 使用psql連接實例,操作步驟,請參見客戶端連接。

  2. 分別在本地實例A和遠程實例B上創建數據庫。

    在本地實例A上創建local_db庫,并切換至local_db庫。

    CREATE DATABASE local_db;
    \c local_db

    在遠程實例B上創建remote_db庫,并切換至remote_db庫。

    CREATE DATABASE remote_db;
    \c remote_db
  3. 在遠程實例B的remote_db庫中準備測試數據。

    CREATE SCHEMA s01;
    
    CREATE TABLE s01.t1(a int, b int, c text); 
    CREATE TABLE s01.t2(a int, b int, c text); 
    CREATE TABLE s01.t3(a int, b int, c text); 
    
    INSERT INTO s01.t1 VALUES(generate_series(1,10),generate_series(11,20),'t1');
    INSERT INTO s01.t2 VALUES(generate_series(11,20),generate_series(11,20),'t2');
    INSERT INTO s01.t3 VALUES(generate_series(21,30),generate_series(11,20),'t3');

步驟二:新增數據源

  1. 登錄云原生數據倉庫AnalyticDB PostgreSQL版控制臺。
  2. 在控制臺左上角,選擇實例所在地域。
  3. 找到目標實例,單擊實例ID。
  4. 在左側導航欄,單擊外部數據源管理

  5. 同構數據源訪問頁簽,單擊新增數據源,并配置如下參數。

    參數

    說明

    本地實例Id

    本地實例A的ID。

    本地數據庫名稱

    本地實例A的數據庫名稱local_db。

    本地初始賬號

    本地實例A的賬號。

    本地初始密碼

    賬號對應的密碼。

    遠程實例Id

    遠程實例B的ID。

    遠程數據庫名稱

    遠程實例B的數據庫名稱remote_db

    遠程數據庫賬號

    遠程實例B的賬號。

    該賬號需要擁有remote_db庫的讀權限(如需執行INSERT操作,則還需要寫權限)。

    遠程數據庫密碼

    賬號對應的密碼。

    數據源名稱

    可選參數,自定義數據源名稱。

  6. 單擊確定,等待數據源連接狀態變為運行中,您可以進行跨實例查詢操作。

    說明

    數據源創建完成后,您還可以進行以下操作。

    • 編輯數據源:單擊操作列的編輯,修改遠程實例的賬號和密碼。

    • 刪除數據源:單擊操作列的刪除,刪除數據源。

步驟三:跨實例查詢

  1. 在本地實例A的local_db庫中實現跨實例查詢。

    實現跨實例查詢有如下兩種方式:

    • (推薦)方式一:導入源庫下Schema中的所有表。

      CREATE SCHEMA s01;
      IMPORT FOREIGN SCHEMA s01 LIMIT TO (t1, t2, t3) 
      	FROM SERVER <data_source_name> INTO s01;

      data_source_name為數據源名稱,可在控制臺同構數據源訪問頁簽查看。

      通過IMPORT FOREIGN SCHEMA語句創建外表的語法,請參見IMPORT FOREIGN SCHEMA。

      上述方式的優缺點如下:

      • 優點:可以快速導入外表,而且不需要知道每個表的DDL。

      • 缺點:不夠靈活,每個表的名稱和字段需要與源庫一致。

    • 方式二:為源表創建外表。

      CREATE SCHEMA s01;
      CREATE FOREIGN TABLE s01.t1(a int, b int) 
      	server <data_source_name> options(schema_name 's01', table_name 't1');

      data_source_name為數據源名稱,可在控制臺同構數據源訪問頁簽查看。

      上述方式的優缺點如下:

      • 優點:可以靈活定制外表的DDL,例如remote_db庫中t1有三個字段a,b,c,但目標庫只需要a,b兩個字段,因此可以在創建外表的時候指定字段。

      • 缺點:需要知道每一個表的DDL,一次性導入多個外表較為繁瑣。

  2. 在實例A的local_db庫中查詢實例Bremote_db庫中的數據。

SELECT * FROM s01.t1;

返回示例如下。

 a  | b  | c
----+----+----
  2 | 12 | t1
  3 | 13 | t1
  4 | 14 | t1
  7 | 17 | t1
  8 | 18 | t1
  1 | 11 | t1
  5 | 15 | t1
  6 | 16 | t1
  9 | 19 | t1
 10 | 20 | t1
(10 rows)

相關文檔

您也可以通過greenplum_fdw和gp_parallel_retrieve_cursor插件實現跨實例查詢,詳情請參見跨實例查詢