Hologres自V4.0版本開始,支援通過Object Table訪問資料湖OSS中的非結構化資料及其元資訊,本文為您介紹Object Table的使用文法以及樣本。
介紹
在人工智慧時代,非結構化資料已成為驅動技術革新與智能進化的核心燃料。相較於傳統資料庫中的結構化資訊,非結構化資料,如文本、映像、語音、視頻、社交媒體內容等以原始、多元的形態承載更加真實的行為軌跡和複雜語義。通過對非結構化資料的處理、分析,可以協助企業構建更強的競爭優勢,讓資料發揮更大的價值。Object Table具備的能力如下:
支援通過表的形式讀取OSS中非結構化資料(PDF、IMAGE、PPT等)。
可以結合Dynamic Table增量重新整理+Embedding Function對非結構化資料加工,既能對非結構化資料Embedding儲存進Hologres,無需調用外部Embedding演算法,也能增量識別檔案變化,從而減少重複計算,提升計算效率。
可以結合AI Function(如
ai_gen等)對非結構化資料推理、分類等,也可以結合向量檢索、全文檢索索引對非結構化資料雙路召回,實現非結構化資料的分析和搜尋能力。
通過Hologres Object Table結合AI Function等能力,資料不用出庫,無需調用外部服務,就可以實現OSS上非結構化資料的全鏈路加工、檢索、分析,在提升資料安全性的同時也能拓寬業務的資料分析範圍。
使用限制
僅Hologres V4.0及以上版本支援該功能。
說明如果您的執行個體是V4.0以下版本請參見執行個體升級。
Object Table僅支援讀取PDF、PPT以及圖片等資料,不支援讀取視頻和音頻。
文法
建立Object Table
Object Table一種專為讀取非結構化資料而設計的表,因此在建表時無需指定列,Object Table有固定的列。
建立完Object Table後,必須執行一次重新整理Object Table才會有資料。
CREATE OBJECT TABLE [IF NOT EXISTS] [schema_name.]<table_name>
WITH (
-- object table特有屬性
path = '<oss_path>', --必填
oss_endpoint = '<oss_endpoint>', --必填
role_arn = '<role_arn>', --必填
-- 通用參數
[orientation = '[column | row | row,column]',]
[table_group = '[tableGroupName]',]
[distribution_key = 'columnName[,...]]',]
[clustering_key = '[columnName{:asc}] [,...]]',]
[storage_mode = '[hot | cold]',]
[event_time_column = '[columnName [,...]]',]
[bitmap_columns = '[columnName [,...]]',]
[dictionary_encoding_columns = '[columnName [,...]]',]
[time_to_live_in_seconds = '<non_negative_literal>']
);基本參數說明
參數名
是否必填
描述
path
是
檔案所在的OSS路徑目錄,Object Table會對該目錄的檔案進行中繼資料抽取。例如:
oss://bucket/dir。oss_endpoint
是
OSS的Endpoint,僅支援傳統網路,每個Region的網域名稱詳情見地區和Endpoint。例如:
oss-ap-southeast-1-internal.aliyuncs.com。role_arn
是
阿里雲RAM角色的ARN,例如
acs:ram::role-id:role/role-name。您可登入RAM控制台,在頁面,單擊目標角色名稱,擷取對應角色的RAM資訊。通過參數說明
以下參數均為非必填。
參數名
描述
預設值
orientation
Object Table儲存格式,支援行存、列存、行列共存。詳情請參見表格儲存體格式:列存、行存、行列共存。
column
table_group
Object Table所在的Table Group。
default Table Group
distribution_key
object_uri
clustering_key
object_uri
storage_mode
儲存模式,支援hot(熱儲存)和cold(冷儲存)。詳情請參見資料階層式存放區。
hot
event_time_column
分段鍵。詳情請參見Event Time Column(Segment Key)。
last_modified_at
bitmap_columns
object_uri:auto,etag:auto
dictionary_encoding_columns
位元編碼。詳情請參見字典編碼Dictionary Encoding。
object_uri:auto,etag:auto
time_to_live_in_seconds
表資料生命週期。
3153600000
查看Object Table
查詢Object Table
Object Table建立成功後,可以像查詢普通表一樣對該表進行查詢。
SELECT * FROM <OBJECT_TABLE_NAME>;Object Table的欄位固定,詳細的欄位和說明如下:
列名 | 類型 | 描述 |
object_uri | TEXT | 映射的具體的OSS檔案路徑。 |
etag | TEXT | ETag在每個Object產生時建立,具備唯一性,用於識別一個具體的檔案內容。 |
file | FILE | FILE為新支援的類型,其格式類似於json,用於儲存詳細的中繼資料資訊,可以使用JSON函數解析。其內容包括:
|
metadata | JSON | 自訂metadata。 |
查看object table的表結構
通過
hg_dump_script查看SELECT hg_dump_script('[<schema_name>.]<object_table_name>');通過
hologres.hg_table_properties系統資料表查看SELECT * FROM hologres.hg_table_properties WHERE table_name = '<object_table_name>';
重新整理Object Table
Object Table建立後,必須執行一次重新整理才會有資料。當前僅支援手動重新整理Object Table。文法如下:
REFRESH OBJECT TABLE [<schema_name>.]<table_name>;修改Object Table
僅支援修改Object Table的表名和schema,文法如下:
--重新命名表名
ALTER OBJECT TABLE [IF EXISTS] <table_name> RENAME TO <new_name>;
--修改schema
ALTER OBJECT TABLE [IF EXISTS] [<schema_name>.]<table_name> SET SCHEMA <new_schema>;刪除Object Table
--開啟表資源回收筒後,刪除的object table會自動進入資源回收筒。
DROP OBJECT TABLE [IF EXISTS] <table_name> [FORCE];如果資料庫開啟了資源回收筒,刪除Object Table會進入資源回收筒,可以使用回收命令將Object Table恢複,恢複出來仍然是Object Table,詳細使用見表資源回收筒。
最佳實務
Object Table可以結合Dynamic Table、AI Function、向量檢索以及全文檢索索引等能力,實現非結構化資料的自動加工、檢索和分析。詳情請參見: