自動クラスタリング

自動クラスタリングは、必要に応じてクラスタ化されたテーブルのすべての再クラスタリングをシームレスかつ継続的に管理するSnowflakeサービスです。

クラスタ化されたテーブルが定義された後、再クラスタリングは必ずしもすぐに開始されるわけではないことに注意してください。Snowflakeは、操作の恩恵を受ける場合にのみ、クラスタ化されたテーブルを再クラスター化します。

注釈

アカウントで手動の再クラスタリングが引き続き利用できる場合、自動クラスタリングがアカウントでまだ有効になっていない可能性があります。詳細については、 手動再クラスタリング--- 非推奨 をご参照ください。

このトピックの内容:

自動クラスタリングの利点

簡単なメンテナンス

自動クラスタリングにより、次のタスクを実行する必要がなくなります:

  • クラスタ化されたテーブルの状態の監視。

    代わりに、これらのテーブルで DML が実行されると、Snowflakeはテーブルを監視および評価して、必要に応じて再クラスタリングのメリットがあるかどうかを判断し、自動的に再クラスタリングします。

  • 再クラスタリングに使用するアカウント内のウェアハウスを指定します。

    Snowflakeはバックグラウンドで自動再クラスタリングを実行するため、使用するウェアハウスを指定する必要はありません。

必要なことは、各テーブルのクラスタリングキーを定義するだけで(必要な場合)、Snowflakeは今後のすべてのメンテナンスを管理します。

フル制御

ALTER TABLE を使用して、クラスタ化されたテーブルの自動クラスタリングをいつでも一時停止および再開できます…SUSPEND / RESUME RECLUSTER.テーブルの自動クラスタリングが中断されている間、テーブルはクラスタリング状態に関係なく自動的に再クラスタリングされることはないため、関連するクレジット料金は発生しません。

クラスタ化されたテーブルにクラスタリングキーをいつでもドロップすることもできます。これにより、今後のテーブルでのすべての再クラスタリングが防止されます。

ノンブロッキング DML

自動クラスタリングは透過的であり、再クラスタ化中にテーブルに対して発行された DML ステートメントをブロックしません。

最適な効率

自動クラスタリングを使用すると、Snowflakeは、クラスタ化されたテーブルの状態と、すべての自動クラスタリング操作に使用されるリソース(サーバー、メモリなど)を内部で管理します。これにより、Snowflakeは必要に応じてリソースを動的に割り当てることができ、最も効率的かつ効果的な再クラスタリングが可能になります。

また、自動クラスタリングは不要な再クラスタリングを実行しません。再クラスタリングは、テーブルが操作の恩恵を受ける場合にのみトリガーされます。

自動クラスタリングのクレジット使用状況とウェアハウス

自動クラスタリングはSnowflakeクレジットを消費しますが、仮想ウェアハウスを提供する必要はありません。代わりに、Snowflakeは内部的に管理し、テーブルを再クラスタリングするための効率的なリソース使用率を達成します。

アカウントは、クラスタ化されたテーブルでの自動クラスタリング操作によって消費された実際のクレジットに対してのみ請求されます。

重要

クラスタ化されたテーブルで自動クラスタリングを有効化または再開した後、テーブルが再クラスタ化されてからしばらく経っている場合、Snowflakeがテーブルを最適なクラスタ化状態にするため、再クラスタリングアクティビティ(および対応するクレジット料金)が発生する可能性があります。テーブルが最適にクラスタ化されると、再クラスタリングアクティビティは終了します。

同様に、既存のテーブルでクラスタリングキーを定義するか、クラスタ化されたテーブルでクラスタリングキーを変更すると、再クラスタリングとクレジット料金をトリガーする場合があります。

予期しないクレジット請求を防ぐために、選択した1つまたは2つのテーブルから開始し、 DML の実行時にテーブルを適切にクラスタ化することに関連するクレジット請求を確認することをお勧めします。これは、アクティビティの再クラスタリングによって消費されるクレジット数のベースラインを確立するのに役立ちます。

テーブルの自動クラスタリングを有効にする

テーブルの自動クラスタリングを有効にするためのタスクは必要ありません。テーブルに クラスタリングキー を定義するだけです。

ちなみに

テーブルのクラスタリングキーを定義する前に、再クラスタリングアクティビティ(および対応するクレジット料金)を引き起こす可能性がある次の条件を考慮してください。

そのため、選択した1つまたは2つのテーブルから開始し、これらのテーブルに対する自動クラスタリングの影響を評価することをお勧めします。自動クラスタリングが再クラスタリングを実行する方法に慣れたら、他のテーブルのクラスタリングキーを定義できます。

最適なクラスタリングキーの選択については、 クラスタリングキーを選択するための戦略 をご参照ください。

テーブルの自動クラスタリングステータスの表示

SQL を使用して、テーブルで自動クラスタリングが有効になっているかどうかを表示できます:

出力の AUTO_CLUSTERING_ON 列には、各テーブルの自動クラスタリングステータスが表示されます。これは、特定のテーブルの自動クラスタリングを一時停止または再開するかどうかを決定するために使用できます。

さらに、 CLUSTER_BY 列(SHOW TABLES)または CLUSTERING_KEY 列(TABLES ビュー)には、各テーブルのクラスタリングキーとして定義された列が表示されます。

注釈

アカウントの使用 共有データベースの) TABLES ビューには、自動クラスタリングのステータスはまだ表示されていません。今後のリリースで追加される予定です。

テーブルの自動クラスタリングの一時停止

テーブルの自動クラスタリングを一時停止するには、 SUSPEND RECLUSTER 句を指定して ALTER TABLE コマンドを使用します。例:

ALTER TABLE t1 SUSPEND RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | OFF                  |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

テーブルの自動クラスタリングの再開

クラスタ化されたテーブルの自動クラスタリングを再開するには、 RESUME RECLUSTER 句を指定して ALTER TABLE コマンドを使用します。例:

ALTER TABLE t1 RESUME RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | ON                   |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

ちなみに

クラスタ化されたテーブルで自動クラスタリングを再開する前に、再クラスタリングアクティビティ(および対応するクレジット料金)を引き起こす可能性のある次の条件を考慮してください:

  • テーブルは最適にクラスタ化されていません(例えば、テーブルが最後に再クラスタ化されてから重要な DML が実行されています)。

  • テーブルのクラスタリングキーが変更されました。

詳細については、 マイクロパーティションとデータクラスタリング および クラスタリングキーとクラスタ化されたテーブル をご参照ください。

自動クラスタリング請求の表示

ACCOUNTADMIN ロールを持つユーザーは、ウェブインターフェイスまたは SQL のいずれかを使用して、自動クラスタリングの請求を表示できます:

ウェブインターフェイス

Account Account tab » Billing & Usage をクリックします

自動クラスタリングの請求は、Snowflakeが提供する Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING という名前のウェアハウスとして表示されます。

SQL

Query either of the following:

注釈

リソースモニター は、仮想ウェアハウスのクレジット使用状況を制御します。ただし、これらを使用して、 Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING ウェアハウスを含む、Snowflake提供のウェアハウスのクレジット使用状況を制御することはできません。