翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
S3 Select と Spark を使用してクエリパフォーマンスを向上させる
重要
新規のお客様への Amazon S3 Select の提供は終了しました。Amazon S3 Select をご利用の既存のお客様は、今後も通常どおり使用できます。詳細はこちら
Amazon EMRリリース 5.17.0 以降では、Amazon の Spark で S3 Select
S3 Select は、 CSV および JSON を使用してデータ形式s3selectJSON
を指定する s3selectCSV
および ファイルでサポートされています。詳細な説明と例については、「コードで S3 Select を指定する」を参照してください。
S3 Select が使用するアプリケーションに適しているかどうかを確認する
S3 Select が使用するアプリケーションに適しているかどうかを確認するために、S3 Select を使用した場合と使用しない場合のアプリケーションのベンチマークを行うことをお勧めします。
アプリケーションが S3 Select を使用する候補となるかどうかを判断するには、次のガイドラインを使用します。
-
クエリは元のデータセットの半分以上を除外する。
-
Amazon S3 と Amazon EMRクラスター間のネットワーク接続には、転送速度と利用可能な帯域幅が良好です。Amazon S3 はHTTPレスポンスを圧縮しないため、圧縮された入力ファイルではレスポンスサイズが増加する可能性があります。
考慮事項と制約事項
-
お客様が提供する暗号化キー (SSE-C) による Amazon S3 サーバー側の暗号化とクライアント側の暗号化はサポートされていません。
-
AllowQuotedRecordDelimiters
プロパティはサポートされていません。このプロパティを指定した場合、クエリは失敗します。 -
UTF-8 形式の JSON CSVおよび ファイルのみがサポートされています。マルチラインCSVsはサポートされていません。
-
圧縮されていないファイルか gzip ファイルのみがサポートされます。
-
Spark CSVや
nanValue
、破損したレコードに関連するpositiveInf
、negativeInf
、、 JSONなどのオプション (フェイルファストモードやドロップマフォームモードなど) はサポートされていません。 -
小数でのカンマ (,) の使用はサポートされません。たとえば、
10,000
はサポートされませんが、10000
はサポートされます。 -
最後の行のコメント文字はサポートされていません。
-
ファイルの末尾にある空の行は処理されません。
-
次のフィルターは Amazon S3 にプッシュダウンされません。
-
COUNT()
やSUM()
などの集計関数。 -
属性を
CAST()
するフィルター。例えば、CAST(stringColumn as INT) = 1
と指定します。 -
オブジェクトの属性、または複雑な属性を持つフィルター。例えば、
intArray[1] = 1, objectColumn.objectNumber = 1
と指定します。 -
値がリテラル値ではないフィルター。例えば、
intColumn1 = intColumn2
-
確認された制限のある S3 Select がサポートするデータ型のみがサポートされます。
-
コードで S3 Select を指定する
次の例は、Scala、、SQLR、および CSVを使用するための S3 Select を指定する方法を示しています PySpark。S3 Select for も同様JSONに使用できます。オプション、デフォルト値、および制限の一覧については、「オプション」を参照してください。
オプション
s3selectCSV
と s3selectJSON
を使用するときは、以下のオプションを利用できます。指定しない場合はデフォルト値が使用されます。
S3selectCSV のオプション
オプション | デフォルト | 使用方法 |
---|---|---|
|
|
圧縮が使用されているかどうかを示します。 |
|
"," |
フィールドの区切り記号を指定します。 |
|
|
引用文字を指定します。空の文字列の指定はサポートされておらず、不正な形式のXMLエラーが発生します。 |
|
|
エスケープ文字を指定します。 |
|
|
|
コメント |
|
コメント文字を指定します。コメントインジケーターを無効にすることはできません。つまり、 |
|
"" |
S3selectJSON のオプション
オプション | デフォルト | 使用方法 |
---|---|---|
|
|
圧縮が使用されているかどうかを示します。 |
|
"false" |
|