カテゴリ:

DML コマンド - データのアンロード

GET

次のSnowflakeステージのいずれかから、クライアントマシン上のローカルディレクトリ/フォルダーにデータファイルをダウンロードします。

  • 内部ステージという名前。

  • 指定されたテーブルの内部ステージ。

  • 現在のユーザーの内部ステージ。

通常、このコマンドは、 COPY INTO <場所> コマンドを使用してテーブルからSnowflakeステージにデータをアンロードした後に実行されます。

注釈

  • GET 外部ステージからのファイルのダウンロードはサポート されていません。外部ステージからファイルをダウンロードするには、クラウドサービスが提供するユーティリティを使用します。

  • 次のSnowflakeクライアントは GET をサポートしていません。

    • Go Snowflakeドライバー

    • .NET ドライバー

    • Node.jsドライバー

  • ODBC ドライバー は、次のプラットフォームでホストされているSnowflakeアカウントで GET をサポートします。

    • Amazon Web Services( ODBC ドライバーバージョン2.17.5またはそれ以上を使用)。

    • Google Cloud Platform( ODBC ドライバーバージョン2.21.5またはそれ以上を使用)。

    • Microsoft Azure(ODBC Driver Version 2.20.2以降を使用)。

こちらもご参照ください。

LISTPUTREMOVE

構文

GET internalStage file://<path_to_file>/<filename>
    [ PARALLEL = <integer> ]
    [ PATTERN = '<regex_pattern>'' ]

条件:

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]

必須パラメーター

internalStage

ファイルをダウンロードするSnowflakeの場所を指定します。

@[名前空間.]内部ステージ名[/パス]

指定された名前の内部ステージからファイルがダウンロードされます。

@[名前空間.]%テーブル名[/パス]

指定したテーブルのステージからファイルがダウンロードされます。

@~[/パス]

ファイルは、現在のユーザーのステージからダウンロードされます。

条件:

  • 名前空間 は、指定された内部ステージまたはテーブルが存在するデータベースまたはスキーマ、あるいはその両方です。セッション内でデータベースとスキーマが現在使用されている場合、 オプション です。それ以外の場合は必須です。

  • パス は、一連のファイルへのアクセスを制限するクラウドストレージの場所にある、ファイルの大文字と小文字を区別するオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。 パス が指定されているが、パスに明示的に名前が付けられているファイルがない場合は、パス内のすべてのデータファイルがダウンロードされます。

文字列は一重引用符で囲むことができます。これにより、場所名にスペースを含む特殊文字を使用できます(例えば、 "my stage" という名前のステージの '@"my stage"')。

file://ファイルへのパス

クライアントマシンにダウンロードされるデータファイルの URI を指定します。この場合、 ファイルへのパス は、ファイルがダウンロードされるローカルディレクトリパスです。クライアントマシンのルートディレクトリ(またはサブディレクトリ)にファイルをダウンロードする場合:

Linux/Mac

パスに最初のスラッシュを含める必要があります(例: file:///tmp/load)。

Windows

パスにドライブとバックスラッシュを含める必要があります(例: file://C:\temp\load)。

URI は単一引用符で囲むことができます。これにより、ディレクトリ名やファイル名にスペースを含む特殊文字を使用できます。ただし、ドライブとパスの区切り文字は、サポートされているすべてのオペレーティングシステムのスラッシュ(/)です(例: load data という名前のディレクトリを含むWindowsのパスの場合は 'file://C:/temp/load data')。

オプションのパラメーター

PARALLEL = 整数

ファイルのダウンロードに使用するスレッドの数を指定します。ダウンロードの粒度単位は1ファイルです。

スレッド数を増やすと、大きなファイルをダウンロードするときのパフォーマンスが改善します。

サポートしている値: 1 (並列処理なし)から 99 (ファイルのダウンロードには99スレッドを使用)までの整数値。

デフォルト: 10

PATTERN = '正規表現パターン'

ダウンロードするファイルをフィルタリングするための正規表現パターンを指定します。

デフォルト:値なし(指定されたステージのすべてのファイルをダウンロード)

使用上の注意

  • コマンドは、Snowflake ウェブインターフェイスの Worksheets Worksheet tab ページから実行できません。代わりに、 SnowSQL クライアントを使用してデータファイルをダウンロードするか、特定のSnowflakeクライアントのドキュメントを確認して、このコマンドのサポートを検証してください。

  • コマンドはファイルの名前を変更しません。

  • ダウンロードしたファイルは、アップロード( PUT を使用)またはテーブルからアンロード( COPY INTO <場所> を使用)したときにファイルの暗号化に使用したのと同じキーを使用して自動的に復号化されます。

mytable テーブルのステージにあるすべてのファイルを /tmp/data ローカルディレクトリにダウンロードします(Linuxまたは macOS 環境)。

GET @%mytable file:///tmp/data/;

------------+--------+------------+------------+---------+
     file   |  size  |   status   | encryption | message |
------------+--------+------------+------------+---------+
 mydata.csv | 1347   | DOWNLOADED | DECRYPTED  |         |
------------+--------+------------+------------+---------+

現在のユーザーのステージにあるプレフィックスが myfiles のファイルを /tmp/data ローカルディレクトリ(Linuxまたは macOS 環境)にダウンロードします。

GET @~/myfiles file:///tmp/data/;

---------------------------+---------+------------+------------+---------+
            file           |   size  |   status   | encryption | message |
---------------------------+---------+------------+------------+---------+
 myfiles/orders_001.csv.gz | 1126625 | DOWNLOADED | DECRYPTED  |         |
 myfiles/orders_101.csv.gz | 5214    | DOWNLOADED | DECRYPTED  |         |
----------------------------+--------+------------+------------+---------+