更新日志

本页面包含 Neo4j Graph Analytics for Snowflake 的原始更新日志。

更新日志

1.0.28

新增

变更

修复

1.0.27

新增

  • 新增对最大流算法 maxflow 的支持。

  • 新增对云区域 Azure Switzerland North (Zurich), AZURE_SWITZERLANDN 的支持。

  • 新增对云区域 Azure Sweden Central (Gävle), AZURE_SWEDENCENTRAL 的支持。

  • 新增对云区域 GCP US Central 1 (Iowa), GCP_US_CENTRAL1 的支持。

  • 新增对云区域 GCP US East 4 (N. Virginia), GCP_US_EAST4 的支持。

变更

修复

1.0.26

新增

  • 新增对 Yen’s k-最短路径算法 yens 的支持。

  • 改进项目配置的验证,拒绝空的节点和关系表参数。

变更

修复

1.0.25

新增

  • 新增对云区域 AWS EU Central 2 (Zurich), AWS_EU_CENTRAL_2 的支持。

  • 新增对云区域 Azure Korea Central (Seoul), AZURE_KOREACENTRAL 的支持。

变更

修复

1.0.24

新增

  • 新增对云区域 AWS Asia Pacific (Seoul), AWS_AP_NORTHEAST_2 的支持。

变更

修复

  • 修复了将算法结果添加到语义视图时,若引用了视图中未包含的节点表可能导致失败的问题。

  • 增强了 _CREATE_VIEW 调用的安全性,将视图创建限制在配置的工作模式 (working schema) 内。

1.0.23

新增

  • 新增对 Article Rank 算法 article_rank 的支持。

  • 新增对多个云区域的支持:

    • GCP

      • Europe West 2 (London), GCP_EUROPE_WEST2

      • Europe West 3 (Frankfurt), GCP_EUROPE_WEST3

      • Europe West 4 (Netherlands), GCP_EUROPE_WEST4

    • Azure

      • UK South (London), AZURE_UKSOUTH

      • Central US (Iowa), AZURE_CENTRALUS

      • Canada Central (Toronto), AZURE_CANADACENTRAL

      • East US (Virginia), AZURE_EASTUS

      • South Central US (Texas), AZURE_SOUTHCENTRALUS

    • AWS

      • EU (Paris), AWS_EU_WEST_3

变更

  • Node Classification GraphSAGE 的预测阶段不再要求存在对应于训练阶段数据布局的 targetProperty 列;该列现为可选(且通常在预测期间被忽略)。

修复

1.0.22

新增

  • Agent 可以从配置中指定的源表推断出所需的视图。

  • Agent 现在可以在工作模式中创建视图,以将源数据转换为算法调用所需的格式。

  • 语义视图现在包含关于输入视图、结果视图、其列以及输入与结果之间关系的元数据。

变更

  • 更新了 CREATE_AGENT 调用的 API:用户现在指定 source_schemaworking_schema,而不是 default_table_prefix

  • 移除了几个已弃用的 Agent 过程。

修复

1.0.21

新增

变更

修复

  • 修复了应用程序升级时 Agent 及其工具和过程被销毁的问题。

1.0.20

新增

  • 支持 GPU 计算池 GPU_GCP_NV_L4_1_24G,适用于所有当前 GCP 区域。

  • 应用程序现可在更多区域使用:

    • AWS Asia Pacific (Singapore)

    • Azure Southeast Asia (Singapore)

    • GCP Middle East Central 2 (Dammam)

  • 为写配置中的输出表添加了权限验证。

变更

修复

1.0.19

新增

  • 为 GraphSage 和 FastPath 算法添加了作业结果中的投影和写回信息。

  • 添加了实验性自然语言接口,通过与 Cortex Agents 集成实现。该功能目前按需提供,请联系 graph-analytics-snowflake@neo4j.com 以启用该功能。

变更

修复

  • 验证路径算法写配置中 sourceLabel/targetLabel 的存在性。

1.0.18

新增

变更

修复

1.0.17

新增

变更

修复

  • K-Nearest Neighbors 的 resultRelationshipType 参数错误地默认为 'SIMILARITY'。现已更正为默认为 'SIMILAR_TO'。

1.0.16

新增

  • 新增对过滤的 K-最近邻算法 knn_filtered 的支持。

  • 新增对 K-Means 聚类算法 kmeans 的支持。

  • 作业结果中的 project 条目现在包含有关投影图及其表映射的更详细信息。

变更

  • 将过滤节点相似度和过滤 knn 中的配置参数 sourceNodesTable 改为 sourceNodeTable

  • 将配置参数 mutateProperty 改为 resultProperty

  • mutateProperty 仍受支持但即将被移除。

  • 作为作业结果的一部分,更改了写结果中的字段名称。

  • propertiesWritten, relationshipsWritten 现更名为 rowsWritten

  • exportMillis 现更名为 writeMillis

修复

1.0.15

新增

变更

修复

1.0.14

新增

变更

修复

  • 修复了一个 Bug:作业服务抛出的 SnowparkSQLExceptions 未能正确传播给用户,导致出现通用错误消息。

1.0.13

新增

变更

修复

  • 修复了选择 GPU 池导致异常的 Bug。

1.0.12

新增

变更

修复

  • 修复了关于未启用遥测的警告可能破坏算法 UI 的 Bug。

1.0.11

新增

变更

修复

  • 修复了项目配置和计算配置中表名大小写不匹配导致验证错误的问题。

  • 修复了部分算法参数被误验证为表名、节点标签/类型名而导致错误验证的问题。

1.0.10

新增

  • 新增对遍历算法 bfs 的支持。

  • 添加了 Noe4j_Graph_analytics.estimate_experimental 模式,包含用于估算图算法内存需求的实验性端点。

    • 该模式镜像了 graph 模式中的大多数过程,但不执行算法,而是估算内存需求并建议计算池选择器。

变更

  • 通过删除冗余字段简化并更正了 Dijkstra 变体的输入。

    • relationshipProperty 从未使用过。

    • 单源变体不再需要 targetLabel

  • 为 Dijkstra 单对算法启用更丰富的输出,如果目标类型是数字,我们将进行渲染。

  • 加快算法配置验证速度,特别是与表模式直接相关的参数。

修复

1.0.9

新增

  • 新增对节点嵌入算法 hashgnn 的支持。

变更

  • 加快了计算配置中数值的配置验证。

修复

  • 修复了 experimental.visualize 端点无法处理某些节点列作为 nodeColoring 配置中 byColumn 输入的 Bug。

  • 修复了 graph.fastpath 算法无法正确处理 VARCHAR 节点 ID 的 Bug。

1.0.7

新增

  • 新增支持使用 runtime 配置为单个作业执行设置日志级别。

  • 新增对 triangle_count 算法 labelFilter 参数的支持,允许用户指定算法计算三角形时所涉及的节点标签。

  • 新增对社群发现算法 leiden 的支持。

  • 新增对节点嵌入算法 node2vec 的支持。

  • 新增对路径查找算法 delta_stepping 的支持。

  • 新增对过滤节点相似度算法 node_similarity_filtered 的支持。

变更

  • 写入表现在使用 Parquet 文件而非 CSV 文件作为中间文件格式。

  • 这提高了写入吞吐量,特别是在写入大量数据(包括嵌入等复杂属性)时。

  • 在写入数组(如 fast_rp)时,结果列类型将为结构化数组,例如 ARRAY(FLOAT) 而非 ARRAY

  • 错误消息中使用更熟悉的类型名称,例如使用 BIGINT 而非 long

修复

  • 添加了缺失的验证:指定 *node 参数时,对应的 *table 参数是强制性的。

  • 改进了 graph.dijkstra_single_source,捕获目标节点 ID 类型并进行相应渲染。

  • 修复了 experimental.visualize 端点输入中某些类型(如 VARCHAR)的列导致错误的问题。

  • 修复了 experimental.visualize 端点未能正确处理 maxAllowedNodes 参数导致错误的 Bug。

  • 修复了 experimental.visualize 端点未正确标准化节点大小的 Bug。

1.0.6

新增

  • 添加了一个基于 neo4j-viz Python 库的新端点 experimental.visualize,它接收以表形式表示的图作为输入,并输出该图的 HTML 可视化效果。

  • 如果配置参数(如 sourceNode)引用了未投影到内存图中节点,会提供更好的错误消息。

  • 为 Dijkstra 源-目标算法添加了 sourceTargetNodePairsTable 参数,允许从具有 SOURCENODEIDTARGETNODEID 列的表中批量处理多个源-目标对。

