从雪花加载数组数据到neo4j
Posted
技术标签:
【中文标题】从雪花加载数组数据到neo4j【英文标题】:Load array data to neo4j from snowflake 【发布时间】:2021-12-01 13:38:53 【问题描述】:我一直在尝试将数组列数据从雪花加载到 neo4j,但它被加载为字符串而不是数组。
我正在使用 apoc.load.jdbc 命令连接雪花并尝试检索数组列。
WITH "jdbc:snowflake://xxxx.xxxx.xxxx.com:xxx/?user=xxxxxxxxxxx&password=xxxxxxxxxxx&db=xxxx&warehouse=xxxx&schema=xxxx" as url CALL apoc.load.jdbc(url,"select array_column from TABLE') YIELD row create (c:arraytest) set c=row
Neo4j 输出:
(:arraytest array_column: "[
\"55232d8cac\"
]")
我想加载为数组而不是像下面这样的字符串:
(:arraytest array_column: ["55232d8cac"])
有没有办法像上面提到的那样将数组作为数组加载到neo4j?
【问题讨论】:
【参考方案1】:Snowflake JDBC 驱动不支持 getArray 方法:
https://github.com/snowflakedb/snowflake-jdbc/blob/520584ee0ee77888319f39dbd75aaec3a8c393e3/src/main/java/net/snowflake/client/jdbc/SnowflakeBaseResultSet.java#L1314
您可以使用 to_varchar() 函数将数组作为字符串获取,并使用 Neo4J 中的某些内容将其解析为数组:
create temp table T1 (A array);
insert into T1 select array_construct(1, 2, 3);
select to_varchar(A) from T1; -- Returns [1,2,3] in string form
【讨论】:
以上是关于从雪花加载数组数据到neo4j的主要内容,如果未能解决你的问题,请参考以下文章