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

MySQL連接器

使用MySQL連接器能夠讓您在外部MySQL實例中查詢和創建表。該連接器可以用于不同系統(例如,MySQL和Hive),或者兩個不同MySQL實例間的數據進行JOIN操作。

背景信息

本文為您介紹MySQL連接器相關的內容和操作,具體如下:

前提條件

使用限制

  • EMR-3.38.0及后續版本的Hadoop集群或Trino集群,支持配置MySQL連接器。

  • 連接的MySQL需要是5.7、8.0版本或更高的版本。

  • Trino的Coordinator和所有Worker節點必須能夠訪問MySQL,默認端口為3306。

  • 暫不支持下列SQL命令:

    • DELETE

    • GRANT

    • REVOKE

    • SHOW GRANTS

    • SHOW ROLES

    • SHOW ROLE GRANTS

配置MySQL連接器

修改MySQL連接器配置,詳情請參見配置連接器

連接器默認配置

進入EMR控制臺的Trino服務的配置頁面,在服務配置區域,單擊mysql.properties頁簽,修改以下參數,參數值請根據您實際情況修改。

參數

描述

connection-url

數據連接字符串,詳情請?參見查看和管理實例連接地址和端口

例如,jdbc:mysql://rm-2ze5ipacsu8265q****.mysql.rds.aliyuncs.com:3306

connection-user

數據庫的用戶名。該用戶具有訪問上述RDS MySQL庫中表的權限。

connection-password

connection-user對應的密碼。

配置多個MySQL服務

如果您有多個MySQL服務,可以在etc/catalog下創建對應數量且不重名的配置文件,確保文件后綴為.properties格式即可。例如,創建的配置文件名稱為sales.properties,Trino會使用該文件配置的連接器創建一個名為sales的Catalog。

配置示例

在EMR集群中,如果需要配置多個MySQL服務,可以使用connector[x].properties添加自定義配置項來配置MySQL服務,其中N 為1、2、3……。詳細信息請參見以下步驟:

  1. 在EMR控制臺的Trino服務的配置頁面,在服務配置區域的mysql.properties頁簽中,修改配置connection-userconnection-passwordconnection-url

    您可以單擊上方的新增配置項,添加您需要的配置項,詳情請參見添加配置項

  2. 保存配置。

    1. 服務配置,單擊保存

    2. 在彈出的對話框中,輸入執行原因,單擊保存

  3. 重啟服務。

    1. 在右上角選擇更多操作 > 重啟

    2. 在彈出的對話框中,輸入執行原因,單擊確定

    3. 確認對話框中,單擊確定

類型映射

DECIMAL類型處理

精度超過38位的DECIMAL類型可以通過設定配置項decimal_mapping或將decimal_mapping的Session屬性設為allow_overflow來映射到Trino的DECIMAL。 結果類型的范圍由配置項decimal-default-scaledecimal-rounding-mode控制,其精度恒定為38。

默認情況下,需舍入或截斷才能匹配的值在運行時會執行失敗。這一行為由配置項decimal-rounding-modedecimal-rounding-mode的Session屬性控制,其值可設為UNNECESSARY(默認值)、UP、DOWN、CEILING、FLOOR、HALF_UP、HALF_DOWN或HALF_EVEN。

通用配置屬性

通過配置下列屬性,可以將來自數據源的數據類型映射到Trino的數據類型,以及可以在Trino中緩存元數據。

屬性

描述

unsupported-type-handling

配置如何處理不支持的數據列類型。取值如下:

  • IGNORE(默認值):列不可訪問。

  • CONVERT_TO_VARCHAR:列被轉換為無界的VARCHAR。

jdbc-types-mapped-to-varchar

允許以逗號(,)分隔的列表的數據類型映射強制轉換為無界VARCHAR。

case-insensitive-name-matching

數據庫和集合名稱是否區分大小寫。取值如下:

  • true:不區分大小寫。

  • false(默認值):區分大小寫。

case-insensitive-name-matching.cache-ttl

不區分大小寫的數據庫和集合名稱的緩存時間。

默認值為1,單位分鐘。

metadata.cache-ttl

緩存包括表和列統計信息在內的元數據的持續時間。

默認值0表示禁止緩存。

metadata.cache-missing

是否緩存包括表和列統計信息在內的元數據的狀態。取值如下:

  • true:緩存。

  • false(默認值):不緩存。

示例:查詢MySQL

  1. 查看RDS的數據庫。

    1. 通過SSH方式連接集群,詳情請參見登錄集群

    2. 執行如下命令,連接Trino客戶端。

      • DataLake集群

        trino --server master-1-1:9090 --catalog iceberg --schema default
      • Hadoop集群或單獨的Trino集群

        trino --server emr-header-1:9090 --catalog iceberg --schema default
    3. 執行如下命令,查看Schema。

      SHOW schemas FROM mysql;
      說明

      mysql為properties配置文件的名稱。

    4. 執行如下命令,查看數據庫。

      SHOW tables FROM mysql.web;
      說明

      本文示例中的web是您在MySQL上創建的數據庫。

  2. 查詢表數據。

    • 查詢mysql.web.clicks表的數據。

      SELECT * FROM mysql.web.clicks
    • 查詢mysql.web.clicks表的列信息。

      SHOW columns FROM mysql.web.clicks;

      或者使用以下命令查詢表的列信息。

      DESCRIBE mysql.web.clicks;

下推(Pushdown)

Pushdown詳細信息,請參見Trino官網文檔Pushdown

MySQL連接器支持下推的算子和函數情況如下:

  • 算子

    • Join

    • Limit

    • Top-N

  • 函數

    • avg()

    • count()

    • max()

    • min()

    • sum()

    • stddev()

    • stddev_pop()

    • stddev_samp()

    • variance()

    • var_pop()

    • var_samp()