变更

修复

  • 修复了模型训练算法(GraphSage)的默认表前缀解析问题。

  • 修复了 graph.dijkstra_single_source 在结果中若同时存在 BIGINTVARCHAR 节点 ID 时无法正确渲染目标节点 ID 的 Bug。

  • 修复了某些算法未正确处理 NULL 节点属性的 Bug。

  • 修复了低于特定值的整数随机种子导致 IllegalArgumentException 的 Bug。

1.0.5

新增

  • 改进了对作业配置的预验证,确保:

    • 项目和写配置包含所有必需参数

    • 默认表前缀有效

    • 所有标准化表名有效

    • 提供的节点和关系表存在且可访问

    • 提供的节点和关系表符合预期的模式

    • 源表和目标表作为 nodeTables 提供

  • 改进了作业配置验证的错误报告。

变更

  • graph.dijsktragraph.dijkstra_single_source 现在也返回路径的节点 ID 和成本。

  • 移除 experimental.dijsktra,转而使用 graph.dijkstra

修复

  • 修复了 graph.fastpath 中的一个 Bug,即使类型有效,提供 firstRelationshipType 也会导致配置验证失败。

  • 修复了部分端点缺少导入的问题,导致作业配置验证失败时出现令人困惑的错误消息。

1.0.4

新增

  • 添加了实验性端点 experimental.dijsktra,用于运行 Dijkstra 算法并将所有路径作为结果的一部分返回。

  • 对作业配置的某些方面添加了预验证,如果配置无效,作业会立即失败。

变更

修复

1.0.3

新增

  • 添加了 DegreeCentrality 算法和过程 graph.degree

变更

修复

1.0.2

新增

  • 支持在算法配置中将 defaultTablePrefix 作为全局设置。

变更

修复

1.0.1

新增

变更

修复

1.0.0

新增

变更

修复

0.3.14

新增

  • 添加了 admin.show_jobs 过程,用于列出系统中所有已完成的作业。

  • 添加了 TriangleCounting 算法和过程 graph.triangle_count

变更

  • admin.get_max_nodes 替换 internal.get_max_nodes

  • admin.set_max_nodes 替换 internal.set_max_nodes

  • admin.get_min_nodes 替换 internal.get_min_nodes

  • admin.set_min_nodes 替换 internal.set_min_nodes

  • graph.job_log 替换 internal.job_service_log

修复

  • 通过将日志级别更改为 DEBUG,暂时恢复了因转向运行瞬态作业服务而丢失的诊断信息。

0.3.13

新增

变更

修复

  • 修复了 Dijkstra 和 Page Rank 中结果配置条目可能显示内部节点 ID 的问题。

  • 规避了 SPCS 事件共享的限制。

0.3.12

新增

  • 过程 internal.get_min_nodes, internal.get_max_nodes, internal.set_min_nodes, internal.set_max_nodes,用于管理计算池中的节点数量。

  • 日志端点 internal.job_service_log 在基于 Python 的算法失败时包含堆栈跟踪。

变更

  • 对于 graphsage 和 fastpath 算法,将 API 语法(如顶级键和驼峰命名参数)对齐到与其他算法一致。

修复

  • graph.gs_nc_train, graph.gs_nc_predict, graph.gs_unsup_train, graph.gs_unsup_predict 中未利用 GPU 的 Bug。

0.3.11

新增

变更

修复

0.3.10

新增

  • 添加了过程:graph.betweenness, graph.dijkstra, graph.dijkstra_single_source, graph.drop_model, graph.fastpath, graph.fast_rp, graph.graph, graph.gs_nc_predict, graph.gs_nc_train, graph.gs_unsup_predict, graph.gs_unsup_train, graph.knn, graph.louvain, graph.model_exists, graph.node_similarity, graph.page_rank, graph.show_available_compute_pools, graph.show_models, graph.wcc

变更

修复

0.3.9

新增

变更

修复

  • 恢复了关于可用计算池的损坏数据。

0.3.8

新增

  • 支持 GPU 计算池 GPU_NV_XS,适用于大多数 Azure 区域。

  • gml.show_available_compute_poolsgds.show_available_compute_pools。这些是 gml.list_available_compute_poolsgds.list_available_compute_pools 过程的替代品,后者将在未来版本中删除。

