適用対象:
Databricks SQL
次のいずれかのアクションを実行できます。
- 既存のストリーミング テーブルを更新するためのスケジュールまたはトリガーを追加します。
- ストリーミング テーブルの既存の更新スケジュールまたはトリガーを変更します。
- ストリーミング テーブルの更新スケジュールまたはトリガーを削除します。 スケジュールまたはトリガーがない場合は、最新のデータを反映するためにオブジェクトを手動で更新する必要があります。
ストリーミング テーブルにコメントを追加または変更するには、 COMMENT ONを使用します。
注
定義 SQL と矛盾する方法でパイプラインによって作成されたデータセットを変更すると、一部の変更が元に戻される可能性があります。
「Lakeflow Spark 宣言パイプラインでのALTERコマンドの使用」を参照してください。
構文
ALTER STREAMING TABLE table_name
{
{ ADD | ALTER } schedule
DROP SCHEDULE |
ALTER COLUMN column_clause |
SET ROW FILTER clause |
DROP ROW FILTER |
SET TAGS clause |
UNSET TAGS clause |
}
schedule
{ SCHEDULE [ REFRESH ] schedule_clause |
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }
schedule_clause
{ EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
CRON cron_string [ AT TIME ZONE timezone_id ] }
column_clause
column_identifier
{ COMMENT clause |
SET MASK clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
パラメーター
-
定義を変更するストリーミング テーブルの名前。 この名前には、テンポラル仕様を含めることはできません。
schedule
テーブルの
SCHEDULEまたはTRIGGERステートメントを追加または変更します。注
このコマンドを使用して、Lakeflow Spark 宣言パイプラインで作成されたストリーミング テーブルのスケジュールを変更することはできません。 パイプライン エディターを使用します。
SCHEDULE [ REFRESH ] schedule_clauseEVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }定期的に更新をスケジュールするには、
EVERY構文を使用します。EVERY構文が指定されている場合、ストリーミング テーブルまたは具体化されたビューは、指定された値 (HOUR、HOURS、DAY、DAYS、WEEK、WEEKSなど) に基づいて、指定した間隔で定期的に更新されます。 次の表に、numberに使用できる整数値を示します。時間単位 整数値 HOUR or HOURS1 <= H <= 72 DAY or DAYS1<= D<= 31 WEEK or WEEKS1 <= W <= 8 注
含まれる時間単位の単数形と複数形は、意味的に同等です。
CRON cron_string [ AT TIME ZONE timezone_id ]quartz cron 値を使用して更新をスケジュールします。 有効な time_zone_values が受け入れられます。
AT TIME ZONE LOCALはサポートされません。AT TIME ZONEが存在しない場合は、セッション タイム ゾーンが使用されます。AT TIME ZONEが存在せず、セッション タイム ゾーンも設定されていない場合は、エラーがスローされます。SCHEDULEは意味的にSCHEDULE REFRESHと同等です。
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]重要
TRIGGER ON UPDATE機能はベータ版です。アップストリーム データ ソースが更新されたときに更新するテーブルを 1 分ごとに最大 1 回設定します。
AT MOST EVERYの値を設定して、更新の間に少なくとも最小限の時間を必要とします。アップストリーム データ ソースは、外部またはマネージド Delta テーブル (具体化されたビューやストリーミング テーブルを含む) か、依存関係がサポートされているテーブルの種類に制限されているマネージド ビューである必要があります。
ファイル イベントを有効にすると、トリガーのパフォーマンスが向上し、トリガーの更新の制限の一部が増える可能性があります。
trigger_intervalは、少なくとも 1 分の INTERVAL ステートメントです。TRIGGER ON UPDATEには次の制限があります- TRIGGER ON UPDATEを使用する場合、ストリーミング テーブルあたり 10 個以下のアップストリーム データ ソース。
- TRIGGER ON UPDATEでは、最大 1,000 個のストリーミング テーブルまたは具体化されたビューを指定できます。
-
AT MOST EVERY句の既定値は 1 分で、1 分未満にすることはできません。
DROP SCHEDULEストリーミング テーブルからスケジュールを削除します。
ALTER COLUMN clauseALTER COLUMN 句を参照してください。
SETROW FILTER 句重要
この機能はパブリック プレビュー段階にあります。
ストリーミング テーブルに行フィルター関数を追加します。 ストリーミング テーブルに対する後続のすべてのクエリは、関数がブール
TRUEに評価される行のサブセットを受け取ります。 これは、関数が呼び出し元ユーザーの ID またはグループ メンバーシップを検査して、特定の行をフィルター処理するかどうかを決定できる、きめ細かいアクセス制御に役立ちます。作成後に追加された行フィルターは、次の更新後にのみダウンストリーム テーブルに反映されます。 継続的なパイプラインの場合、これにはパイプラインの再起動が必要です。
DROP ROW FILTER重要
この機能はパブリック プレビュー段階にあります。
ストリーミング テーブル (存在する場合) から行フィルターを削除します。 今後のクエリでは、自動フィルター処理なしでテーブルからすべての行が返されます。
SET TAGS ( { tag_name = tag_value } [, ...] )重要
この機能はパブリック プレビュー段階にあります。
ストリーミング テーブルにタグを適用します。 ストリーミング テーブルにタグを追加するには、
APPLY TAGアクセス許可が必要です。tag_name文字通りの
STRING。tag_nameは、ストリーミング テーブル内で一意である必要があります。tag_value文字通りの
STRING。
UNSET TAGS ( tag_name [, ...] )重要
この機能はパブリック プレビュー段階にあります。
ストリーミング テーブルからタグを削除します。 ストリーミング テーブルからタグを削除するには、
APPLY TAGアクセス許可が必要です。tag_name文字通りの
STRING。tag_nameは、ストリーミング テーブル内で一意である必要があります。
ALTER COLUMN 句
重要
この機能はパブリック プレビュー段階にあります。
プロパティまたは列の場所を変更します。
構文
ALTER COLUMN
column_identifier
{ COMMENT comment |
SET MASK mask_clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
パラメーター
-
変更する列の名前。
COMMENT commentcolumn_name列の説明を変更します。commentは、STRINGリテラルにする必要があります。SETMASK 句列マスク関数を追加して、機密データを匿名化します。 その列の後続のすべてのクエリは、列の元の値の代わりに、その列に対してその関数を評価した結果を受け取ります。 これは、値を編集するかどうかを決定するために関数で呼び出し元ユーザーの ID またはグループ メンバーシップを検査できる、きめ細かいアクセス制御の目的に役立ちます。
作成後に追加された列マスクは、次の更新後にのみダウンストリーム テーブルに反映されます。 継続的なパイプラインの場合、これにはパイプラインの再起動が必要です。
DROP MASKこの列の列マスク (存在する場合) を削除します。 この列からの今後のクエリは、列の元の値を受け取ります。
SET TAGS ( { tag_name = tag_value } [, ...] )列にタグを適用します。 列にタグを追加するには、
APPLY TAGアクセス許可が必要です。tag_name
文字通りの
STRING。tag_nameはテーブル内または列内で一意にする必要があります。tag_value
文字通りの
STRING。
UNSET TAGS ( tag_name [, ...] )列から指定されたタグを削除します。 列からタグを削除するには、
APPLY TAGアクセス許可が必要です。tag_name
文字通りの
STRING。tag_nameはテーブル内または列内で一意にする必要があります。
例
-- Adds a schedule to refresh the streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
ADD TRIGGER ON UPDATE;
-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;
-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
ALTER SCHEDULE EVERY 1 HOUR;
-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';
-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
DROP SCHEDULE;
-- Adds a column comment
> ALTER STREAMING TABLE my_st
ALTER COLUMN column_name COMMENT 'test'