Hologres V4.0 以降では、オブジェクトテーブルを使用して、OSS データレイクに格納されている非構造化データとそのメタデータにアクセスできます。本トピックでは、オブジェクトテーブルを使用するための構文と例について説明します。
はじめに
人工知能の時代において、非構造化データは技術革新とインテリジェントな進化を推進する中心的な燃料となっています。従来のデータベースにおける構造化データとは異なり、テキスト、イメージ、オーディオ、ビデオ、ソーシャルメディアのコンテンツなどの非構造化データは、生の多様な形式で、より本物の行動パターンや複雑なセマンティクスを捉えます。非構造化データを処理・分析することで、企業はより強力な競争優位性を築き、データからより大きな価値を引き出すことができます。オブジェクトテーブルは、以下の機能を提供します:
-
テーブルインターフェイスを介して、OSS から非構造化データ (PDF、IMAGE、PPT など) を読み取ります。
-
動的テーブルの増分更新とEmbedding 関数を組み合わせて、非構造化データを処理します。このアプローチでは、外部のエンベディングアルゴリズムを呼び出すことなく、エンベディングを直接 Hologres に格納し、ファイルの変更を増分的に検出して冗長な計算を削減し、計算効率を向上させます。
-
AI 関数 (
ai_genなど) を使用して、非構造化データの推論と分類を実行します。また、ベクトル検索とフルテキストインデックスを組み合わせてデュアルパス取得を行い、非構造化データに対する包括的な分析および検索機能を有効にすることもできます。
Hologres のオブジェクトテーブルを AI 関数やその他の機能と組み合わせることで、データベースからデータを移動したり、外部サービスを呼び出したりすることなく、OSS に格納された非構造化データの処理、取得、分析ができます。これにより、データセキュリティを強化しつつ、ビジネス分析の範囲を拡大できます。
制限事項
-
この機能は Hologres V4.0 以降のバージョンでのみサポートされています。
説明ご利用のインスタンスのバージョンが V4.0 より前の場合は、「インスタンスのアップグレード」をご参照ください。
-
オブジェクトテーブルは、PDF、PPT、およびイメージファイルの読み取りのみをサポートしています。ビデオまたはオーディオファイルはサポートしていません。
構文
オブジェクトテーブルの作成
-
オブジェクトテーブルは非構造化データの読み取り専用に設計されています。オブジェクトテーブルは固定列を使用するため、作成時に列を定義する必要はありません。
-
オブジェクトテーブルを作成した後、データをロードするには一度リフレッシュする必要があります。
CREATE OBJECT TABLE [IF NOT EXISTS] [schema_name.]<table_name>
WITH (
-- Object Table-specific properties
path = '<oss_path>', -- Required
oss_endpoint = '<oss_endpoint>', -- Required
role_arn = '<role_arn>', -- Required
-- General parameters
[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 ディレクトリのパス。オブジェクトテーブルは、このディレクトリ内のすべてのファイルからメタデータを抽出します。例:
oss://bucket/dir。oss_endpoint
はい
OSS エンドポイント。クラシックネットワークのエンドポイントのみがサポートされています。リージョンごとのエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。例:
oss-ap-southeast-1-internal.aliyuncs.com。role_arn
はい
Alibaba Cloud RAM ロールの ARN。例:
acs:ram::role-id:role/role-name。この情報を取得するには、Resource Access Management (RAM) コンソールにログインし、 ページに移動し、対象のロール名をクリックします。 -
パラメーターの説明
以下のパラメーターはすべてオプションです。
パラメーター名
説明
デフォルト値
orientation
オブジェクトテーブルのストレージフォーマット。ローストア、列ストア、行列ハイブリッドストアをサポートしています。詳細については、「テーブルストレージフォーマット:列ストア、ローストア、行列ハイブリッドストア」をご参照ください。
column
table_group
オブジェクトテーブルのテーブルグループ。
デフォルトのテーブルグループ
distribution_key
object_uri
clustering_key
object_uri
storage_mode
ストレージモード。hot (ホットストレージ) と cold (コールドストレージ) をサポートしています。詳細については、「データ階層化ストレージ」をご参照ください。
hot
event_time_column
セグメントキー。詳細については、「イベント時間列 (セグメントキー)」をご参照ください。
last_modified_at
bitmap_columns
object_uri:auto,etag:auto
dictionary_encoding_columns
ディクショナリエンコーディング。詳細については、「ディクショナリエンコーディング」をご参照ください。
object_uri:auto,etag:auto
time_to_live_in_seconds
テーブルのデータライフサイクル。
3153600000
オブジェクトテーブルの表示
オブジェクトテーブルのクエリ
オブジェクトテーブルを作成した後、標準のテーブルと同様にクエリを実行できます。
SELECT * FROM <OBJECT_TABLE_NAME>;
オブジェクトテーブルは固定列を使用します。以下の表に、これらの列とその説明を示します:
|
列名 |
型 |
説明 |
|
object_uri |
TEXT |
特定の OSS ファイルパス。 |
|
etag |
TEXT |
ETag は各オブジェクトが生成されるときに作成され、一意です。特定のファイルコンテンツを識別します。 |
|
file |
FILE |
FILE は新しくサポートされた型で、JSON に似たフォーマットで詳細なメタデータを格納します。解析にはJSON 関数を使用します。コンテンツには以下が含まれます:
|
|
metadata |
JSON |
カスタムメタデータ。 |
オブジェクトテーブルのテーブルスキーマの表示
-
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>';
オブジェクトテーブルのリフレッシュ
オブジェクトテーブルを作成した後、データをロードするには一度リフレッシュする必要があります。現在、手動リフレッシュのみがサポートされています。次の構文を使用します:
REFRESH OBJECT TABLE [<schema_name>.]<table_name>;
オブジェクトテーブルの変更
テーブル名の変更またはスキーマの変更のみが可能です。次の構文を使用します:
-- テーブル名の変更
ALTER OBJECT TABLE [IF EXISTS] <table_name> RENAME TO <new_name>;
-- スキーマの変更
ALTER OBJECT TABLE [IF EXISTS] [<schema_name>.]<table_name> SET SCHEMA <new_schema>;
オブジェクトテーブルの削除
-- ゴミ箱が有効な場合、削除されたオブジェクトテーブルはゴミ箱に移動されます。
DROP OBJECT TABLE [IF EXISTS] <table_name> [FORCE];
データベースのゴミ箱が有効な場合、削除されたオブジェクトテーブルはゴミ箱に移動されます。復元コマンドを使用して回復できます。復元されたテーブルはオブジェクトテーブルのままです。詳細については、「テーブルのゴミ箱」をご参照ください。
ベストプラクティス
オブジェクトテーブルを動的テーブル、AI 関数、ベクトル検索、フルテキストインデックスと組み合わせて、非構造化データを自動的に処理、取得、分析します。詳細については、以下をご参照ください: