metabase-athena-driver icon indicating copy to clipboard operation
metabase-athena-driver copied to clipboard

Timestamp errors

Open djk opened this issue 5 years ago • 3 comments

I'm not sure if this is related to issue 38 so I thought I'd post a new one.

Full disclosure: I'm more of an Ops guy, I've started up a container of Metabase and included the Athena driver. I have a Glue Crawler that looks at an S3 RDS MySQL export (Parquet format) and then populates the Athena DB schema. This appears to be ok, however, when I try to explore tables in Metabase, a lot of them throw up an error:

[JDBC Driver]Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

Stacktrace shows:

25/04/2020 09:29:1304-25 08:29:13 ERROR middleware.catch-exceptions :: Error processing query: null
25/04/2020 09:29:13{:database_id 2,
25/04/2020 09:29:13 :started_at (t/zoned-date-time "2020-04-25T08:29:06.589055Z[GMT]"),
25/04/2020 09:29:13 :via
25/04/2020 09:29:13 [{:status :failed,
25/04/2020 09:29:13   :class java.sql.SQLException,
25/04/2020 09:29:13   :error "[JDBC Driver]Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]",
25/04/2020 09:29:13   :stacktrace
25/04/2020 09:29:13   ["java.sql/java.sql.Timestamp.valueOf(Unknown Source)"
25/04/2020 09:29:13    "com.simba.athena.athena.dataengine.AJBaseResultSet.getData(Unknown Source)"
25/04/2020 09:29:13    "com.simba.athena.jdbc.common.SForwardResultSet.getData(Unknown Source)"
25/04/2020 09:29:13    "com.simba.athena.jdbc.common.SForwardResultSet.getString(Unknown Source)"
25/04/2020 09:29:13    "com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:4189)"
25/04/2020 09:29:13    "--> driver.sql_jdbc.execute.legacy_impl$fn__72760$fn__72761.invoke(legacy_impl.clj:77)"
25/04/2020 09:29:13    "driver.sql_jdbc.execute$row_thunk$row_thunk_STAR___70724.invoke(execute.clj:348)"
25/04/2020 09:29:13    "query_processor.reducible$reducible_rows$reify__37968.reduce(reducible.clj:156)"
25/04/2020 09:29:13    "query_processor.context.default$default_reducef$fn__37866.invoke(default.clj:59)"
25/04/2020 09:29:13    "query_processor.context.default$default_reducef.invokeStatic(default.clj:58)"
25/04/2020 09:29:13    "query_processor.context.default$default_reducef.invoke(default.clj:49)"
25/04/2020 09:29:13    "query_processor.context$reducef.invokeStatic(context.clj:69)"
25/04/2020 09:29:13    "query_processor.context$reducef.invoke(context.clj:62)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf$respond_STAR___37870.invoke(default.clj:70)"
25/04/2020 09:29:13    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:392)"
25/04/2020 09:29:13    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:377)"
25/04/2020 09:29:13    "driver.sql_jdbc$fn__72711.invokeStatic(sql_jdbc.clj:50)"
25/04/2020 09:29:13    "driver.sql_jdbc$fn__72711.invoke(sql_jdbc.clj:48)"
25/04/2020 09:29:13    "driver.athena$fn__609.invokeStatic(athena.clj:273)"
25/04/2020 09:29:13    "driver.athena$fn__609.invoke(athena.clj:271)"
25/04/2020 09:29:13    "query_processor.context$executef.invokeStatic(context.clj:59)"
25/04/2020 09:29:13    "query_processor.context$executef.invoke(context.clj:48)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf.invokeStatic(default.clj:69)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf.invoke(default.clj:67)"
25/04/2020 09:29:13    "query_processor.context$runf.invokeStatic(context.clj:45)"
25/04/2020 09:29:13    "query_processor.context$runf.invoke(context.clj:39)"
25/04/2020 09:29:13    "query_processor.reducible$pivot.invokeStatic(reducible.clj:34)"
25/04/2020 09:29:13    "query_processor.reducible$pivot.invoke(reducible.clj:31)"
25/04/2020 09:29:13    "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__43003.invoke(mbql_to_native.clj:26)"
25/04/2020 09:29:13    "query_processor.middleware.check_features$check_features$fn__42317.invoke(check_features.clj:42)"
25/04/2020 09:29:13    "query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__43168.invoke(optimize_datetime_filters.clj:133)"
25/04/2020 09:29:13    "query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__47065.invoke(wrap_value_literals.clj:137)"
25/04/2020 09:29:13    "query_processor.middleware.annotate$add_column_info$fn__40946.invoke(annotate.clj:577)"
25/04/2020 09:29:13    "query_processor.middleware.permissions$check_query_permissions$fn__42192.invoke(permissions.clj:64)"
25/04/2020 09:29:13    "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__43667.invoke(pre_alias_aggregations.clj:40)"
25/04/2020 09:29:13    "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__42390.invoke(cumulative_aggregations.clj:61)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_joins$resolve_joins$fn__44199.invoke(resolve_joins.clj:183)"
25/04/2020 09:29:13    "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__39133.invoke(add_implicit_joins.clj:245)"
25/04/2020 09:29:13    "query_processor.middleware.limit$limit$fn__42989.invoke(limit.clj:38)"
25/04/2020 09:29:13    "query_processor.middleware.format_rows$format_rows$fn__42970.invoke(format_rows.clj:81)"
25/04/2020 09:29:13    "query_processor.middleware.desugar$desugar$fn__42456.invoke(desugar.clj:22)"
25/04/2020 09:29:13    "query_processor.middleware.binning$update_binning_strategy$fn__41490.invoke(binning.clj:229)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_fields$resolve_fields$fn__41998.invoke(resolve_fields.clj:24)"
25/04/2020 09:29:13    "query_processor.middleware.add_dimension_projections$add_remapping$fn__38669.invoke(add_dimension_projections.clj:272)"
25/04/2020 09:29:13    "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__38889.invoke(add_implicit_clauses.clj:147)"
25/04/2020 09:29:13    "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__39282.invoke(add_source_metadata.clj:105)"
25/04/2020 09:29:13    "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__43864.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)"
25/04/2020 09:29:13    "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__41131.invoke(auto_bucket_datetimes.clj:125)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__42045.invoke(resolve_source_table.clj:46)"
25/04/2020 09:29:13    "query_processor.middleware.parameters$substitute_parameters$fn__43649.invoke(parameters.clj:97)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__42097.invoke(resolve_referenced.clj:80)"
25/04/2020 09:29:13    "query_processor.middleware.expand_macros$expand_macros$fn__42712.invoke(expand_macros.clj:158)"
25/04/2020 09:29:13    "query_processor.middleware.add_timezone_info$add_timezone_info$fn__39313.invoke(add_timezone_info.clj:15)"
25/04/2020 09:29:13    "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__46949.invoke(splice_params_in_response.clj:32)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875$fn__43879.invoke(resolve_database_and_driver.clj:33)"
25/04/2020 09:29:13    "driver$do_with_driver.invokeStatic(driver.clj:61)"
25/04/2020 09:29:13    "driver$do_with_driver.invoke(driver.clj:57)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875.invoke(resolve_database_and_driver.clj:27)"
25/04/2020 09:29:13    "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__42918.invoke(fetch_source_query.clj:243)"
25/04/2020 09:29:13    "query_processor.middleware.store$initialize_store$fn__46958$fn__46959.invoke(store.clj:11)"
25/04/2020 09:29:13    "query_processor.store$do_with_store.invokeStatic(store.clj:46)"
25/04/2020 09:29:13    "query_processor.store$do_with_store.invoke(store.clj:40)"
25/04/2020 09:29:13    "query_processor.middleware.store$initialize_store$fn__46958.invoke(store.clj:10)"
25/04/2020 09:29:13    "query_processor.middleware.cache$maybe_return_cached_results$fn__41974.invoke(cache.clj:208)"
25/04/2020 09:29:13    "query_processor.middleware.validate$validate_query$fn__46967.invoke(validate.clj:10)"
25/04/2020 09:29:13    "query_processor.middleware.normalize_query$normalize$fn__43016.invoke(normalize_query.clj:22)"
25/04/2020 09:29:13    "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__39151.invoke(add_rows_truncated.clj:36)"
25/04/2020 09:29:13    "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__46934.invoke(results_metadata.clj:128)"
25/04/2020 09:29:13    "query_processor.middleware.constraints$add_default_userland_constraints$fn__42333.invoke(constraints.clj:42)"
25/04/2020 09:29:13    "query_processor.middleware.process_userland_query$process_userland_query$fn__43738.invoke(process_userland_query.clj:136)"
25/04/2020 09:29:13    "query_processor.middleware.catch_exceptions$catch_exceptions$fn__42276.invoke(catch_exceptions.clj:174)"
25/04/2020 09:29:13    "query_processor.reducible$async_qp$qp_STAR___37952$thunk__37953.invoke(reducible.clj:101)"
25/04/2020 09:29:13    "query_processor.reducible$async_qp$qp_STAR___37952.invoke(reducible.clj:107)"
25/04/2020 09:29:13    "query_processor.reducible$sync_qp$qp_STAR___37961$fn__37964.invoke(reducible.clj:133)"
25/04/2020 09:29:13    "query_processor.reducible$sync_qp$qp_STAR___37961.invoke(reducible.clj:132)"
25/04/2020 09:29:13    "query_processor$process_userland_query.invokeStatic(query_processor.clj:218)"
25/04/2020 09:29:13    "query_processor$process_userland_query.doInvoke(query_processor.clj:214)"
25/04/2020 09:29:13    "query_processor$fn__47133$process_query_and_save_execution_BANG___47142$fn__47145.invoke(query_processor.clj:233)"
25/04/2020 09:29:13    "query_processor$fn__47133$process_query_and_save_execution_BANG___47142.invoke(query_processor.clj:225)"
25/04/2020 09:29:13    "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186$fn__47189.invoke(query_processor.clj:245)"
25/04/2020 09:29:13    "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186.invoke(query_processor.clj:238)"
25/04/2020 09:29:13    "api.dataset$fn__50475$fn__50478.invoke(dataset.clj:52)"
25/04/2020 09:29:13    "query_processor.streaming$streaming_response_STAR_$fn__33990$fn__33991.invoke(streaming.clj:73)"
25/04/2020 09:29:13    "query_processor.streaming$streaming_response_STAR_$fn__33990.invoke(streaming.clj:72)"
25/04/2020 09:29:13    "async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)"
25/04/2020 09:29:13    "async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)"
25/04/2020 09:29:13    "async.streaming_response$do_f_async$fn__23079.invoke(streaming_response.clj:85)"],
25/04/2020 09:29:13   :state "HY000"}
25/04/2020 09:29:13  {:status :failed,
25/04/2020 09:29:13   :class clojure.lang.ExceptionInfo,
25/04/2020 09:29:13   :error "Error reducing result rows",
25/04/2020 09:29:13   :stacktrace
25/04/2020 09:29:13   ["--> query_processor.context.default$default_reducef$fn__37866.invoke(default.clj:61)"
25/04/2020 09:29:13    "query_processor.context.default$default_reducef.invokeStatic(default.clj:58)"
25/04/2020 09:29:13    "query_processor.context.default$default_reducef.invoke(default.clj:49)"
25/04/2020 09:29:13    "query_processor.context$reducef.invokeStatic(context.clj:69)"
25/04/2020 09:29:13    "query_processor.context$reducef.invoke(context.clj:62)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf$respond_STAR___37870.invoke(default.clj:70)"
25/04/2020 09:29:13    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:392)"
25/04/2020 09:29:13    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:377)"
25/04/2020 09:29:13    "driver.sql_jdbc$fn__72711.invokeStatic(sql_jdbc.clj:50)"
25/04/2020 09:29:13    "driver.sql_jdbc$fn__72711.invoke(sql_jdbc.clj:48)"
25/04/2020 09:29:13    "driver.athena$fn__609.invokeStatic(athena.clj:273)"
25/04/2020 09:29:13    "driver.athena$fn__609.invoke(athena.clj:271)"
25/04/2020 09:29:13    "query_processor.context$executef.invokeStatic(context.clj:59)"
25/04/2020 09:29:13    "query_processor.context$executef.invoke(context.clj:48)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf.invokeStatic(default.clj:69)"
25/04/2020 09:29:13    "query_processor.context.default$default_runf.invoke(default.clj:67)"
25/04/2020 09:29:13    "query_processor.context$runf.invokeStatic(context.clj:45)"
25/04/2020 09:29:13    "query_processor.context$runf.invoke(context.clj:39)"
25/04/2020 09:29:13    "query_processor.reducible$pivot.invokeStatic(reducible.clj:34)"
25/04/2020 09:29:13    "query_processor.reducible$pivot.invoke(reducible.clj:31)"
25/04/2020 09:29:13    "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__43003.invoke(mbql_to_native.clj:26)"
25/04/2020 09:29:13    "query_processor.middleware.check_features$check_features$fn__42317.invoke(check_features.clj:42)"
25/04/2020 09:29:13    "query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__43168.invoke(optimize_datetime_filters.clj:133)"
25/04/2020 09:29:13    "query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__47065.invoke(wrap_value_literals.clj:137)"
25/04/2020 09:29:13    "query_processor.middleware.annotate$add_column_info$fn__40946.invoke(annotate.clj:577)"
25/04/2020 09:29:13    "query_processor.middleware.permissions$check_query_permissions$fn__42192.invoke(permissions.clj:64)"
25/04/2020 09:29:13    "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__43667.invoke(pre_alias_aggregations.clj:40)"
25/04/2020 09:29:13    "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__42390.invoke(cumulative_aggregations.clj:61)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_joins$resolve_joins$fn__44199.invoke(resolve_joins.clj:183)"
25/04/2020 09:29:13    "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__39133.invoke(add_implicit_joins.clj:245)"
25/04/2020 09:29:13    "query_processor.middleware.limit$limit$fn__42989.invoke(limit.clj:38)"
25/04/2020 09:29:13    "query_processor.middleware.format_rows$format_rows$fn__42970.invoke(format_rows.clj:81)"
25/04/2020 09:29:13    "query_processor.middleware.desugar$desugar$fn__42456.invoke(desugar.clj:22)"
25/04/2020 09:29:13    "query_processor.middleware.binning$update_binning_strategy$fn__41490.invoke(binning.clj:229)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_fields$resolve_fields$fn__41998.invoke(resolve_fields.clj:24)"
25/04/2020 09:29:13    "query_processor.middleware.add_dimension_projections$add_remapping$fn__38669.invoke(add_dimension_projections.clj:272)"
25/04/2020 09:29:13    "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__38889.invoke(add_implicit_clauses.clj:147)"
25/04/2020 09:29:13    "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__39282.invoke(add_source_metadata.clj:105)"
25/04/2020 09:29:13    "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__43864.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)"
25/04/2020 09:29:13    "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__41131.invoke(auto_bucket_datetimes.clj:125)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__42045.invoke(resolve_source_table.clj:46)"
25/04/2020 09:29:13    "query_processor.middleware.parameters$substitute_parameters$fn__43649.invoke(parameters.clj:97)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__42097.invoke(resolve_referenced.clj:80)"
25/04/2020 09:29:13    "query_processor.middleware.expand_macros$expand_macros$fn__42712.invoke(expand_macros.clj:158)"
25/04/2020 09:29:13    "query_processor.middleware.add_timezone_info$add_timezone_info$fn__39313.invoke(add_timezone_info.clj:15)"
25/04/2020 09:29:13    "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__46949.invoke(splice_params_in_response.clj:32)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875$fn__43879.invoke(resolve_database_and_driver.clj:33)"
25/04/2020 09:29:13    "driver$do_with_driver.invokeStatic(driver.clj:61)"
25/04/2020 09:29:13    "driver$do_with_driver.invoke(driver.clj:57)"
25/04/2020 09:29:13    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875.invoke(resolve_database_and_driver.clj:27)"
25/04/2020 09:29:13    "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__42918.invoke(fetch_source_query.clj:243)"
25/04/2020 09:29:13    "query_processor.middleware.store$initialize_store$fn__46958$fn__46959.invoke(store.clj:11)"
25/04/2020 09:29:13    "query_processor.store$do_with_store.invokeStatic(store.clj:46)"
25/04/2020 09:29:13    "query_processor.store$do_with_store.invoke(store.clj:40)"
25/04/2020 09:29:13    "query_processor.middleware.store$initialize_store$fn__46958.invoke(store.clj:10)"
25/04/2020 09:29:13    "query_processor.middleware.cache$maybe_return_cached_results$fn__41974.invoke(cache.clj:208)"
25/04/2020 09:29:13    "query_processor.middleware.validate$validate_query$fn__46967.invoke(validate.clj:10)"
25/04/2020 09:29:13    "query_processor.middleware.normalize_query$normalize$fn__43016.invoke(normalize_query.clj:22)"
25/04/2020 09:29:13    "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__39151.invoke(add_rows_truncated.clj:36)"
25/04/2020 09:29:13    "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__46934.invoke(results_metadata.clj:128)"
25/04/2020 09:29:13    "query_processor.middleware.constraints$add_default_userland_constraints$fn__42333.invoke(constraints.clj:42)"
25/04/2020 09:29:13    "query_processor.middleware.process_userland_query$process_userland_query$fn__43738.invoke(process_userland_query.clj:136)"
25/04/2020 09:29:13    "query_processor.middleware.catch_exceptions$catch_exceptions$fn__42276.invoke(catch_exceptions.clj:174)"
25/04/2020 09:29:13    "query_processor.reducible$async_qp$qp_STAR___37952$thunk__37953.invoke(reducible.clj:101)"
25/04/2020 09:29:13    "query_processor.reducible$async_qp$qp_STAR___37952.invoke(reducible.clj:107)"
25/04/2020 09:29:13    "query_processor.reducible$sync_qp$qp_STAR___37961$fn__37964.invoke(reducible.clj:133)"
25/04/2020 09:29:13    "query_processor.reducible$sync_qp$qp_STAR___37961.invoke(reducible.clj:132)"
25/04/2020 09:29:13    "query_processor$process_userland_query.invokeStatic(query_processor.clj:218)"
25/04/2020 09:29:13    "query_processor$process_userland_query.doInvoke(query_processor.clj:214)"
25/04/2020 09:29:13    "query_processor$fn__47133$process_query_and_save_execution_BANG___47142$fn__47145.invoke(query_processor.clj:233)"
25/04/2020 09:29:13    "query_processor$fn__47133$process_query_and_save_execution_BANG___47142.invoke(query_processor.clj:225)"
25/04/2020 09:29:13    "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186$fn__47189.invoke(query_processor.clj:245)"
25/04/2020 09:29:13    "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186.invoke(query_processor.clj:238)"
25/04/2020 09:29:13    "api.dataset$fn__50475$fn__50478.invoke(dataset.clj:52)"
25/04/2020 09:29:13    "query_processor.streaming$streaming_response_STAR_$fn__33990$fn__33991.invoke(streaming.clj:73)"
25/04/2020 09:29:13    "query_processor.streaming$streaming_response_STAR_$fn__33990.invoke(streaming.clj:72)"
25/04/2020 09:29:13    "async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)"
25/04/2020 09:29:13    "async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)"
25/04/2020 09:29:13    "async.streaming_response$do_f_async$fn__23079.invoke(streaming_response.clj:85)"],
25/04/2020 09:29:13   :error_type :qp,
25/04/2020 09:29:13   :ex-data {:type :qp}}],
25/04/2020 09:29:13 :error_type :qp,
25/04/2020 09:29:13 :json_query {:database 2, :query {:source-table 42}, :type "query", :parameters [], :middleware {:add-default-userland-constraints? true}},
25/04/2020 09:29:13 :native
25/04/2020 09:29:13 {:query
25/04/2020 09:29:13  "SELECT \"db\".\"activity_log\".\"id\" AS \"id\", \"db\".\"activity_log\".\"causer_id\" AS \"causer_id\", \"db\".\"activity_log\".\"causer_type\" AS \"causer_type\", \"db\".\"activity_log\".\"created_at\" AS \"created_at\", \"db\".\"activity_log\".\"description\" AS \"description\", \"db\".\"activity_log\".\"log_name\" AS \"log_name\", \"db\".\"activity_log\".\"properties\" AS \"properties\", \"db\".\"activity_log\".\"subject_id\" AS \"subject_id\", \"db\".\"activity_log\".\"subject_type\" AS \"subject_type\", \"db\".\"activity_log\".\"updated_at\" AS \"updated_at\" FROM \"db\".\"activity_log\" LIMIT 2000",
25/04/2020 09:29:13  :params nil},
25/04/2020 09:29:13 :status :failed,
25/04/2020 09:29:13 :class java.lang.IllegalArgumentException,
25/04/2020 09:29:13 :stacktrace
25/04/2020 09:29:13 ["java.sql/java.sql.Timestamp.valueOf(Unknown Source)"
25/04/2020 09:29:13  "com.simba.athena.athena.dataengine.AJBaseResultSet.getData(Unknown Source)"
25/04/2020 09:29:13  "com.simba.athena.jdbc.common.SForwardResultSet.getData(Unknown Source)"
25/04/2020 09:29:13  "com.simba.athena.jdbc.common.SForwardResultSet.getString(Unknown Source)"
25/04/2020 09:29:13  "com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:4189)"
25/04/2020 09:29:13  "--> driver.sql_jdbc.execute.legacy_impl$fn__72760$fn__72761.invoke(legacy_impl.clj:77)"
25/04/2020 09:29:13  "driver.sql_jdbc.execute$row_thunk$row_thunk_STAR___70724.invoke(execute.clj:348)"
25/04/2020 09:29:13  "query_processor.reducible$reducible_rows$reify__37968.reduce(reducible.clj:156)"
25/04/2020 09:29:13  "query_processor.context.default$default_reducef$fn__37866.invoke(default.clj:59)"
25/04/2020 09:29:13  "query_processor.context.default$default_reducef.invokeStatic(default.clj:58)"
25/04/2020 09:29:13  "query_processor.context.default$default_reducef.invoke(default.clj:49)"
25/04/2020 09:29:13  "query_processor.context$reducef.invokeStatic(context.clj:69)"
25/04/2020 09:29:13  "query_processor.context$reducef.invoke(context.clj:62)"
25/04/2020 09:29:13  "query_processor.context.default$default_runf$respond_STAR___37870.invoke(default.clj:70)"
25/04/2020 09:29:13  "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:392)"
25/04/2020 09:29:13  "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:377)"
25/04/2020 09:29:13  "driver.sql_jdbc$fn__72711.invokeStatic(sql_jdbc.clj:50)"
25/04/2020 09:29:13  "driver.sql_jdbc$fn__72711.invoke(sql_jdbc.clj:48)"
25/04/2020 09:29:13  "driver.athena$fn__609.invokeStatic(athena.clj:273)"
25/04/2020 09:29:13  "driver.athena$fn__609.invoke(athena.clj:271)"
25/04/2020 09:29:13  "query_processor.context$executef.invokeStatic(context.clj:59)"
25/04/2020 09:29:13  "query_processor.context$executef.invoke(context.clj:48)"
25/04/2020 09:29:13  "query_processor.context.default$default_runf.invokeStatic(default.clj:69)"
25/04/2020 09:29:13  "query_processor.context.default$default_runf.invoke(default.clj:67)"
25/04/2020 09:29:13  "query_processor.context$runf.invokeStatic(context.clj:45)"
25/04/2020 09:29:13  "query_processor.context$runf.invoke(context.clj:39)"
25/04/2020 09:29:13  "query_processor.reducible$pivot.invokeStatic(reducible.clj:34)"
25/04/2020 09:29:13  "query_processor.reducible$pivot.invoke(reducible.clj:31)"
25/04/2020 09:29:13  "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__43003.invoke(mbql_to_native.clj:26)"
25/04/2020 09:29:13  "query_processor.middleware.check_features$check_features$fn__42317.invoke(check_features.clj:42)"
25/04/2020 09:29:13  "query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__43168.invoke(optimize_datetime_filters.clj:133)"
25/04/2020 09:29:13  "query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__47065.invoke(wrap_value_literals.clj:137)"
25/04/2020 09:29:13  "query_processor.middleware.annotate$add_column_info$fn__40946.invoke(annotate.clj:577)"
25/04/2020 09:29:13  "query_processor.middleware.permissions$check_query_permissions$fn__42192.invoke(permissions.clj:64)"
25/04/2020 09:29:13  "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__43667.invoke(pre_alias_aggregations.clj:40)"
25/04/2020 09:29:13  "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__42390.invoke(cumulative_aggregations.clj:61)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_joins$resolve_joins$fn__44199.invoke(resolve_joins.clj:183)"
25/04/2020 09:29:13  "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__39133.invoke(add_implicit_joins.clj:245)"
25/04/2020 09:29:13  "query_processor.middleware.limit$limit$fn__42989.invoke(limit.clj:38)"
25/04/2020 09:29:13  "query_processor.middleware.format_rows$format_rows$fn__42970.invoke(format_rows.clj:81)"
25/04/2020 09:29:13  "query_processor.middleware.desugar$desugar$fn__42456.invoke(desugar.clj:22)"
25/04/2020 09:29:13  "query_processor.middleware.binning$update_binning_strategy$fn__41490.invoke(binning.clj:229)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_fields$resolve_fields$fn__41998.invoke(resolve_fields.clj:24)"
25/04/2020 09:29:13  "query_processor.middleware.add_dimension_projections$add_remapping$fn__38669.invoke(add_dimension_projections.clj:272)"
25/04/2020 09:29:13  "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__38889.invoke(add_implicit_clauses.clj:147)"
25/04/2020 09:29:13  "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__39282.invoke(add_source_metadata.clj:105)"
25/04/2020 09:29:13  "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__43864.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)"
25/04/2020 09:29:13  "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__41131.invoke(auto_bucket_datetimes.clj:125)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__42045.invoke(resolve_source_table.clj:46)"
25/04/2020 09:29:13  "query_processor.middleware.parameters$substitute_parameters$fn__43649.invoke(parameters.clj:97)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__42097.invoke(resolve_referenced.clj:80)"
25/04/2020 09:29:13  "query_processor.middleware.expand_macros$expand_macros$fn__42712.invoke(expand_macros.clj:158)"
25/04/2020 09:29:13  "query_processor.middleware.add_timezone_info$add_timezone_info$fn__39313.invoke(add_timezone_info.clj:15)"
25/04/2020 09:29:13  "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__46949.invoke(splice_params_in_response.clj:32)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875$fn__43879.invoke(resolve_database_and_driver.clj:33)"
25/04/2020 09:29:13  "driver$do_with_driver.invokeStatic(driver.clj:61)"
25/04/2020 09:29:13  "driver$do_with_driver.invoke(driver.clj:57)"
25/04/2020 09:29:13  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875.invoke(resolve_database_and_driver.clj:27)"
25/04/2020 09:29:13  "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__42918.invoke(fetch_source_query.clj:243)"
25/04/2020 09:29:13  "query_processor.middleware.store$initialize_store$fn__46958$fn__46959.invoke(store.clj:11)"
25/04/2020 09:29:13  "query_processor.store$do_with_store.invokeStatic(store.clj:46)"
25/04/2020 09:29:13  "query_processor.store$do_with_store.invoke(store.clj:40)"
25/04/2020 09:29:13  "query_processor.middleware.store$initialize_store$fn__46958.invoke(store.clj:10)"
25/04/2020 09:29:13  "query_processor.middleware.cache$maybe_return_cached_results$fn__41974.invoke(cache.clj:208)"
25/04/2020 09:29:13  "query_processor.middleware.validate$validate_query$fn__46967.invoke(validate.clj:10)"
25/04/2020 09:29:13  "query_processor.middleware.normalize_query$normalize$fn__43016.invoke(normalize_query.clj:22)"
25/04/2020 09:29:13  "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__39151.invoke(add_rows_truncated.clj:36)"
25/04/2020 09:29:13  "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__46934.invoke(results_metadata.clj:128)"
25/04/2020 09:29:13  "query_processor.middleware.constraints$add_default_userland_constraints$fn__42333.invoke(constraints.clj:42)"
25/04/2020 09:29:13  "query_processor.middleware.process_userland_query$process_userland_query$fn__43738.invoke(process_userland_query.clj:136)"
25/04/2020 09:29:13  "query_processor.middleware.catch_exceptions$catch_exceptions$fn__42276.invoke(catch_exceptions.clj:174)"
25/04/2020 09:29:13  "query_processor.reducible$async_qp$qp_STAR___37952$thunk__37953.invoke(reducible.clj:101)"
25/04/2020 09:29:13  "query_processor.reducible$async_qp$qp_STAR___37952.invoke(reducible.clj:107)"
25/04/2020 09:29:13  "query_processor.reducible$sync_qp$qp_STAR___37961$fn__37964.invoke(reducible.clj:133)"
25/04/2020 09:29:13  "query_processor.reducible$sync_qp$qp_STAR___37961.invoke(reducible.clj:132)"
25/04/2020 09:29:13  "query_processor$process_userland_query.invokeStatic(query_processor.clj:218)"
25/04/2020 09:29:13  "query_processor$process_userland_query.doInvoke(query_processor.clj:214)"
25/04/2020 09:29:13  "query_processor$fn__47133$process_query_and_save_execution_BANG___47142$fn__47145.invoke(query_processor.clj:233)"
25/04/2020 09:29:13  "query_processor$fn__47133$process_query_and_save_execution_BANG___47142.invoke(query_processor.clj:225)"
25/04/2020 09:29:13  "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186$fn__47189.invoke(query_processor.clj:245)"
25/04/2020 09:29:13  "query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186.invoke(query_processor.clj:238)"
25/04/2020 09:29:13  "api.dataset$fn__50475$fn__50478.invoke(dataset.clj:52)"
25/04/2020 09:29:13  "query_processor.streaming$streaming_response_STAR_$fn__33990$fn__33991.invoke(streaming.clj:73)"
25/04/2020 09:29:13  "query_processor.streaming$streaming_response_STAR_$fn__33990.invoke(streaming.clj:72)"
25/04/2020 09:29:13  "async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)"
25/04/2020 09:29:13  "async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)"
25/04/2020 09:29:13  "async.streaming_response$do_f_async$fn__23079.invoke(streaming_response.clj:85)"],
25/04/2020 09:29:13 :context :ad-hoc,
25/04/2020 09:29:13 :error "[JDBC Driver]Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]",
25/04/2020 09:29:13 :row_count 0,
25/04/2020 09:29:13 :running_time 0,
25/04/2020 09:29:13 :preprocessed
25/04/2020 09:29:13 {:database 2,
25/04/2020 09:29:13  :query
25/04/2020 09:29:13  {:source-table 42,
25/04/2020 09:29:13   :fields
25/04/2020 09:29:13   [[:field-id 354]
25/04/2020 09:29:13    [:field-id 351]
25/04/2020 09:29:13    [:field-id 350]
25/04/2020 09:29:13    [:datetime-field [:field-id 353] :default]
25/04/2020 09:29:13    [:field-id 356]
25/04/2020 09:29:13    [:field-id 352]
25/04/2020 09:29:13    [:field-id 358]
25/04/2020 09:29:13    [:field-id 349]
25/04/2020 09:29:13    [:field-id 357]
25/04/2020 09:29:13    [:datetime-field [:field-id 355] :default]],
25/04/2020 09:29:13   :limit 2000},
25/04/2020 09:29:13  :type :query,
25/04/2020 09:29:13  :middleware {:add-default-userland-constraints? true},
25/04/2020 09:29:13  :info
25/04/2020 09:29:13  {:executed-by 1,
25/04/2020 09:29:13   :context :ad-hoc,
25/04/2020 09:29:13   :nested? false,
25/04/2020 09:29:13   :query-hash [27, -74, 84, 30, 15, -57, -13, 8, 52, -93, 59, 102, -33, -115, 90, -20, 92, -57, 68, -60, 126, 104, 91, -84, 113, -107, -110, -49, -39, 66, -89, 95]},
25/04/2020 09:29:13  :constraints {:max-results 10000, :max-results-bare-rows 2000}},
25/04/2020 09:29:13 :data {:rows [], :cols []}}
25/04/2020 09:29:13
25/04/2020 09:29:1304-25 08:29:13 DEBUG middleware.log :: POST /api/dataset 202 [ASYNC: completed] 7.3 s (11 DB calls) App DB connections: 0/7 Jetty threads: 2/50 (5 idle, 0 queued) (91 total active threads) Queries in flight: 1 (0 queued)

I've confirmed with the devs that the date/timestamp fields are datetime and Glue correctly picks this up (as timestamp), and in Metabase they're showing as "DateTime".

Apologies if this is actually more a Metabase issue than this driver but I'm going from the first few lines of the stacktrace that mention Athena and hopefully not adding 2+2 together and getting 5.

Appreciate any help and thanks for writing this driver!

djk avatar Apr 25 '20 08:04 djk

Hi @djk - do you know if you can successfully query the table from Athena? Will try to take a look this weekend, but it looks like the time stamp fields are in a bit of a funky format. Glue is a little more flexible with detecting the types, so it would be helpful to know if it works in Athena directly or not.

dacort avatar Apr 25 '20 16:04 dacort

Hi @dacort, thanks for getting back so quickly

I just did a query on one of the tables in Athena and the created_at and updated_at columns timestamps appear as +52124-03-12 12:26:40.000, for example. Clearly that isn't right...

I've no real experience with Glue or Athena to be honest but the timestamp is ok in the MySQL database ~and the Parquet export~. I'll try and look into what the Glue crawler might be doing to this but if you have any suggestions then please let me know!

Thanks again.

djk avatar Apr 27 '20 08:04 djk

Just looked into this a bit more and I think I have found the issue... looks like the RDS export is doing something:

          {
            "columnName": "created_at",
            "originalType": "timestamp",
            "expectedExportedType": "int64 (TIMESTAMP_MICRO)"
          },
          {
            "columnName": "updated_at",
            "originalType": "timestamp",
            "expectedExportedType": "int64 (TIMESTAMP_MICRO)"
          }

I noticed in the Parquet file (got a viewer to explore it) the timestamp data is unix time but it had 6 extra zeroes.

In the table here it says it uses TIMESTAMP_MICROS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.html#USER_ExportSnapshot.data-types.MySQL

I guess the issue then is that the Parquet export is adding trailing zeroes to the unix timestamp for microseconds when it converts and Metabase or the driver can't handle that, I am not sure which it is!

djk avatar Apr 27 '20 09:04 djk

Closing as part of cleanup now that Athena is officially supported by Metabase. Any future issues can be asked about on their forum or with a detailed bug report.

dacort avatar Dec 08 '22 17:12 dacort