Hologres V3.2 以降のバージョンでは、DLF カタログを用いて Paimon データにアクセスできます。この機能により、統一されたインターフェイスが提供され、メタデータ管理の効率が向上します。
背景情報
Alibaba Cloud Data Lake Formation (DLF) は、メタデータ、データストレージ、およびデータ管理を統合的にサポートするフルマネージドなプラットフォームです。メタデータ管理、権限管理、ストレージ最適化などの機能を提供し、メタデータ、レイクテーブルフォーマット、データストレージを統一することで、データレイク構築および運用時の O&M 作業を大幅に簡素化します。これにより、企業はビジネスイノベーションやデータインサイトに集中できるようになります。詳細については、「Data Lake Formation とは」をご参照ください。
機能の詳細
-
Hologres V3.2 以降のバージョンでサポートされる機能は以下のとおりです:
-
外部データベースを使用して DLF カタログに接続します。詳細については、「EXTERNAL DATABASE」をご参照ください。
-
Create/Drop External Schema を使用して、DLF カタログ内のデータベースを作成または削除します。
-
Create/Drop External Table を使用して、DLF カタログ内のテーブルを作成または削除します。
-
DLF カタログ内のすべてのデータベースおよびテーブルを表示します。
-
-
Dynamic Table を使用して、Paimon テーブルのデータを完全モードおよび増分モードで読み取ります。詳細については、「CREATE DYNAMIC TABLE」をご参照ください。
-
ANALYZE および AUTO ANALYZE を使用して、外部テーブルの統計情報を収集します。これにより、オプティマイザーが最適なクエリ実行計画を生成し、クエリパフォーマンスが向上します。詳細については、「ANALYZE および AUTO ANALYZE」をご参照ください。
-
外部テーブルのデータミラーリング。
-
タイムトラベル:タイムスタンプ、バージョン、またはタグに基づいて、Paimon テーブルの履歴スナップショットをクエリします。
-
ブランチクエリ:ブランチに基づいて、Paimon ブランチのデータおよび履歴スナップショットをクエリします。
-
Snapshots や Tags などの Paimon システムテーブルをクエリします。
-
-
Hologres V4.0 以降のバージョンでは、さまざまな DML 操作がサポートされます:
-
複数の同時操作で Paimon プライマリキー テーブルへ書き込みを行います。この機能では
INSERT INTOおよびINSERT OVERWRITEの両方がサポートされます。書き込みプロセスでは、書き込み前にバケット単位でデータをシャッフルするため、小規模ファイルの生成が抑制されます。 -
Paimon テーブルへの書き込み時にキャッシュが必要な場合に備えて、メモリベースのキャッシュ機構を提供します。例として、
Merge EngineがFirst Rowであるテーブル、lookup機構を用いてChangelogを生成するテーブル、またはDeletion Vectorが有効化されているテーブルなどがあります。 -
Paimon テーブルに対する
UPDATEおよびDELETE操作をサポートします。 -
Hologres V3.2.6 および V4.0.6 以降のバージョンでは、期限切れとなった Paimon スナップショットに対応するタグからデータを読み取ることが可能です。
-
前提条件
-
DLF サービス V2.5 以降を有効化し、DLF カタログを作成済みである必要があります。詳細については、「DLF の承認および有効化」および「データカタログ」をご参照ください。
説明詳細については、「サービスエンドポイント」をご参照ください。
-
Hologres インスタンスを購入済みであり、データレイクアクセラレーションサービスが有効化されている必要があります。詳細については、「Hologres インスタンス」および「DLF を使用した OSS アクセス向けデータレイクアクセラレーション」をご参照ください。
制限事項
-
同一リージョン内の DLF サービスのみにアクセスできます。
-
HoloWeb の OSS データレイクアクセラレーション機能では、DLF カタログを視覚的に作成できません。
-
TimeTravel クエリ、ブランチクエリ、およびデータミラーリングは、外部データベースを用いてマッピングされた Paimon 外部テーブルのみがサポートします。
-
スキーマ進化が行われたテーブルに対する TimeTravel クエリはサポートされていません。
-
Dynamic Table では、Paimon テーブルおよびブランチに対する TimeTravel クエリはサポートされていません。
-
外部テーブルのミラーリングは、Paimon プライマリキー テーブルをサポートしていません。
-
Paimon からのデフォルトパーティションデータ(空または NULL 値のパーティションなど)の読み取りはサポートされていません。
-
読み取り専用レプリカインスタンスでは、データレイクアクセラレーションはサポートされていません。
-
外部テーブルに対して
TRUNCATEコマンドを実行することはできません。代わりに、INSERT OVERWRITEを使用して空のデータを挿入してください。 -
Paimon のダイナミックバケットテーブルへの書き込みはサポートされていません。これは、
bucketパラメーターを指定せずに作成された Paimon テーブル、またはbucket = -1で作成されたテーブルを指します。 -
UPDATE操作は、Merge Engine がdeduplicateまたはpartial-updateに設定された Paimon プライマリキー テーブルでのみサポートされます。プライマリキーの更新はサポートされていません。 -
DELETE操作は、Merge Engine がdeduplicateまたはpartial-updateに設定された Paimon プライマリキー テーブルでのみサポートされます(partial-update.remove-record-on-deleteプロパティを有効化する必要があります)。 -
外部テーブルでは、混合 DML トランザクションはサポートされていません。単一の DML 操作のみが二相コミットプロトコルを実装し、分散書き込み時の原子性を保証します。
外部データベースを用いた DLF カタログのマッピング
外部データベースの作成(SLR モード)
サービスリンクロール(SLR)は、信頼できるエンティティが Alibaba Cloud サービスである RAM ロールの一種です。SLR は、異なる Alibaba Cloud サービス間での承認済みアクセスを管理するために設計されています。通常、特定の機能を利用する際に、関連する Alibaba Cloud サービスが自動的に SLR を作成または削除します。手動での作成または削除は不要です。SLR を使用すると、サービスが他のサービスにアクセスするための承認処理が簡素化され、誤操作リスクも低減されます。詳細については、「サービスリンクロール」をご参照ください。
適用シナリオ
SLR モードは、現在のユーザー ID を使用して外部データベースのデータにアクセスするシナリオに適用されます。Hologres では、デフォルトで SLR および ID パススルーを用いて、マルチクラウドプロダクト間のアクセスを実現します。
操作手順
-
新規購入または Hologres V2.2 以降へアップグレードされたインスタンスの場合、システムが自動的にサービスリンクロールを作成します。手動での作成は不要であり、このステップはスキップできます。
説明Hologres V2.2 より前のバージョンを実行しているインスタンスの場合、Resource Access Management クイック承認 ページを使用してサービスリンクロールを作成する必要があります。
-
Hologres インスタンスに接続し、外部データベースを作成します。
CREATE EXTERNAL DATABASE EXT_DATABASE_NAME WITH catalog_type 'paimon', metastore_type 'dlf-rest', dlf_catalog 'DLF_CATALOG_NAME', comment 'dlf catalog'; -
外部データベース内のスキーマおよびテーブルを表示します。
-- 外部データベース内のスキーマをクエリ SELECT * FROM hologres.hg_external_schemas('<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME'</span>); -- スキーマ内のテーブルをクエリ SELECT * FROM hologres.hg_external_tables ('<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME'</span>, '<span class="var-span" contenteditable="true" data-var="EXT_SCHEMA_NAME">EXT_SCHEMA_NAME'</span>); -
テーブルデータをクエリします。
SELECT * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
外部データベースの作成(STS モード)
Alibaba Cloud Security Token Service (STS) は、一時的な認証情報を管理するサービスです。Resource Access Management (RAM) には、RAM ユーザーおよび RAM ロールという 2 種類の ID が存在します。RAM ロールには永続的な認証情報はなく、STS から有効期間およびアクセス権限をカスタマイズ可能な一時的な認証情報を取得します。これらの認証情報は、Security Token Service (STS) トークンと呼ばれます。詳細については、「STS とは」をご参照ください。
適用シナリオ
STS モードは、クロスアカウントアクセス、および Hologres カスタムアカウント(BASIC アカウント)が外部データベースのデータにアクセスするシナリオに適用されます。
操作手順
-
Resource Access Management (RAM) コンソールにログインし、RAM ロールを作成して、DLF アクセス用に AliyunDLFFullAccess または AliyunDLFReadOnlyAccess 権限を付与します。詳細については、「RAM ロールの作成および権限の付与」をご参照ください。
-
信頼ポリシーを更新し、RAM ロールが信頼される Alibaba Cloud サービス Hologres によって引き受けられるようにします。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "hologres.aliyuncs.com" ] } } ], "Version": "1" } -
Data Lake Formation コンソールにログインし、対象カタログ内の RAM ロールに対してデータベースおよびテーブルのアクセス権限を付与します。
-
Hologres で外部データベースを作成します。先に作成した RAM ロールを認証ポリシーとして指定します。
CREATE EXTERNAL DATABASE EXT_DATABASE_NAME WITH catalog_type 'paimon' metastore_type 'dlf-rest' dlf_catalog 'paimon_catalog' rolearn 'acs:ram::106380604****:role/***-ramrole' comment 'dlf catalog' ; -
Hologres で USER MAPPING を作成し、DLF カタログにアクセスする RAM ユーザーまたは BASIC アカウントを RAM ロールに関連付けます。
CREATE USER MAPPING FOR "<RAM user | BASIC account>" EXTERNAL DATABASE EXT_DATABASE_NAME OPTIONS ( rolearn 'acs:ram::10638060***:role/***ramrole' );説明-
USER MAPPING の詳細については、「CREATE USER MAPPING」をご参照ください。
-
RAM ユーザーの作成方法については、「RAM ユーザーの作成」をご参照ください。
-
BASIC アカウントの作成方法については、「ユーザー管理」をご参照ください。
-
-
RAM ユーザーで Hologres コンソールにログインするか、BASIC アカウントで Hologres インスタンスへの再接続を行うと、以下の SQL クエリを実行できます。
SELECT * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
-
外部データベースに関する操作の詳細については、「EXTERNAL DATABASE」をご参照ください。
-
外部スキーマに関する操作の詳細については、「EXTERNAL SCHEMA」をご参照ください。
-
外部テーブルに関する操作の詳細については、「EXTERNAL TABLE」をご参照ください。
外部テーブルの統計情報の収集
ANALYZE および AUTO ANALYZE コマンドを使用して、データベース内のテーブルコンテンツに関する統計情報を収集できます。オプティマイザーはこれらの統計情報を用いて最適なクエリ実行計画を生成し、クエリパフォーマンスを向上させます。詳細については、「ANALYZE および AUTO ANALYZE」をご参照ください。
-- テーブルの統計情報を更新します。デフォルトでは、このコマンドはテーブル内のすべての列について統計情報を収集します。
analyze EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
-- 特定の列の統計情報を更新します。このコマンドは全テーブル更新よりも多くのデータをサンプリングし、より正確な結果を提供します。主にフィルター条件に出現する列に対して使用します。
analyze EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME(COLNAME, COLNAME);
-- Auto Analyze を有効化します
ALTER EXTERNAL DATABASE EXT_DATABASE_NAME WITH enable_auto_analyze 'true';
タイムトラベルクエリ
V3.2 以降のバージョンでは、Hologres がタイムスタンプ、バージョン、またはタグに基づく Paimon テーブルの履歴スナップショットクエリをサポートしており、データのタイムトラベルを可能にします。また、Paimon の Snapshots および Tags システムテーブルをクエリすることで、対象テーブルのスナップショット詳細を取得することも可能です。システムテーブルの詳細については、「Paimon システムテーブル」をご参照ください。
Paimon Snapshots システムテーブルのクエリ
SELECT * FROM hologres.hg_list_snapshots('EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME');
Snapshots システムテーブルのフィールドは、Paimon システムテーブルのフィールドと以下のように対応します:
|
Snapshots システムテーブルのフィールド |
型 |
説明 |
対応する Paimon システムテーブルのフィールド |
|
branch_name |
TEXT |
ブランチ名。 |
branch_name |
|
snapshot_id |
TEXT |
スナップショット ID。 |
snapshot_id |
|
schema_id |
TEXT |
テーブルスキーマ ID。 |
schema_id |
|
commit_kind |
TEXT |
テーブルデータのコミットタイプ。 |
commit_kind |
|
commit_time |
TIMESTAMPTZ |
コミット時間。 |
commit_time |
|
extend_info |
TEXT(JSON) |
Paimon Snapshots システムテーブルの残りのプロパティ。 |
Paimon Snapshots システムテーブルの残りのプロパティ |
Paimon Snapshots システムテーブルは、hologres.hg_list_versions 関数を用いてもクエリできます。Paimon テーブルのクエリにおいて、Version は Snapshot ID に対応します。
SELECT * FROM hologres.hg_list_versions('EXT_DATABASE_NAME.<span class="var-span" contenteditable="true" data-var="EXT_SCHEMA_NAME">EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span>);
Paimon Tag システムテーブルのクエリ
SELECT * FROM hologres.hg_list_tags('EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME');
Tag システムテーブルのフィールドは、Paimon システムテーブルのフィールドと以下のように対応します:
|
Tag システムテーブルのフィールド |
型 |
説明 |
対応する Paimon システムテーブルのフィールド |
|
branch_name |
TEXT |
ブランチ名。 |
branch_name |
|
tag_name |
TEXT |
タグ名。 |
tag_name |
|
snapshot_id |
TEXT |
スナップショット ID。 |
snapshot_id |
|
schema_id |
TEXT |
テーブルスキーマ ID。 |
schema_id |
|
commit_time |
TIMESTAMPTZ |
送信時間 |
commit_time |
|
extend_info |
TEXT(JSON) |
Paimon Tag システムテーブルの残りのプロパティ。 |
Paimon Tag システムテーブルの残りのプロパティ |
タイムスタンプに基づく Paimon 履歴スナップショットのクエリ
SELECT * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME FOR TIMESTAMP AS OF 'TIMESTAMP';
バージョンに基づく Paimon 履歴スナップショットのクエリ
Paimon テーブルでは、Version は Snapshot ID に対応します。
SELECT * FROM '<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span> FOR VERSION AS OF '<span class="var-span" contenteditable="true" data-var="VERSION">VERSION'</span>;
タグに基づく Paimon 履歴スナップショットのクエリ
SELECT * FROM '<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span> FOR TAG AS OF '<span class="var-span" contenteditable="true" data-var="TAG">TAG'</span>;
ブランチクエリ
V3.2 以降のバージョンでは、Hologres が Paimon テーブルの指定ブランチからデータをクエリすることをサポートしており、ブランチフォールバック機能もサポートしています。Paimon ブランチの詳細については、「ブランチの管理」をご参照ください。
クエリ ブランチ システムテーブル
SELECT * FROM hologres.hg_list_branches('EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME');
ブランチシステムテーブルのフィールドは、Paimon システムテーブルのフィールドと以下のように対応します:
|
フィールド |
型 |
説明 |
対応する Paimon システムテーブルのフィールド |
|
branch_name |
TEXT |
ブランチ名。 |
branch_name |
|
create_time |
TIMESTAMPTZ |
ブランチ作成時間。 |
create_time |
|
extend_info |
TEXT(JSON) |
Paimon ブランチシステムテーブルの残りのプロパティ。 |
Paimon ブランチシステムテーブルの残りのプロパティ |
指定ブランチのデータのクエリ
SELECT * FROM '<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span> FOR branch AS OF '<span class="var-span" contenteditable="true" data-var="TAG">TAG'</span>;
Paimon テーブルで scan.fallback-branch プロパティが設定されている場合、クエリジョブが現在のブランチからデータを読み取り、あるパーティションが欠落していると検出された際、リーダーはそのパーティションのデータをフォールバックブランチから読み取ろうと試みます。フォールバックブランチの詳細については、「ブランチの管理」をご参照ください。
指定ブランチの履歴スナップショットのクエリ
-- タイムスタンプに基づくクエリ
SELECT * FROM '<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span> FOR branch AS OF '<span class="var-span" contenteditable="true" data-var="BRANCH_NAME">BRANCH_NAME'</span> TIMESTAMP AS OF '<span class="var-span" contenteditable="true" data-var="TIMESTAMP">TIMESTAMP'</span>;
-- タグに基づくクエリ
SELECT * FROM '<span class="var-span" contenteditable="true" data-var="EXT_DATABASE_NAME">EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME'</span> FOR branch AS OF '<span class="var-span" contenteditable="true" data-var="BRANCH_NAME">BRANCH_NAME'</span> TAG AS '<span class="var-span" contenteditable="true" data-var="TAG_NAME">TAG_NAME'</span>;
レイクテーブルイメージによるアクセラレーション
V3.2 以降のバージョンでは、Hologres がレイクテーブルイメージ機能をサポートしており、データレイククエリを高速化します。この機能はメタデータおよびデータイメージをサポートし、外部データソースからの変更をニアリアルタイムまたは指定間隔で Hologres に同期します。また、全テーブルイメージおよびパーティションテーブルの部分イメージもサポートします。パラメーターを用いて、イメージデータの範囲を柔軟に制御できます。詳細については、「レイクテーブルイメージ」をご参照ください。
外部テーブルを用いた Paimon テーブルの利用
-
外部サーバーを作成します。
外部サーバーに関する操作の詳細については、「その他の外部サーバー操作(SQL メソッド)」をご参照ください。
DLF 構文
説明この構文は、DLF サービス V2.5 以降に適用されます。
SQL 構文は以下のとおりです:
-- 外部サーバーの作成 CREATE SERVER IF NOT EXISTS SERVER_NAME FOREIGN DATA WRAPPER dlf_fdw OPTIONS ( catalog_type 'paimon', metastore_type 'dlf-rest', dlf_catalog '<span class="var-span" contenteditable="true" data-var="DLF_CATALOG_NAME">DLF_CATALOG_NAME'</span> );DLF 1.0 構文
説明この構文は、DLF サービス V1.0 に適用されます。
SQL 構文は以下のとおりです:
-- 外部サーバーの作成 CREATE SERVER IF NOT EXISTS SERVER_NAME FOREIGN DATA WRAPPER dlf_fdw OPTIONS ( dlf_region '', dlf_endpoint 'dlf-share..aliyuncs.com', oss_endpoint 'oss-REGION_ID-internal.aliyuncs.com', dlf_catalog 'dlf_catalog_name' ); -
外部テーブルを作成します。
-
IMPORT FOREIGN SCHEMA メソッドを使用する
IMPORT FOREIGN SCHEMA の使用方法については、「IMPORT FOREIGN SCHEMA」をご参照ください。
-
IMPORT FOREIGN SCHEMA を使用して外部テーブルを作成する
-- IMPORT FOREIGN SCHEMA を使用して外部テーブルを作成 IMPORT FOREIGN SCHEMA DLF_DB_NAME FROM SERVER SERVER_NAME INTO <holo+schema_name> options (if_table_exist 'update'); -
テーブル名を指定して外部テーブルを作成する
IMPORT FOREIGN SCHEMA DLF_DB_NAME limit to (table_name[,....]) FROM SERVER SERVER_NAME into <holo+schema_name> options (if_table_exist 'update');
-
-
CREATE FOREIGN TABLE メソッドを使用する
詳細については、「CREATE FOREIGN TABLE」をご参照ください。
CREATE FOREIGN TABLE FOREIGN_TABLE_NAME ( { column_name data_type } [, ... ] ) SERVER SERVER_NAME options ( schema_name 'DLF_DB_NAME', table_name 'DLF_TABLE_NAME' );
-
Dynamic Table を用いた Paimon テーブルの利用
Dynamic Table は、1 つ以上のベーステーブルから集約されたデータを自動的に処理・格納し、組み込みのデータリフレッシュ戦略を備えています。ビジネス要件に応じて異なるデータリフレッシュ戦略を設定することで、ベーステーブルから Dynamic Table への自動データフローを実現し、統合開発、自動データフロー、リアルタイム処理などの要件を満たすことができます。Hologres V3.0 以降では、MaxCompute 外部テーブルおよび DLF 外部テーブルが Dynamic Table のベーステーブルとしてサポートされます。詳細については、「Dynamic Table」をご参照ください。
フルリフレッシュ
CREATE DYNAMIC TABLE paimon_dt_table
WITH (
auto_refresh_mode='full',
freshness='3 minutes'
)AS SELECT * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
増分リフレッシュ
CREATE DYNAMIC TABLE paimon_dt_table_increamental
WITH (
auto_refresh_mode='incremental',
freshness='3 minutes'
)AS SELECT * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
自動リフレッシュ
CREATE DYNAMIC TABLE paimon_dt_table_auto
WITH (
auto_refresh_mode='auto',
freshness='3 minutes'
)AS * FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME;
DML 操作
INSERT INTO
-- Paimon プライマリキー テーブルを作成し、Hologres SQL を用いてデータを挿入
CREATE EXTERNAL TABLE EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME (
id BIGINT,
customer_id BIGINT,
item TEXT,
amount FLOAT,
dt TEXT,
PRIMARY KEY (id)
)
WITH (
"table_format" = 'paimon',
"file_format" = 'orc',
"merge-engine" = 'deduplicate', -- これは一例のマージポリシーです。必要に応じて変更できます。
"bucket" = '4' -- これは一例のバケット数です。
);
INSERT INTO EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME (id, customer_id, item, amount, dt) VALUES
(1, 1001, 'apple', 3.50, '2025-09-10'),
(2, 1002, 'banana', 2.00, '2025-09-10'),
(3, 1003, 'orange', 4.20, '2025-09-11');
INSERT OVERWRITE
-- Paimon 追加専用テーブルを作成し、Hologres SQL を用いてデータを挿入
CREATE EXTERNAL TABLE EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME (
id BIGINT,
name TEXT,
amount FLOAT8,
dt TEXT
)
LOGICAL PARTITION BY LIST(dt)
WITH (
"table_format" = 'paimon',
"file_format" = 'parquet',
"merge-engine" = 'deduplicate',
"bucket-key" = 'id',
"bucket" = '2'
);
INSERT OVERWRITE EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME(id, name, amount, dt) VALUES
(1, 'Alice', 100.50, '2025-09-01'),
(2, 'Bob', 200.00, '2025-09-01'),
(3, 'Carol', 150.75, '2025-09-02');
UPDATE
UPDATE EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME SET amount= 5 where id= 1;
DELETE
DELETE FROM EXT_DATABASE_NAME.EXT_SCHEMA_NAME.EXT_TABLE_NAME WHERE id = 2;