4

selectObjectContent関数を使用して AWS S3 から特定のレコードをフェッチしようとすると、OverMaxRecordSize: The character number in one record is more than our max threshold, maxCharsPerRecord: 1,048,576というエラーが表示されます。

10 個のレコードをフェッチしている場合は機能しますが、そのうちの 1 つをフェッチしようとすると、上記のエラーがスローされます。

AWS ドキュメントのエラーの理由を見ることができるように、「入力または結果のレコードの長さが 1 MB の maxCharsPerRecord を超えています。」

私のデータは位置データであり、そのサイズは 1 MB を超える可能性があるため、解決策または回避策を提案してください。

例えば:

作業中: select * from s3object s limit 10;

動作していません: select * from s3object s where id = '22'

私のパラメータは次のとおりです。

const params = {
      Key: 'locationdata2020.csv.gz',
      ExpressionType: 'SQL',
      Expression: `select * from s3object  s where id = '22';`,
      InputSerialization: {
        CSV: {
          FileHeaderInfo: 'USE',
          RecordDelimiter: '\n',
          FieldDelimiter: ','
        },
        CompressionType: 'GZIP'
      },
      OutputSerialization: {
        JSON: {
          RecordDelimiter: ','
        }

      }
    };
4

1 に答える 1

1

残念ながら、これは AWS ソリューションの制限です。同様の問題が発生し、最初にデータをバッチ処理し、いくつかの集計を別のバケットに保存してから、 を使用してクエリを実行しSelectObjectContentました。

于 2020-05-22T08:51:40.207 に答える