2022年8月

今月は、次の新機能、動作の変更、および更新(拡張、修正など)が導入されています。これらの追加について質問がある場合は、 Snowflakeサポート にお問い合わせください。

重要

各リリースには、ウェブインターフェイスをリフレッシュする必要のある更新が含まれる場合があります。

一般的な方法として、これらの更新が使用に影響を与えないようにするために、Snowflakeの各リリースが展開された後にウェブインターフェイスを更新することをお勧めします。

このトピックの内容:

新機能

GEOMETRY データ型のサポート --- プレビュー

このリリースでは、新しい GEOMETRY データ型のサポートのプレビューをご紹介します。GEOMETRY データ型は、平面(ユークリッド、デカルト)座標系の機能を表します。この機能は、すべてのSnowflakeアカウントで使用できます。

このリリースでは、 GEOMETRY オブジェクト間の関係を構築、フォーマット、測定、および計算するための関数が提供されます。これらの関数を使用すると、 WKT、 WKB、 GeoJSON などの標準形式のデータから GEOMETRY オブジェクトを作成できます。

詳細については、 地理空間データ型 をご参照ください。

プレビュー機能は、評価およびテストを目的としています。これらの機能を実稼働環境で使用することはお勧めしません。

JavaでのSnowparkストアドプロシージャ --- 一般公開

このリリースでは、Amazon Web Services(AWS)およびMicrosoft AzureでJavaを使用して記述されたSnowparkストアドプロシージャの一般公開をお知らせします。Java用ストアドプロシージャは、Google Cloud Platform(GCP)でプレビューできます。

ストアドプロシージャでは、Java用Snowpark API を使用して、Snowflakeでデータパイプラインをホストできます。たとえば、クライアントアプリケーションを実行せずに(例: タスクから)Snowparkコードを実行する必要がある場合に、ストアドプロシージャを記述できます。

詳細については、 Javaでのストアドプロシージャの記述 をご参照ください。

ScalaでのSnowparkストアドプロシージャ --- 一般公開

このリリースでは、Amazon Web Services(AWS)およびMicrosoft AzureでScalaを使用して記述されたSnowparkストアドプロシージャの一般公開をお知らせします。Scala用ストアドプロシージャは、Google Cloud Platform(GCP)でプレビューできます。

ストアドプロシージャでは、ScalaのSnowpark API を使用して、Snowflakeでデータパイプラインをホストできます。たとえば、クライアントアプリケーションを実行せずに(例: タスクから)Snowparkコードを実行する必要がある場合に、ストアドプロシージャを記述できます。

詳細については、 Scalaでのストアドプロシージャの記述 をご参照ください。

アカウント複製 --- プレビュー

このリリースにより、 アカウント複製 のオープンプレビューをお知らせします。この機能により、 複製グループおよびフェールオーバーグループ という2つの新しいSnowflakeオブジェクトが導入されます。複製グループを使用すると、お客様は、カスタマイズ可能なスケジュールされた間隔で、どのアカウントオブジェクトをどのリージョンまたはクラウドプラットフォームに複製するかを指定できるようになります。フェールオーバーグループにより、グループ内のアカウントオブジェクトの複製およびフェールオーバーができるようになります。グループ内のオブジェクトは、特定時点における一貫性をもってソースアカウントから1つ以上のターゲットアカウントに複製されます。

アカウントオブジェクトには、データベースと共有に加えて、ウェアハウス、ユーザー、ロールを含めることができます(複製またはフェールオーバーグループに含めることができるオブジェクトの包括的なリストについては、 複製されたオブジェクト をご参照ください)。アカウントオブジェクトは、1つまたは複数のグループにグループ化できます。

フェールオーバーの場合は、アカウント複製により、アカウント全体を別のリージョンまたはクラウドプラットフォームにフェールオーバーできます。複製およびフェールオーバーグループごとに独自の複製スケジュールがあり、オブジェクトのグループごとに異なる間隔で複製の頻度を設定できます。フェールオーバーグループの場合は、グループを個別にフェールオーバーすることもできます。すべてのフェールオーバーグループをフェールオーバーするか、選択したフェールオーバーグループのみをフェールオーバーするかを選択できます。

SQL の更新

INFER_SCHEMA 関数: 新しいパラメーター

このリリースでは、Snowflakeは INFER_SCHEMA 関数に2つの新しい引数を提供します。

FILES = ( 'file_name' [ , 'file_name' ... ] )

半構造化データを含むステージングされたファイルのセット内にある1つ以上のファイル名(コンマ区切り)のリストを指定します。

IGNORE_CASE = TRUE | FALSE

ステージファイルから検出された列名を大文字と小文字を区別して扱うかどうかを指定します。デフォルトでは、値は FALSE です。これは、Snowflakeが列名を取得するときにアルファベットの大文字と小文字を保持することを意味します。値を TRUE として指定すると、列名は 大文字と小文字を区別しない として扱われ、すべての列名は大文字として取得されます。

