全部產品
Search
文件中心

Realtime Compute for Apache Flink:管理SLS Catalog

更新時間:Jul 13, 2024

SLS Catalog通過自動解析Logstore中的日誌來推導Schema。配置SLS Catalog後,您可以在Flink作業中直接存取SLS Logstore,無需在Flink SQL中聲明SLS表的Schema便可以擷取具體欄位資訊。本文為您介紹如何建立、查看、使用及刪除SLS Catalog。

背景信息

本文將從以下方面為您介紹如何管理SLS Catalog:

使用限制

  • 目前所有欄位均被解析為String類型,如果您有其它資料類型需求,需要使用Flink SQL自行轉換。

  • 僅Flink計算引擎VVR 6.0.7及以上版本支援配置SLS Catalog。

  • 不支援通過DDL語句修改已有的SLS Catalog。

  • 僅支援查詢資料表,不支援建立、修改和刪除資料庫和表。

  • SLS Catalog提供的表可以直接作為Flink SQL作業中的源表和結果表使用,不支援作為Lookup維表。

建立SLS Catalog

支援UI與SQL命令兩種方式配置SLS Catalog,推薦使用UI方式配置SLS Catalog。

UI方式

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台,單擊目標工作空間操作列下的控制台

    2. 單擊中繼資料管理

  2. 單擊建立Catalog,選擇SLS,單擊下一步

  3. 填寫參數配置資訊。

    重要

    Catalog建立完成後,以下配置資訊都不支援修改。如果需要修改,則您需要刪除掉已建立的Catalog,重新進行建立。

    image

    參數

    類型

    說明

    是否必填

    備忘

    catalog name

    String

    SLS Catalog名稱。

    請填寫為自訂的英文名。

    endpoint

    String

    EndPoint地址。

    詳情請參見服務入口

    project

    String

    SLS專案名稱。

    無。

    accessId

    String

    阿里雲帳號的AccessKey ID。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey ID取值,詳情請參見變數和密鑰管理

    accessKey

    String

    阿里雲帳號的AccessKey Secret。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey Secret取值,詳情請參見變數和密鑰管理

  4. 單擊確定

  5. 在左側中繼資料地區,查看建立的Catalog。

SQL命令

  1. 查詢指令碼文本編輯地區,輸入配置SLS Catalog的命令。

    CREATE CATALOG <catalogName> WITH(
      'type'='sls',
      'endpoint'='<brokers>',
      'project'='project',
      'accessId'='${secret_values.ak_id}',
      'accessKey'='${secret_values.ak_secret}'
    )

    參數

    類型

    說明

    是否必填

    備忘

    catalogName

    String

    SLS Catalog名稱。

    請填寫為自訂的英文名。

    type

    String

    Catalog類型。

    固定值為sls。

    endpoint

    String

    EndPoint地址。

    詳情請參見服務入口

    project

    String

    SLS專案名稱。

    無。

    accessId

    String

    阿里雲帳號的AccessKey ID。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey ID取值,詳情請參見變數和密鑰管理

    accessKey

    String

    阿里雲帳號的AccessKey Secret。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey Secret取值,詳情請參見變數和密鑰管理

  2. 選中建立Catalog的代碼後,單擊左側程式碼數上的運行。您也可以游標放在建立Catalog的代碼上,按右鍵運行

  3. 在左側中繼資料地區,查看建立的Catalog。

查看SLS Catalog

SLS Catalog配置成功後,您可以通過以下步驟查看SLS中繼資料。

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 單擊中繼資料管理

  2. Catalog列表頁面,查看Catalog名稱類型

    說明

    如果您需要查看Catalog下的logstore資訊,請單擊查看

查看SLS LogStore

  1. 查詢指令碼文本編輯地區,輸入以下命令。

    DESCRIBE `${catalog_name}`.`${project_name}`.`${logstore_name}`;

    參數

    說明

    ${catalog_name}

    SLS Catalog名稱。

    ${project_name}

    SLS專案名稱。

    ${logstore_name}

    SLS LogStore名稱。

  2. 選中查看Catalog的代碼後,單擊左側程式碼數上的運行

    運行成功後,可以在運行結果中查看錶的具體資訊。

    表資訊

使用SLS Catalog

  • 作為源表,從SLS Logstore中讀取資料。

    INSERT INTO ${other_sink_table}
    SELECT...
    FROM `${catalog_name}`.`${project_name}`.`${logstore_name}`/*+OPTIONS('startTime'='2023-06-01 00:00:00')*/;
    說明

    如果SLS Catalog的表使用時需要指定其他WITH參數,則建議使用SQL Hints的方式來添加其他參數。例如,如上SQL使用了SQL Hints指定'2023-06-01 00:00:00'開始消費。其他參數詳情請參見Log ServiceSLS

  • 作為結果表,將資料寫入SLS Logstore。

    INSERT INTO `${catalog_name}`.`${project_name}`.`${logstore_name}`
    SELECT ... 
    FROM ${other_source_table}
重要

在讀取源Logstore資料之前,需要先開啟索引。只有開啟了索引,才能夠讀取源Logstore中的資料。同樣地,在將資料寫入目標Logstore之前,也需要開啟索引。這是因為Catalog需要先讀取結果表中的部分資料,以確定寫入資料的Schema是否與目標SLS Logstore一致。如需瞭解如何開啟索引的詳細步驟,請參見建立索引

刪除SLS Catalog

支援UI與SQL命令兩種方式刪除SLS Catalog,推薦使用UI方式刪除SLS Catalog。

警告

刪除SLS Catalog不會影響已啟動並執行作業,但會導致使用該Catalog下表的作業,在上線或重啟時報無法找到該表的錯誤,請您謹慎操作。

UI方式

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台。

    3. 單擊中繼資料管理。

  2. Catalog列表頁面,單擊目標Catalog名稱對應操作列的刪除

  3. 在彈出的提示頁面中,單擊刪除

  4. 左側中繼資料地區下,查看目標Catalog是否已刪除。

SQL命令

  1. 查詢指令碼文本編輯地區,輸入以下命令。

    DROP CATALOG ${catalog_name};

    其中${catalog_name}為您要刪除的目標SLS Catalog名稱。

  2. 選中刪除Catalog的命令,滑鼠右鍵選擇運行

  3. 在左側中繼資料地區,查看目標Catalog是否已刪除。

從SLS Catalog擷取的表資訊詳解

為了方便使用SLS Catalog擷取的表,SLS Catalog會在推導的表上添加預設的配置參數和中繼資料。SLS Catalog擷取的表的詳細資料如下:

  • SLS表的Schema推導

    SLS Catalog在解析日誌擷取Topic的Schema時,Catalog會嘗試消費一條訊息,解析該條資料的Schema。SLS Catalog會從SLS日誌中解析出欄位名和類型,由於SLS日誌資料均以String類型儲存,所以欄位類型均為String。

  • 預設添加的表參數

    參數

    說明

    備忘

    connector

    Connector類型。

    固定值為sls。

    endpoint

    EndPoint地址。

    詳情請參見服務入口

    project

    SLS專案名稱。

    無。

    logstore

    SLS LogStore或metricstore名稱。

    無。

    accessId

    阿里雲帳號的AccessKey ID。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey ID取值,詳情請參見變數和密鑰管理

    accessKey

    阿里雲帳號的AccessKey Secret。

    詳情請參見如何查看AccessKey ID和AccessKey Secret資訊?

    重要

    為了避免您的AK資訊泄露,建議您通過密鑰管理的方式填寫AccessKey Secret取值,詳情請參見變數和密鑰管理