0

AWS グルーでデータベースの外部スキーマを作成しました。テーブルの一覧は表示されますが、json データを調べることができません。redshift はこのエラーをスローします。

[Amazon](500310) Invalid operation: S3 Query Exception (Fetch)
Details: 
 -----------------------------------------------
  error:  S3 Query Exception (Fetch)
  code:      15001
  context:   Task failed due to an internal error. Error occured during Ion/JSON extractor match: IERR_INVALID_SYNTAX

  query:     250284
  location:  dory_util.cpp:717
  process:   query2_124_250284 [pid=12336]
  -----------------------------------------------;
1 statement failed.

外部テーブルを作成したくないのは、aws グルーでデータ カタログ内の外部テーブルを組み合わせたビューを作成するためです。

ただの更新:

データカタログにテーブルを作成する際に、aws グルークローラーを使用しました。それらはjson形式です。このデータを redshift にアップロードするジョブを使用すると、それらは redshift テーブルにフラット ファイル (配列を除く) としてロードされます。

json データの例:

{
  "array": [
    1,
    2,
    3
  ],
  "boolean": true,
  "null": null,
  "number": 123,
  "object": {
    "a": "b",
    "c": "d",
    "e": "f"
  },
  "string": "Hello World"
}

aws グルーのジョブを使用してそれらをアップロードすると、出力は次のようになります (テーブルとして)

画像を見る

現在、膨大な量のテーブルがデータ カタログでクロールされています。このテーブルの個々のスクリプトを作成するのに苦労しているため、Amazon Redshift Spectrum 外部スキーマが役立つ可能性があります。

ただし、外部スキーマで外部テーブルをクエリすると、上記のエラーが発生します。データ カタログの外部テーブルが csv として読み込まれている場合、問題は発生しませんが、redshift スペクトルで読み取る必要がある形式のファイルは json である必要があります。

ジョブを使用してロードされたときに、外部テーブルを同じ形式の赤方偏移スペクトルで表示することは可能ですか?

4

1 に答える 1