【问题标题】:Create.io Order of column when creating a tableCreate.io 创建表时的列顺序
【发布时间】:2019-05-13 07:06:17
【问题描述】:

我在 Windows Server 2012 下运行 CrateDb 版本 3.2.7。我创建了一个这样的表:

创建表test3(firstcolumn bigint 主键,secondcolumn int,thirdcolumn timestamp,fourthcolumn double,fifthcolumn double,sixtcolumn smallint,seventhcolumn double,heightcolumn int,ninthcolumn smallint,tenthcolumn smallint)聚集成12个分片(number_of_replicas = 0,refresh_interval =0);

所以我希望第一列是第一列,依此类推。但创建后,当我执行 SELECT * FROM test3 时,我得到以下结果:

似乎返回的第一列是“第五”列看起来是按字母顺序返回的。

这是否意味着 CrateDB 以该顺序创建列?它是否将订单保留在某个地方?如果列是按字母顺序排列的,这是否意味着如果我想将数据从另一个 dbms 复制到 CrateDB,那么我必须按字母顺序导出数据?

【问题讨论】:

    标签: database-migration crate cratedb


    【解决方案1】:

    对于插入不一定,只有当它们被省略时,它们才必须按字母顺序排列see here。订单本身似乎并没有被“保留”在任何地方。

    COPY FROM 是一种不同的导入策略,而不是旧的 INSERT 会做的事情。我建议编写一个命令行应用程序将数据导入 cratedb。 COPY FROM 不进行任何类型检查,也不强制转换类型,并且始终按照源文件 (see here) 中的数据导入数据。从您的另一个问题中,我看到您可能有与 gps 相关的数据(?),您需要手动将它们映射到 GEO_POINT 类型,就像 1 个示例一样。

    Crate 通过bulk endpoint 提供了良好的性能(无论对你或我来说意味着什么)

    【讨论】:

    • 您了解批量端点吗?您知道如何将列的“NULL”值传递给批量端点吗?我可以批量插入数据,但只有当数据不为空时,当我指定 NULL 时它会失败。
    • probs 不是询问的最佳位置,但只需在参数所在的位置传递 null 即可。 "bulk_args":[[null,"2019-4-15"],["2019-4-15","2019-4-15"]]}。
    • 谢谢 :-) 我还是联系了支持人员,我会看看他们的回答,如果不同,我会在这里发布
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2022-06-24
    • 2022-12-18
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多