メインコンテンツまでスキップ
バージョン: 2.1

Atomic Tableの置き換え

Dorisは2つのTable間でのアトミック置換操作をサポートしており、OLAPTableにのみ適用されます。

適用シナリオ

ユーザーがTableデータを書き換える必要がある場合がありますが、削除してからデータをインポートすると利用不可の期間が発生します。このような場合、ユーザーはCREATE TABLE LIKE文を使用して同じ構造の新しいTableを作成し、新しいデータを新しいTableにインポートしてから、古いTableのアトミック置換を実行できます。パーティションレベルのアトミック上書き操作については、temporary partition documentationを参照してください。

構文

ALTER TABLE [db.]tbl1 REPLACE WITH TABLE tbl2
[PROPERTIES('swap' = 'true')];

Tabletbl1をTabletbl2に置き換えます。

swapパラメータがtrueの場合、置き換え後、tbl1のデータは元のtbl2のデータとなり、tbl2のデータは元のtbl1のデータとなります。つまり、2つのTableのデータが交換されます。

swapパラメータがfalseの場合、置き換え後、tbl1のデータは元のtbl2のデータとなり、tbl2は削除されます。

原理

Table置き換え機能は、以下の一連の操作をアトミック操作に変換します。

TableAをTableBに置き換え、swaptrueの場合、操作は以下の通りです:

  1. TableBをTableAにリネームする
  2. TableAをTableBにリネームする

swapfalseの場合、操作は以下の通りです:

  1. TableAを削除する
  2. TableBをTableAにリネームする

注意事項

  • swapパラメータがfalseの場合、置き換えられるTable(TableA)は削除され、復元できません。
  • 置き換え操作は2つのOLAPTable間でのみ実行可能で、Table構造の一貫性はチェックされません。
  • 置き換え操作は元の権限設定を変更しません。権限チェックはTable名に基づいて行われるためです。