J'ai un grand nombre de fichiers journaux contenant des lignes d'objet JSON stockées dans Amazon S3. Ces fichiers sont compressés en utilisant LZO.Amazon Athena même requête échoue parfois avec HIVE_CURSOR_ERROR
Le format utilise la partition Ruche comme ci-dessous
s3://bucket/logs/year=2017/month=01/day=01/log00_00.txt.lzo
La définition de la table est comme ci-dessous
CREATE EXTERNAL TABLE IF NOT EXISTS logs (
attr1 string,
attr2 string,
attr3 string,
)
PARTITIONED BY (
year string,
month string,
day string
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://bucket/logs/'
TBLPROPERTIES ('has_encrypted_data'='false');
Quand j'ai essayé d'exécuter la requête pour un mois comme celui-ci
SELECT COUNT(*) FROM logs WHERE year = '2017' AND month = '05';
la la requête échoue toujours
HIVE_CURSOR_ERROR: org.codehaus.jackson.JsonParseException:
Unexpected character ('c' (code 99)): expected a valid value
(number, String, array, object, 'true', 'false' or 'null') at
[Source: [email protected]; line: 1, column: 2]
J'ai essayé d'interroger pour plus petit nombre de données, à savoir dans un jour comme celui-ci
SELECT COUNT(*) FROM logs WHERE year = '2017' AND month = '05' AND day = '01'
Cette requête quelques fois échoue avec l'erreur comme ci-dessus, bien que la probabilité de succès est très élevé. Donc maintenant, quand je dois interroger pendant un mois, je dois itérer pour tous les jours dans le mois, puis relancer l'exécution pour le jour manqué.
Y at-il quelque chose que je peux faire pour résoudre ce problème? Ou est-ce un bug d'AWS Athena?