neo4j-admin
工具可以从CSV导入数据。其中一个选项是:--normalize-types[=<true/false>]
确定是否将属性类型规范化为Cypher类型,例如int
变成long
,float
变成double
。
默认值:true
如果我没有显式地设置--normalize-types=false
,那么neo4j-admin
工具会生成如下消息:
Property type of 'foo' normalized from 'int' --> 'long' in /path/to/my-nodes.csv
我的数据库有数十亿个属性,所以如果可能的话,我想节省保存空间(和RAM)。我知道整数属性适合32位,浮点属性不需要64位精度。(有关每个属性类型的位宽,请参见this reference。)
规范化类型与不正常?
例如,较窄的类型实际上是否节省了保存空间/RAM?它们是否与Cypher查询不兼容?
1条答案
按热度按时间kq0g1dla1#
我看到commit添加了对规范化类型的支持,它有这样的注解:
导入器规范化属性类型以匹配Cypher
这实际上意味着一个类型,在一些.csv头中指定,说明某个属性应该是例如。“short”将被导入为“long”类型。基本上所有的整数类型都将被导入并存储为long,浮点类型将被导入并存储为double。
这将是默认行为,但可以通过提供“--normalize-types=false”来覆盖特定场景。
我认为这意味着如果你不规范化类型,那么任何未规范化的数据类型都必须在使用Cypher时转换为规范化类型。因此,即使您可以保存存储空间,您的Cypher查询也会变慢。
你可能想用两种方式来测试它,看看这是否是真的(并让我们知道)。