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

啟用Trino語法進行數據湖分析

StarRocks 3.x版本在進行數據湖分析時,支持兼容Trino語法。本文介紹如何在StarRocks中利用Trino語法進行數據湖分析,特別是針對從Trino遷移至StarRocks的用戶,旨在實現無縫切換且無需更改原有SQL語句。

前提條件

  • 已創建數據湖分析版StarRocks實例,詳情請參見快速使用數據湖分析版實例

  • 已創建包含Hive服務的集群,詳情請參見創建集群

    重要

    請確保EMR集群和Serverless StarRocks實例使用相同的VPC。

啟用Trino語法及函數

  • 臨時生效方式:在您的客戶端命令行中執行 SET sql_dialect = 'trino';命令,即刻為本次會話切換至Trino的語法規則及函數集。此設置局限于當前會話,不影響其他用戶或后續會話。

  • 全局生效方式:若希望所有新建立的會話都默認使用Trino語法,您需要執行管理員權限命令SET GLOBAL sql_dialect = 'trino';

    重要

    此操作影響范圍更廣,請謹慎操作。

使用示例

StarRocks的日期函數dayofyear在Trino中對應函數為day_of_yeardoy。如果您更習慣使用Trino的函數寫法,就可以通過設置sql_dialect解決此問題。本文就以該日期函數為例,向您介紹如何在StarRocks中使用Trino語法及函數。

  1. 創建測試表。

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

    2. 連接Hive,詳情請參見Hive連接方式

    3. 執行以下命令,創建一個包含日期類型數據的表。

      create database test_db;
      create table test_db.test_trino(d date);
      insert into test_db.test_trino values ('2024-01-01');
  2. 連接StarRocks實例。

    1. 實例列表頁面,單擊操作列的連接實例

    2. 新建連接頁簽,配置以下信息。

      參數

      示例

      描述

      地域

      華東1(杭州)

      選擇已創建的StarRocks實例所在的物理位置。

      實例

      StarRocks_Serverlesss

      選擇已創建的StarRocks實例的名稱。

      連接名稱

      Connection_Serverlesss

      實例名稱,自定義輸入。

      長度限制為1~64字符,僅可使用中文、字母、數字、短劃線(-)和下劃線(_)。

      用戶名

      根據實際情況輸入

      默認初始用戶名為admin,您可以選擇使用該用戶名進行連接,或者根據需要創建其他用戶,創建用戶詳情請參見管理用戶及數據授權

      密碼

      根據實際情況輸入

      StarRocks實例中已創建的用戶名對應的密碼。

    3. 單擊測試連通性

    4. 驗證通過后,單擊確定

      進入SQL Editor頁面,即可執行相關的SQL。更多使用信息,請參見通過EMR StarRocks Manager連接StarRocks實例

  3. 創建External Hive Catalog。

    1. 在SQL Editor的查詢列表頁面,單擊image.png圖標。

    2. 輸入以下命令,單擊運行,創建Hive數據源。

      本文示例創建的是Hive數據源,您也可以創建Paimon、Iceberg、Hudi或Delta Lake等任意一種數據湖格式的External Catalog,詳情請參見數據湖分析

      CREATE EXTERNAL CATALOG hive_dlf
      PROPERTIES 
      (
          "type" = "hive",
          "hive.metastore.type" = "DLF"
      );
  4. 執行查詢。

    • 啟用Trino sql_dialect前

      use hive_dlf.test_db;
      select doy(d) from test_trino;

      返回信息報錯,提示(1064, 'Getting analyzing error from line 1, column 7 to line 1, column 12. Detail message: No matching function with signature: doy(date).')

    • 啟用Trino sql_dialect后

      use hive_dlf.test_db;
      
      -- 開啟Trino sql_dialect。
      set sql_dialect = 'trino';
      -- 重新執行查詢操作。
      select doy(d) from test_trino;

      返回信息如下所示。image