变更

修复

  • 当特定区域不可用计算池实例系列时,计算池和仓库创建不再失败。

0.3.7

新增

  • gds.graph_project 中支持 defaultTablePrefix,为投影中的所有表启用公共前缀。

  • 向 APP_ADMIN 角色授予对应用程序管理计算池的 OPERATE 权限。

变更

  • gds.graph_project 中将 nodeTables 中的 map 替换为表或视图列表。相应的标签现在从表名中推断。这是一个破坏性变更。

  • gds.graph_project 中的 relationshipTables 列表条目中删除了 type 参数。关系类型现在从表名中推断。

修复

  • 修复了一个 Bug:如果投影中涉及多个节点表,write_relationships 可能会写出错误的节点 ID。

0.3.6

新增

变更

修复

0.3.5

新增

  • 支持从多个节点和关系表投影异构图。

    • 这是一个破坏性变更,因为以下内容的语法发生了变化:

    • gds.graph_project

    • gds.write_nodeproperties

    • gds.write_relationships

    • 包含节点引用的算法配置(例如路径算法)。

  • 支持输入表中表唯一的非整数节点标识符。

    • 我们现在支持 VARCHARBIGINT 节点标识符。

    • 节点标识符只需在它们投影的表中唯一即可。

变更

修复

0.3.4

新增

  • 过程 gds.list_available_compute_pools,用于列出可与 GDS 会话一起使用的计算池。

  • 过程 gml.list_available_compute_pools,用于列出可与 GML 会话一起使用的计算池。

  • 新的机器学习算法 FastPath gml.fastpath,用于计算路径嵌入。

  • 添加了管理模型的端点:

    • 检查模型是否存在:gml.model_exists

    • 列出模型:gml.model_list

    • 删除模型:gml.model_drop

变更

  • 如果使用了无效的计算池选择器,抛出异常并提供明确的消息和有效的计算池选择器列表。

  • 遥测事件共享变更:

    • 错误和警告 ⇒ 强制

    • 跟踪信息 ⇒ 强制

    • 使用日志 ⇒ 强制

    • 调试日志 ⇒ 可选

    • 指标 ⇒ 可选

修复

0.3.3

新增

变更

修复

  • Snowflake 的一项近期变更要求在应用程序清单中预先声明 GPU 计算池的使用,否则计算池创建将失败。

0.3.2

新增

变更

  • 精简 GraphSAGE 端点的返回值。

  • 改进了 GraphSAGE 的日志记录。

  • 如果模型名称已存在,任何 GML 训练算法(目前为 GraphSAGE)均会尽早失败。

  • 在 GML 训练和预测算法失败时,将失败原因添加到日志表。

修复

  • 修复了导致 GraphSAGE 进度记录超过 100% 的 Bug。

0.3.1

新增

变更

修复

  • 修复了 GraphSAGE 可能耗尽共享内存的问题。

  • gml.gs_nc_predict 的配置中移除了 target_label,因为它未被使用。

0.3.0

新增

  • graph_project 现在支持将节点标识符列投影为 BIGINTVARCHAR

    • 这允许更灵活的节点标识符列,例如使用 UUID 时。

    • 对于 BIGINT,投影运行时间将有约 2 倍的回归,这将在后续版本中解决。

  • 图机器学习运行时:

    • gml.create_session

    • gml.stop_session

    • gml.list

  • 有监督 GraphSAGE:

    • gml.gs_nc_train

    • gml.gs_nc_predict

  • 无监督 GraphSAGE:

    • gml.gs_unsup_train

    • gml.gs_unsup_predict

  • 支持 GPU 计算池 GPU_NV_S

变更

修复

0.2.19

新增

  • graph_list 显示内存中图的堆内存使用情况。

  • 添加对计算池类型 HIGHMEM_X64_L 的支持。

变更

  • 不再允许从空的节点表进行投影,并将返回错误。

修复

  • 无效的函数参数现在会产生更好的错误消息,且不再是服务器错误。

    • 这修复了长时间运行的查询最终因服务器错误而失败的问题。

0.2.18

新增

  • 添加对 gds.drop_nodeproperties 的支持,以从图中删除节点属性。

