Amazon Athenaで実行するクエリが想定通りの結果になるかをフルスキャンせずに確かめる方法
結論
- 任意のテーブル
t
に対して FROM t TABLESAMPLE SYSTEM(5)
や JOIN t TABLESAMPLE SYSTEM(5) USING(id)
のように書くと、約5%のレコードに対してクエリのロジックを確かめられる。
前提
- 2019-01-24時点のAthenaを想定。
- ベースのPrestoはバージョン0.172。
状況
- クエリが想定通りのロジックになっているか確かめたい。
- レコードの一部を対象にクエリを実行してテストしたい。
- より安く早く処理結果を見たい。
- パーティション指定だけでは不十分。
対応策
-
TABLESAMPLE SYSTEM
を使う。
-
TABLESAMPLE SYSTEM(5)
なら5%抽出。
- データのスキャン量が減る。
- 安くなる。
- 早くなるはず。
補足
-
TABLESAMPLE
で指定する SYSTEM
と BERNOULLI
の違い
-
SYSTEM
- 抽出率に応じて部分スキャン。
- レコードの抽出元は偏る可能性がある。
- サンプルの独立性は保証されない。
-
BERNOULLI
- 抽出率によらずフルスキャン。
情報源
t
に対して FROM t TABLESAMPLE SYSTEM(5)
や JOIN t TABLESAMPLE SYSTEM(5) USING(id)
のように書くと、約5%のレコードに対してクエリのロジックを確かめられる。- 2019-01-24時点のAthenaを想定。
- ベースのPrestoはバージョン0.172。
状況
- クエリが想定通りのロジックになっているか確かめたい。
- レコードの一部を対象にクエリを実行してテストしたい。
- より安く早く処理結果を見たい。
- パーティション指定だけでは不十分。
対応策
-
TABLESAMPLE SYSTEM
を使う。
-
TABLESAMPLE SYSTEM(5)
なら5%抽出。
- データのスキャン量が減る。
- 安くなる。
- 早くなるはず。
補足
-
TABLESAMPLE
で指定する SYSTEM
と BERNOULLI
の違い
-
SYSTEM
- 抽出率に応じて部分スキャン。
- レコードの抽出元は偏る可能性がある。
- サンプルの独立性は保証されない。
-
BERNOULLI
- 抽出率によらずフルスキャン。
情報源
- レコードの一部を対象にクエリを実行してテストしたい。
- より安く早く処理結果を見たい。
- パーティション指定だけでは不十分。
- より安く早く処理結果を見たい。
-
TABLESAMPLE SYSTEM
を使う。-
TABLESAMPLE SYSTEM(5)
なら5%抽出。 - データのスキャン量が減る。
- 安くなる。
- 早くなるはず。
-
補足
-
TABLESAMPLE
で指定する SYSTEM
と BERNOULLI
の違い
-
SYSTEM
- 抽出率に応じて部分スキャン。
- レコードの抽出元は偏る可能性がある。
- サンプルの独立性は保証されない。
-
BERNOULLI
- 抽出率によらずフルスキャン。
情報源
TABLESAMPLE
で指定する SYSTEM
と BERNOULLI
の違い
-
SYSTEM
- 抽出率に応じて部分スキャン。
- レコードの抽出元は偏る可能性がある。
- サンプルの独立性は保証されない。
-
BERNOULLI
- 抽出率によらずフルスキャン。
Author And Source
この問題について(Amazon Athenaで実行するクエリが想定通りの結果になるかをフルスキャンせずに確かめる方法), 我々は、より多くの情報をここで見つけました https://qiita.com/iery/items/134d177b0cf8d8489dea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .