当前位置: 首页 > 知识库问答 >
问题:

将时间戳格式从avro复制到redshift

艾奕
2023-03-14

我正试图使用copy命令将avro文件复制到红移。该文件具有以下类型的列:

{'name':'timestamp','type':['null',{'logic type':'timestamp-millis','type':'long'}]}],

COPY table_name 
from 'fil_path.avro' 
iam_role 'the_role' 
FORMAT AS avro 'auto' 

原始字段值:1581306474335

无效的时间戳格式或值[YYYY-MM-DD hh24:mi:ssof]

但是,如果我添加以下一行,它就可以工作了:

timeformat 'epochmillisecs'

共有1个答案

金瑞
2023-03-14

首先,关于时间格式:

正如Docs所述:

COPY命令尝试将源数据中的字符串隐式转换为目标列的数据类型。如果需要指定不同于默认行为的转换,或者如果默认转换导致错误,则可以通过指定以下参数来管理数据转换。

    null

第二个解决方案:

  1. 您不需要将timeformat传递给copy命令,但是您可以将epochtime作为varchartext插入临时表中。
  2. 然后,在将分段表中的epochtime插入到架构表中时,将其转换为:timestamp'epoch'+epoch_time/1000*interval'1 second'为time

其次,关于日期字段:

    null
    null
  • 因此,天数将是架构表中有效的日期
 类似资料:
  • 我的目标是使用不同的主键将行从一个Cassandra2.0表移动到另一个表。为了确保数据的一致性,我需要用原始的时间戳插入它们()。我计划使用/复制,或者只使用和从CSV自定义导入。 是否有方法复制带有时间戳的行?在TimeUUID列上不起作用,说明“不正确的复制命令”。 提前谢了。

  • 问题内容: 我有一个mysql查询,其中的列CreationDate的格式为“时间戳”。例子: 我想让sql查询以这种方式设置格式(12hr格式,秒): 我想在sql级别而不是php或.js等处处理此问题。 询问: 问题答案: 您将要使用: MySQL文档将显示您将使用哪些说明符来获取所需的格式(请参见SQL Demo )。 如果要保留秒数,则将使用:

  • 本文向大家介绍php格式化时间戳,包括了php格式化时间戳的使用技巧和注意事项,需要的朋友参考一下 CMS中一般显示时间比较新的文章需要显示几分钟前,几天前这样,但是一般数据库里面记录的都是时间戳(至少我习惯这样),所以就需要一个转化的过程,根据网上的资料加上自己的修改整理封装了两段代码 下面是封装好的方法 或者 更详细的 再分享一个类似的

  • 我尝试了几乎所有的解决方案,但仍然是同一个问题。我在S3中有一个CSV文件,在红移中有一个表。 表结构如下: CSV文件包含以下数据: 当我在RedShift中运行COPY commnad时,它给出了一个错误,时间戳格式或值[YYYY-MM-DD HH:MI:SS],我几乎尝试了RedShift中的所有时间日期格式,但仍然卡住了。复制命令如下: 注意:我以CSV格式从MySQL导出了我的表,并且添

  • 问题内容: 我想将时间戳2011-03-10T11:54:30.207Z转换为10/03/2011 11:54:30.207。我怎样才能做到这一点?我想将ISO8601格式转换为UTC,然后UTC应该可以识别位置。请帮忙 异常:java.text.ParseException:无法解析的日期:“ 2011-03-10T11:54:30.207Z” 问题答案: 首先,您需要意识到,UTC实际上不是时

  • 问题内容: 有没有一种方法可以将UTC时间格式化为我想要的Java中任意字符串格式?基本上,我在考虑让某个类使用时间戳,然后传递它是字符串,告诉它如何格式化,然后它为我返回格式化的字符串。有没有办法做到这一点? 问题答案: java.text.SimpleDateFormat类以对语言环境敏感的方式提供日期的格式设置和解析。 SimpleDateFormat的javadoc标头是详细信息的很好来源