database:实践指南

作者:袖梨 2026-09-12

面对实际交付,我看database的重点不在星标,而在这项能力:Blazegraph 高性能图形数据库。一旦进入数据与知识处理环节,数据结构、更新策略和可追溯性会决定结果是否可信会直接影响交付,这也是我最关心的风险。短测时我会用一份规模可控且答案已知的数据集试跑,并保留模式兼容、增量更新、查询结果和来源追踪的结果,方便团队复盘。编辑判断上,需要保留数据来路与变更记录的使用者可以优先研究它;其他团队不必为了热门标签勉强接入。

欢迎来到 Blazegraph 数据库##

Blazegraph™ DB 是一个超高性能图形数据库,支持蓝图和 RDF/SPARQL APIs。它在单台机器上支持多达 500 亿条边。它已被财富 500 强客户(例如 EMC、Autodesk 等)投入生产使用。 它支持关键的 精准医学 应用,并在生命科学应用中广泛使用。 它广泛用于支持商业和正府应用程序中的网络分析。 它为维基媒体会的 维基数据查询服务 提供支持。

有关版本更改,请参阅 版本 中的发行说明。

注册 以获取 Blazegraph 的最新消息。

另请访问我们的:网站、wiki 和 博客。

发现问题? 需要帮助吗? 请参见 JIRA。

报告安全问题:安全报告。

快速启动可执行 Jar

在 30 秒内启动并运行 Blazegraph:快速入门。

在生产环境中部署

Blazegraph 的设计宗旨是易于使用和入门。因此,默认情况下,它出厂时没有 SSL 或身份验证。对于生产部署,我们强烈建议您启用 SSL、身份验证和适当的网络配置。下面有一些有用的链接可帮助您执行此操作。

启用 SSL 支持

要启用 SSL 支持,请取消注释示例 jetty.xml 并为本地密钥库配置它。

配置认证

默认情况下,Blazegraph 出厂时未启用身份验证。这对于使用 Blazegraph 进行开发、入门和研究非常有用。但是,不建议将其用于任何生产部署。要配置身份验证,您必须在 Web 应用程序容器中或通过反向代理配置进行配置。

请注意,多租户 的 Blazegraph 命名空间功能不提供安全隔离。可以访问服务器的基本 URI 的用户可以访问任何可用的命名空间。您可以通过身份验证配置和限制对特定命名空间 URIs、i.e 的访问的组合来进一步限制这一点。 /blazegraph/namespace/NAMESPACE/sparql

有三个基本选项:

  1. 为独立 Jetty 部署配置 Jetty 身份验证:按照 jetty 指南,通过取消注释 <Get name="securityHandler"> 部分来配置用于部署服务器的 jetty.xml 的身份验证。您需要创建 realm.properties 并更新 jetty.xml 以指向其在文件系统上的位置。 然后配置 web.xml 以取消注释安全约束。
  2. 为独立 Tomcat 部署配置 Tomcat 身份验证:首先使用您选择的身份验证方法(JDBC、JNDI 等)配置 Tomcat 领域。然后配置 web.xml 以取消注释安全约束。
  3. 设置具有身份验证的反向代理配置:您可以设置具有身份验证的 http 或 https 反向代理配置,并将请求转发到本地 Blazegraph 实例(通常在 localhost:9999 上运行)。对于 Nginx 和 Apache 来说,这是一个不错的选择。

减少跨站点请求伪造 (CSRF)

如果您启用身份验证并公开 Blazegraph 工作台,您还应该采取措施防范 CSRF。 Tomcat8提供了一个可配置的CSRF过滤器。对于 Jetty,如果配置身份验证,也可以使用 SecurityHandler.setSessionRenewedOnAuthentication(true) 的默认值。 CSRF 保护可能需要 REST 客户端实现 HTTP 标头以用于与服务交互。

构建代码

作为快速启动,请运行 mvn install -DskipTests 或实用程序脚本 ./scripts/mavenInstall.sh

有关更详细的 Maven 信息,请参阅 wiki。

如果使用 Java 7 构建,则需要添加 TLS 1.2、i.e 的 Maven 选项。 export MAVEN_OPTS="-Dhttps.protocols=TLSv1.2"

示例和示例

[此处] (https://github.com/blazegraph/blazegraph-samples) 有用于开始使用 Blazegraph 数据库的代码示例和示例。 Tinkerpop3 示例直接包含在 Tinkerpop3 存储库中,如下所示。

Java文档

单击此处查看最新的 API Javadocs。

Maven 中心

从 2.0.0 版本开始,Blazegraph 数据库可在 Maven Central 上使用。 要包含核心平台和依赖项,请将以下工件包含在您的依赖项中。 使用 Maven 进行开发 有关于使用 Blazegraph 数据库源代码和 Maven 进行开发的说明。

    <dependency>
        <groupId>com.blazegraph</groupId>
        <artifactId>bigdata-core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.blazegraph</groupId>
        <artifactId>bigdata-blueprints</artifactId>
        <version>2.0.0</version>
    </dependency>

如果您只是链接 Blazegraph 数据库依赖项而不使用任何外部库,请使用 bigdata-runtime 工件。

    <dependency>
        <groupId>com.blazegraph</groupId>
        <artifactId>bigdata-runtime</artifactId>
        <version>2.0.0</version>
    </dependency>

部署者

从 2.0.0 开始,部署的默认上下文路径是 http://localhost:9999/blazegraph/。 还有 WAR 部署程序 (blazegraph-war)、可执行 Jar 文件 (blazegraph-jar)、Debian 包 (blazegraph-deb)、的 Maven 工件RPM (blazegraph-rpm) 和 Tarball (blazegraph-tgz)。

包含 bigdata-warbigdata-jar 工件用于遗留目的,并使用 /bigdata/ 上下文路径。

小叮当3

Tinkerpop3 支持需要 Java 1.8,现在位于单独的存储库中。 请参阅 Tinkerpop3。 它也可以作为 Maven Central 工件使用。

    <dependency>
        <groupId>com.blazegraph</groupId>
        <artifactId>blazegraph-gremlin</artifactId>
        <version>1.0.0</version>
    </dependency>
    

三重模式片段(TPF)服务器

有一个 Blazegraph 三重模式片段 TPF 服务器支持 链接数据片段。

Blazegraph Python 客户端

这里有一个 Blazegraph Python 客户端 here

Blazegraph 点网 RDF 客户端

这里有一个 Blazegraph Dot Net RDF 客户端 here

相关文章

精彩推荐