0

ドキュメントによると、Athena でテーブルを作成するときは、s3 バケット内の入力データ ファイルの場所を指定する必要があります。そのファイルを含む s3 の場所のみを指定できますが、使用するファイルは指定できません。たとえば、my-bucket/logs/ という場所に、type1.log.gz、type2.log.gz、type3.log.gz などのさまざまな形式のファイルが多数あります。

現在、指定された場所は「s3://my-bucket/logs/」です

したがって、使用するファイル(type2.log.gzなど)を指定することは可能ですか。または、ファイル (type2.log.gz) を他のファイルがない別の場所にコピーし、そのパスを指定する必要がありますか?

4

2 に答える 2

3

Athena は、S3 ロケーション内のすべてのデータが同じスキーマを持つことを想定しています。これは、Athena が並行して読み取ることができる多くのファイルに分割できるため、非常に大きなテーブルがある場合、または既存のテーブルにデータを追加する場合に非常に役立ちます。ただし、これは、1 つの S3 ロケーションに異なるスキーマのファイルがある状況では Athena を使用できないことを意味します。

あなたの場合、クエリを実行するファイルを別の場所に移動してから、その場所を指すテーブルを作成する必要があります。たとえば、 にコピーするs3://my-bucket/logs/type2/type2.log.gz場合、テーブルは を指す必要がありますs3://my-bucket/logs/type2

于 2018-02-06T20:55:01.590 に答える