将来のリリースには、 INFER_SCHEMA 関数の出力に、ステージングされたファイルの列の順序を示す新しい ORDER_ID 列が含まれるようになります。詳細については、 動作変更ログ をご参照ください。

CREATE EXTERNAL TABLE: ステージングされたファイルから列定義を派生 --- プレビュー

このリリースにより、Snowflakeは、半構造化データを含んでいるステージングされたファイルのセットから派生した列定義を使用した、新しいテーブルの作成をサポートします。 CREATE EXTERNAL TABLE ステートメントに USING TEMPLATE キーワードを含めます。これまで、この機能はテーブルに限定されていました。

例:

CREATE OR REPLACE EXTERNAL TABLE myet
    USING TEMPLATE (
      SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*))
        FROM TABLE(
          INFER_SCHEMA(
            LOCATION=>'@filestage',
            FILE_FORMAT=>'ffparquet'
          )
        )
    )
    location=@filestage
    file_format=ffparquet
    auto_refresh=false;
Copy

新しい SQL 関数

最近のリリースでは、次の関数が導入されました。

関数カテゴリ

新機能

説明

地理空間(変換)

ST_DIFFERENCE

2つの入力 GEOGRAPHY オブジェクトを与えると、2番目のオブジェクトにはない最初のオブジェクトのポイント(つまり、2つのオブジェクトの違い)を表す GEOGRAPHY オブジェクトを返します。

地理空間(変換)

ST_INTERSECTION

2つの入力 GEOGRAPHY オブジェクトを与えると、入力オブジェクト両方に共通なポイントのセット(つまり、2つのオブジェクトの交点)を表す GEOGRAPHY オブジェクトを返します。

地理空間(変換)

ST_SYMDIFFERENCE

2つの入力 GEOGRAPHY オブジェクトを与えると、オブジェクトの共通部分の一部ではない入力オブジェクト両方からのポイントのセット(つまり、2つのオブジェクトの対称差)を表す GEOGRAPHY オブジェクトを返します。

地理空間(変換)

ST_UNION

2つの入力 GEOGRAPHY オブジェクトを与えると、オブジェクト両方からのポイントすべての結合セット(つまり、2つのオブジェクトの和集合)を表す GEOGRAPHY オブジェクトを返します。

地理空間(アクセサー)

ST_ENDPOINT

LineString 内の最後のポイントを返します。

地理空間(アクセサー)

ST_POINTN

LineString 内の指定されたインデックスにあるポイントを返します。

地理空間(アクセサー)

ST_STARTPOINT

LineString 内の最初のポイントを返します。

データパイプラインの更新

タスク: 単一の SQL ステートメントで複数の先行タスクを指定するためのサポート

タスクの有向非巡回グラフ(DAG)は、単一のルートタスクと、依存関係によって編成された一連の子タスクで構成されます。ルートタスクとその直接の子を除く DAG 内のすべてのタスクは、複数の先行タスクを持つことができます。タスクは、その先行タスクがすべて正常に実行されて完了した後にのみ実行されます。

このリリースにより、新しいタスクを作成するとき(CREATE TASK ... AFTER を使用)またはそれ以降(ALTER TASK ... ADD AFTER を使用)に複数の先行タスクを指定できるようになります。既存の SQL コマンド構文は、タスクのコンマ区切りリストをサポートするようになりました。

次の例では、サーバーレスタスク a4 を作成し、タスク a1a2、および a3 を先行タスクとして指定します。タスクは簡単なクエリを実行します。

CREATE TASK a4
  AFTER a1, a2, a3
  AS SELECT 1;
Copy

次の例では、既存のタスク b4 を変更し、タスク b1b2、および b3 を先行タスクとして指定します。

ALTER TASK b4 ADD AFTER b1, b2, b3;
Copy

これまで、タスクの作成時またはタスクの変更時にユーザーが指定できるのは、単一の先行タスクに制限されていました。

組織の更新

ORGADMIN ロール ---一般公開

このリリースにより、Snowflakeでの ORGADMIN ロールの一般公開をお知らせします。ORGADMIN ロールを持つ組織管理者は次を実行できます。

  • 組織内のすべてのSnowflakeアカウントとリージョンを表示する

  • 組織の下に新しいSnowflakeアカウントを作成する

  • 組織内のSnowflakeアカウントの名前を変更する

  • 組織に属するすべてのSnowflakeアカウントの使用状況と請求データを提供する、 ORGANIZATION_USAGE スキーマにアクセスする

複数のアカウントを持つ組織の場合、 ORGADMIN ロールは、別のアカウントへの追加をリクエストした場合を除き、作成された最初のアカウントで使用できます。ORGADMIN が使用可能かどうかは、ウェブインターフェイスのロールのリストで確認できます。

アカウント管理者(つまり、 ACCOUNTADMIN ロールを持つユーザー)は、次のコマンドを実行することにより、自分自身または他のユーザーに ORGADMIN ロールを付与できます。

GRANT ROLE ORGADMIN TO USER user1;
Copy

詳細については、 組織の紹介 をご参照ください。

コストをモニターするための ORGANIZATION_USAGE ビュー --- 一般公開

このリリースにより、 SNOWFLAKE 共有データベース内の ORGANIZATION_USAGE スキーマ にある次のビューの一般公開をお知らせします。これらのビューを使用して、組織内のすべてのアカウントにわたってオブジェクトレベルでコストを分類できます。

  • ストレージ:

    • DATABASE_STORAGE_USAGE_HISTORY

    • STAGE_STORAGE_USAGE_HISTORY

  • データ転送:

    • DATA_TRANSFER_HISTORY

  • サーバーレス機能:

    • AUTOMATIC_CLUSTERING_HISTORY

    • MATERIALIZED_VIEW_REFRESH_HISTORY

    • PIPE_USAGE_HISTORY

    • REPLICATION_USAGE_HISTORY

    • SEARCH_OPTIMIZATION_HISTORY

アカウントの名前変更のサポート

このリリースにより、組織管理者は ALTER ACCOUNT コマンドを使用して、 SnowflakeSupport に連絡することなくアカウントの名前を変更できるようになります。次の例では、 original_acctname というアカウントの名前を new_acctname に変更します。

ALTER ACCOUNT original_acctname RENAME TO new_acctname;
Copy

デフォルトでは、Snowflakeは引き続き、以前の名前の古い URL を使用してアカウントにアクセスできるようにすると同時に、新しいアカウント名を含む新しい URL もサポートします。古い URL をドロップして、新しい URL を使用したアクセスをリクエストするオプションがあります。詳細については、 組織内のアカウントの管理 をご参照ください。

データガバナンスの更新

アクセス履歴: コンシューマーアカウントで共有オブジェクトアクセスを表示

このリリースにより、Snowflakeは、コンシューマーアカウントのユーザーがSnowflake Secure Data Sharingを使用して共有するオブジェクトのアクセスを表示する機能を追加します。今回の更新により、Snowflake は共有でアクセスされたオブジェクトをAccount Usageにある ACCESS_HISTORY ビューbase_objects_accessed 列に記録します。

たとえば、プロバイダーがテーブルとテーブルから構築されたビューをコンシューマーアカウントに共有し、共有ビューにクエリがある場合、Snowflakeは base_objects_accessed 列に共有ビューアクセスを記録します。 columnNameobjectName の値を含むこの記録により、コンシューマーは自分のアカウントでアクセスされたオブジェクトを知ることができます。また、基になるテーブル(objectIdcolumnId を介して)はコンシューマーに公開されないため、プロバイダーも保護されます。

マスキングポリシーおよび行アクセスポリシー: マッピングテーブルのルックアップで IS_ROLE_IN_SESSION のサポートを追加

このリリースにより、Snowflakeは、 IS_ROLE_IN_SESSION コンテキスト関数がマッピングテーブルのルックアップをサポートできるようにして、マスキングと行アクセスポリシーの汎用性を高めます。ポリシー管理者は、この関数を使用してマッピングテーブルのルックアップを呼び出すポリシー条件を記述し、セッション内のユーザーのアクティブなプライマリロールまたはセカンダリロールが、コンテキスト関数引数で指定されたロールに付与された権限を継承するかどうかを判断できるようになりました。この強化により、Snowflakeは、現在のロールのロール階層で有効なロールを確認する必要があるポリシー条件において、 IS_ROLE_IN_SESSION コンテキスト関数を使用することをコンシューマーにお勧めします。

詳細については、 列レベルのセキュリティについて および 行アクセスポリシーについて をご参照ください。

マスキングポリシー: NULL、長さ、スケール、および精度の戻り値に関するポリシー条件のビューをクエリ

このリリースにより、Snowflake は、次の名前の共有 SNOWFLAKE データベースに新しい中間ビューを提供します。

SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT

このビューは、マスキングポリシーの条件が列の長さ、スケール、または精度と一致しない場所、またはポリシー条件が NOT NULL 列に対して NULL 値を返す場合を特定するのに役立ちます。ビューは、2022年7月15日に始まる記録を返します。

このビューは、マスキングポリシーによって保護されている列に対するクエリに 2022_07 動作変更バンドルがどのように影響するかを判断し、マスキングポリシー条件の更新プロセスを開始するための十分な時間が得られるようにするものです。

詳細については、 マスキングポリシーの戻り値更新の軽減 をご参照ください。