2

ドキュメントには、クラスタリングのサポートが記載されExpressions on base columnsており、クラスタリングキーとして TO_DATE(timestamp) を使用する例があります。

https://docs.snowflake.net/manuals/user-guide/tables-micro-partitions.html#defining-clustering-keys-for-a-table

それは実際に私が確認したように機能しますが、私の場合、時間ごとのクラスターの方が優れているため、この DATE_TRUNC by HOUR をクラスターキーとして使用します

CREATE OR REPLACE TABLE t(
  "timestamp" datetime,
  ... more fields
) CLUSTER BY (DATE_TRUNC('HOUR', "timestamp"));

CREATE TABLE は正常に実行されますが、COPY INTO を使用してデータをロードすると、COPY 内ではサポートされていないと表示されます。またはCOPYコマンドの制限ですか?誰かが回避策を知っていますか?

002300 (0A000): SQL Compilation error: Function 'TRUNCTIMESTAMPTOHOUR' 
    not supported within a COPY
4

2 に答える 2

1

スチュアートの答えを拡張する:INSERT INTO、SELECT FROM [ステージングエリア]を実行するだけです。

INSERT INTO DB.SCHEMA.T(timestamp, col2, ...)
    SELECT 
    $1::timestamp_ntz,
    $2
    ...
    FROM 
        @SOURCE.EXTRACTS/folder_location (FILE_FORMAT => '[file_format_name]', 
                                            PATTERN => '[regex file pattern]')
于 2018-03-09T17:47:17.903 に答える