s3バケットディレクトリに複数のファイルがあります(すべてのファイルは同じディレクトリにあります)。 1つのファイルに4つの列があり、2つ目のファイルに6つの異なる列があるように、すべてのファイルの構造が異なります。 これらのファイルを使用してAthenaテーブルを作成するにはどうすればよいですか?アテナの構造が異なる複数のファイルの使い方
答えて
ファイルに異なるデータが含まれている場合は、別々の外部テーブル(それぞれ独自のCREATE EXTERNAL TABLE
ステートメントを持つ)として定義する必要があります。
これで、JOINを介して複数のテーブルでクエリを実行できます。
以下のシナリオでは、
data1.json:
create external table data1 (
a string,
b string
)
ROW FORMAT serde 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucket/x';
create external table data2 (
c string,
d string
)
ROW FORMAT serde 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucket/x';
は今、あなたは別々を通じて定義され、別のファイルを照会することができます:あなたは、次の表を作成することができます
{"c":"data3","d":"data4"}
{"a":"data1","b":"data2"}
data2.jsonテーブル。あなたが処理しなければならないのは、異なるファイルタイプが結果にヌルエントリを生成することだけです。
select * from data1 where a is not null;
select * from data2 where c is not null;
data1.jsonとdata2.jsonの両方が同じディレクトリにある場合(たとえば、s3:/と、/bucket/dir /)?どのように私はテーブルのクエリを作成する場所を言及するだろう。それは有効なscenerioか、または両方のファイルが別のディレクトリに存在する必要がありますか? – Prakash
技術的には、Athenaはディレクトリ内のすべてのファイルを処理できますが、ファイルエントリと一致しないためにヌル行を作成します。クエリのヌル行をフィルタリングすることは可能です。一方、ファイルタイプごとに1つのディレクトリを持つ方がずっときれいですが、これは必ずしも実行可能なわけではありません。ですから、1つのディレクトリに2つのテーブルを作成するだけです。上記のようなステートメントで「LOCATION 's3:// bucket/dir'」を使用して、1つのディレクトリに対して多くのテーブルを作成できます。 –
私は(そうでない場合は教えてください!)これは、現在、AWSアテナ/プレストでは不可能であると信じています。
アテナテーブルの外部ロケーション(常にEXTERNAL TABLE
)は、ディレクトリでなければなりません。
s3://mybucket/folder/table/file_a
およびs3://mybucket/folder/table/file_b
異なる構造では、SCHEMA_MISMATCH
になります。
アテーナは、s3://mybucket/folder/table1/
とs3://mybucket/folder/table2/
という形式のテーブルを想定しています。
更新:あなたはアテナは、常にすべてのファイルを検討する他に、別のフォルダに賢明なテーブルごとにファイルを移動する必要がある最初のパスの要件については
:
AWSのサポートとの会話から、 1つのテーブル用です。
- 1. 構成が異なる複数の構造体
- 2. 構造が異なる複数のWebサイトのWebクローリング
- 3. Spring Batchの入力として異なるデータ構造フォーマットの複数のファイル
- 4. 複数の異なる構造を返すRESTfulなエンドポイント?
- 5. 異なるデータ構造と複雑さ
- 6. Django:複数のアプリケーションを持つ構造体/プロジェクトの使い方
- 7. PL/RのR関数から複数の異なるデータ構造を返す
- 8. mysql - 構造が異なる複数のテーブルからデータを選択
- 9. 複数のファイルにまたがる構造
- 10. 異なる構造体内の構造体へのポインタ。 C
- 11. 異なるディレクトリ構造内のOriginから複数のブランチをフェッチする
- 12. 複数の.hファイルでtypedef構造体を使用
- 13. LDAP複数の構造オブジェクトクラス
- 14. 複数のエントリは、プロジェクト構造が
- 15. JavaScript/jQuery - 異なるデータ構造を持つ複数の配列を扱う
- 16. 異なるクエリの構造データ
- 17. 異なるプラットフォームのリポジトリ構造
- 18. 異なる構造のGitフォーク
- 19. SML異なる構造の共通タイプ
- 20. 構造体emberjsアプリケーションが異なるモジュラーアプリケーション
- 21. 構造化データ(schema.org) - 構造化データテストツールの複数のSiteNavigationElement
- 22. 複数のカテゴリを作る最良の方法アイテムデータベースの構造
- 23. サービスファブリック。構成が異なる複数のアプリケーションを展開する
- 24. ファイル名が異なる複数のファイルをエクスポートする
- 25. 異なるタイプの構造キャストを使用するUB?
- 26. 異なるDOM構造のfancyboxを使用する
- 27. jq:異なる構造の要素を選択する方法
- 28. 構造体のメンバである関数ポインタの使い方
- 29. ImageSlider(jQuery)の構造/構成が異なります
- 30. 構造体内の複数のブール値
SerDeを読み込むことができるかどうかは、ファイル形式によって異なります。あなたのファイル形式を説明できますか? JSON、CSV、ORC? –
私はjsonファイルを使用しています – Prakash
各ファイルからサンプルを共有してください(3行とします) –