变更

  • 改进了服务日志记录。

    • 分离了服务器层 (snowgraph) 和应用层 (gds) 的日志记录。

    • 为端点执行添加了更详细的日志记录。

    • 允许通过 internal.set_log_level(logger, level) 函数设置日志级别。

修复

0.2.17

新增

变更

修复

  • 修复了一个 Bug:尝试删除不存在的图时,图删除操作可能会长时间挂起。

  • 在回写时禁用了“尽早失败”机制(当缺失创建表权限时),因为权限检查不稳定。

0.2.16

新增

  • 通过 gds.hits 命令添加对 HITS 算法的支持。

  • 添加对 gds.graph_filter 的支持,以基于节点和关系属性过滤子图。

变更

  • 并发性现在默认为核心数,影响 'concurrency', 'readConcurrency' 和 'writeConcurrency'。

修复

0.2.15

新增

变更

修复

0.2.14

新增

变更

修复

0.2.13

新增

  • 通过 gds.sllpa 命令添加对 Speaker-Listener 标签传播算法的支持。

变更

  • 应用程序创建五个自己的计算池,消费者从中选择一个运行。

  • 应用程序创建自己的查询仓库,消费者根据需要配置它。

  • 应用程序需要 CREATE COMPUTE POOL 和 CREATE WAREHOUSE 权限授权。

修复

  • 各种文档修复。

0.2.12

新增

变更

  • gds.indirect_exposure 现在为每个节点计算 exposure, hop, parentroot

    • 这可以在配置中使用 'mutateProperties': { 'exposure': '<key>', 'hop': '<key>', 'parent': '<key>', 'root': '<key>' } 进行定义。

    • 该算法目前仅支持 max 聚合,exposureReducer 配置已被移除。

修复

0.2.11

新增

变更

修复

0.2.10

新增

  • gds.indirect_exposure 允许指定 exposureReducer 函数以聚合多个邻居的暴露情况。

    • 默认 exposureReducer 函数为 SUM,可选值为 SUMMAX

变更

修复

0.2.9

新增

  • 添加用于风险分析的 gds.indirect_exposure 算法。

  • 升级后,调用 gds.create_session 将显式删除并重新创建服务。

变更

修复

0.2.8

新增

  • 支持使用完整 BIGINT 范围的节点 ID 范围。

修复

  • 修复了 GDS 服务的 JVM 堆内存大小设置。

0.2.7

新增

  • GDS 获取调用 Snowflake 用户的用户名:

    • 用于按用户投影、列出和删除图

    • 用于在用户自己的图上运行算法

  • GDS 获取调用 Snowflake 用户的当前角色:

    • 如果当前角色具有应用程序角色 APP_ADMIN,则设置管理权限

  • 支持半结构化 ARRAY 类型用于节点属性投影。元素类型可以是 BIGINTDOUBLE

  • gds.write_nodeproperties_to_tablegds.write_relationships_to_table

    • 两个函数均将数据上传到应用内部暂存区,然后将数据复制到指定的消费者表。

  • gds.write_nodeproperties_to_stagegds.write_relationships_to_stage

    • 两个函数均将数据上传到消费者定义的暂存区以供进一步处理。

  • gds.write_nodeproperties_to_table 支持写入半结构化 ARRAY 类型

    • 元素类型可以是 BIGINTDOUBLE

  • gds.graph_project 支持为关系设置 orientation

    • 可选值为 NATURAL (默认), UNDIRECTEDREVERSED

变更

  • 更名为 "Neo4j Graph Data Science" (文本中长名称为 "Neo4j Graph Data Science <version>")。

  • write_nodepropertieswrite_relationshipsoutputTable 参数更名为 table

  • write_nodepropertieswrite_relationships 现为别名

    • write_nodepropertieswrite_nodeproperties_to_table 的别名

    • write_relationshipswrite_relationships_to_table 的别名

  • 自动清理 GDS 操作结果(图投影、算法)

    • 结果可通过 gds.result_listgds.result 函数访问。

    • 操作完成后,结果会保留 2 小时,然后被清理。

0.2.6

变更

  • 使用 snowpark-sdk 进行模式操作。

0.2.5

修复

  • 确保关系属性出现在内存图中。

  • write_relationships 现在能正确将关系写入表。

0.2.4

变更

  • graph_project, write_nodepropertieswrite_relationships 使用 snowflake-jdbc 驱动程序而非 snowpark-sdk。