【问题标题】:Load array data to neo4j from snowflake从雪花加载数组数据到neo4j
【发布时间】: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?

【问题讨论】:

    标签: arrays jdbc neo4j snowflake-cloud-data-platform neo4j-apoc


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2022-12-06
      • 1970-01-01
      • 2021-04-12
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多