2017-09-03 60 views
1

this blogでは、Google Cloudの従業員がBigQueryの機械学習用データセットの繰り返しサンプリングを行う方法を説明しています。これは、データの列車/検証/テスト区画の作成(および複製)に非常に重要です。BigQuery Standard SQLで繰り返し可能なサンプリングを行う方法は?

しかし、このブログでは、レガシSQLを使用していますが、Google has now deprecatedでは標準SQLが使用されています。

標準のSQLを使用して、以下に示すブログのサンプリングコードをどのように書き直しますか?

#legacySQL 
SELECT 
    date, 
    airline, 
    departure_airport, 
    departure_schedule, 
    arrival_airport, 
    arrival_delay 
FROM 
    [bigquery-samples:airline_ontime_data.flights] 
WHERE 
    ABS(HASH(date)) % 10 < 8 
+0

良い質問と回答!私はちょうど1つのことを明確にしたいと思っていました。これは、従来のSQLは非推奨ではないということです。しかし、私たちは標準的なSQLに積極的な開発作業を集中しています。 –

答えて

1

標準SQLは、このようにクエリを再記述します。

  • 期間(ないコロン)テーブルからGoogleクラウドプロジェクトを分離する。具体的にここに

    #standardSQL 
    SELECT 
        date, 
        airline, 
        departure_airport, 
        departure_schedule, 
        arrival_airport, 
        arrival_delay 
    FROM 
        `bigquery-samples.airline_ontime_data.flights` 
    WHERE 
        MOD(ABS(FARM_FINGERPRINT(date)), 10) < 8 
    

    は変更されています名。

  • テーブル名にハイフンをエスケープするバッククォート(角括弧ではありません)。
  • 機能(%ではない)。
  • FARM_FINGERPRINTHASHではない)。これは実際にはレガシーSQLのHASHとは異なるハッシュ関数であり、ブログの意味ではwasn't in fact consistent over timeです。
関連する問題