FAQ

This topic provides answers to frequently asked questions and includes references to more detailed information. The questions are categorized by subject:

Licensing and Registration FAQ

This section includes answers for questions related to AnzoGraph DB free trials and licensing.

What are the different AnzoGraph DB offerings?

There are two offerings: Free Edition and Enterprise Edition. Each offering is described below.

For a detailed comparison of the available editions, see "AnzoGraph DB Editions Comparison" on the AnzoGraph DB Download page.

AnzoGraph DB Free Edition

AnzoGraph DB Free Edition has two variations:

  • By default, all deployments include an embedded Free Edition (8 GB) license. The license does not expire but is limited to operation on a single server. In addition, AnzoGraph DB is limited to a maximum of 8 GB RAM and maximum utilization of up to 8 CPU cores. This means the host server can have a large amount of available memory, but AnzoGraph DB will not allocate over 8 GB or use more than 8 CPU cores for data and queries. You do not have to register with Cambridge Semantics to use the 8 GB Free Edition version.

    The restrictions for this version are outlined in the AnzoGraph End User License Agreement.

  • You can increase the memory limit to 16 GB for the Free Edition version by registering with Cambridge Semantics and generating a new Free Edition (16 GB RAM limit) license key. This license is also limited to operation on a single server, and AnzoGraph DB will not use more than 16 GB RAM or 16 CPU cores for data and queries.

AnzoGraph DB Enterprise Edition

The free AnzoGraph DB Enterprise Edition is available for users who want to test AnzoGraph DB scale and performance. This edition does not place any limitations on RAM or the number of servers you can deploy in an AnzoGraph DB cluster. You must register with Cambridge Semantics to generate an Enterprise Edition license, and the license expires after 60 days.

When a Free Edition or Enterprise license limits the number of CPU cores, AnzoGraph DB limits the number of slices (partitions) that are used to store data as well as the number of per-query threads that are used for query execution. For example, a 16-CPU license will use 16 slices and 16 threads per query. However, if additional CPU cores are available on the system and many queries are running concurrently, multiple cores beyond the CPU limit may be used inside the system. If the host server has more CPU than the license limit and you do not want AnzoGraph DB to use additional cores, you must enforce the limit at the container, VM, or server level.

How does the free license work?

By default, all AnzoGraph DB deployments include an embedded Free Edition (8 GB) license. This license can be used anonymously, i.e., you do not need to register with Cambridge Semantics. Simply deploy AnzoGraph DB and start using it. The anonymous free license does not expire, but it is limited to single-server usage, and, regardless of the size of the host server, AnzoGraph DB will not use more than 8 GB RAM.

When you are ready to increase the memory usage limit or remove limits altogether (with the Enterprise Edition), you can upgrade your license for free by registering with Cambridge Semantics and generating a new license key. See Upgrade a License for instructions.

For more information about registering, see the AnzoGraph DB Download page.

How do I upgrade the default license to Free Edition (16 GB) or Enterprise Edition?

If you have the AnzoGraph DB front end installed, upgrade your license from the AnzoGraph DB Admin console. For instructions, see Upgrade a License from the User Interface. If you do not have the front end installed, upgrade your license using the command line. For instructions, see Upgrade a License from the Command Line.

Why are there three AnzoGraph container images?

To offer versatility for different types of environments and deployment preferences, Cambridge Semantics provides three AnzoGraph DB container images. The list below describes each image and its purpose:

AnzoGraph DB FAQ

This section includes answers for questions related to AnzoGraph DB usage.

How do I determine what size cluster to deploy?

For guidance on determining the number of instances to include in your cluster and choosing the most suitable instance type, see the best practice Sizing Guidelines for In-Memory Storage.

Are there best practices around performance benchmarking with AnzoGraph DB?

For best practices and in-depth information about benchmarking with AnzoGraph DB, see the AnzoGraph DB Benchmarking Guide.

How do I deploy AnzoGraph DB SPARQL endpoints?

AnzoGraph DB supports the standard W3C SPARQL 1.1 Protocol (SPARQL endpoint) and SPARQL 1.1 Graph Store HTTP Protocol (RDF Graph Store endpoint). The SPARQL endpoint and Graph Store endpoint are both enabled by default. And both endpoints can be accessed through the front end (user interface) or the back end (database).

  • If you have the front end client deployed, the endpoints are enabled and can be accessed by applications that have access to the front end server. User authentication is required to access endpoints through the front end.
  • Back end endpoints are also enabled by default but are controlled by the enable_sparql_protocol configuration setting. If SPARQL protocol is disabled for your deployment, the database endpoints will not be accessible. See How do I enable SPARQL HTTP protocol? for instructions on enabling SPARQL protocol. The back end endpoints do not support user authentication at this time.

For more information about the endpoints, see Access the SPARQL and RDF Endpoints.

How do I use the SPARQL and RDF Graph Store endpoints?

AnzoGraph DB endpoints conform to the W3C SPARQL 1.1 standards and can be accessed like other standard SPARQL endpoints. For usage information and details about the AnzoGraph DB endpoints, see Access the SPARQL and RDF Endpoints.

For W3C specifications on SPARQL endpoints, see SPARQL 1.1 Protocol. For RDF graph store specifications, see SPARQL 1.1 Graph Store HTTP Protocol.

How do I enable SPARQL HTTP protocol?

If HTTP protocol is disabled for your deployment and you want to enable it so that you can use the AnzoGraph DB CLI or post queries to the SPARQL HTTP port (7070 by default), follow the instructions below.

  1. Stop AnzoGraph DB. You can stop the database from the Admin user interface, or see Start and Stop AnzoGraph DB for information about alternate methods.
  2. Open the AnzoGraph DB settings file /install_path/config/settings.conf in an editor.

    How do I access the AnzoGraph DB file system with Docker? For example:

    vi /opt/anzograph/config/settings.conf
  3. Find the enable_sparql_protocol setting. If the setting is listed, change the value from "false" to true. If the setting is not listed, add a new line to the end of the file and enter the following value:
    enable_sparql_protocol=true
  4. Save and close the file, and then restart AnzoGraph DB.

Once AnzoGraph DB starts, SPARQL HTTP protocol is enabled on the sparql_protocol_port (7070 by default) and you can use the CLI (AZGI) or send requests through the back end (database) SPARQL endpoints. For more information about AnzoGraph DB endpoints, see Access the SPARQL and RDF Endpoints.

How do I reset the admin password?

To reset the AnzoGraph DB admin password, SSH to the AnzoGraph DB host server (the leader node if this is a cluster) and run the following command. This command runs the azgpasswd utility in the anzograph/bin directory and updates the password (passwd) file in the anzograph/config directory:

./<install_path>/bin/azgpasswd /<install_path>/config/passwd -u admin -p <password>

For example, the following command resets the password to "Passw0rd1":

./opt/csi/anzograph/bin/azgpasswd /opt/csi/anzograph/config/passwd -u admin -p Passw0rd1

Do not use certain special characters like $ or * in passwords. Those characters have special meaning for bash.

How do I access the AnzoGraph DB file system with Docker?

Run the following Docker command to access the AnzoGraph DB file system, the /opt/anzograph directory:

sudo docker exec -it <container_name> /bin/bash

Where <container_name> is the name of the AnzoGraph DB container whose file system you want to access. For example:

sudo docker exec -it anzograph /bin/bash

How do I copy load files from the host to the AnzoGraph DB file system in Docker?

  1. Run the following Docker command to access the AnzoGraph DB file system, the /opt/anzograph directory:
    sudo docker exec -it <container_name> /bin/bash

    Where <container_name> is the name of the AnzoGraph DB container whose file system you want to access. For example:

    sudo docker exec -it anzograph /bin/bash
  2. Determine where on the file system you would like to place the load files and create a new directory if necessary. If you plan to load a directory of files, remember to include the file type in the directory name. See RDF Load File Requirements for more information. For example:
    mkdir /opt/anzograph/load-files.ttl
  3. Type exit to exit the container.
  4. Run the following Docker command to copy files from the host server to a location in the AnzoGraph DB container.
    sudo docker cp /<path>/<filename> <container_name>:/<path>/<directory>

    For example:

    sudo docker cp /home/user/sales.ttl anzograph:/opt/anzograph/load-files.ttl/

    Or this command copies a directory to the container:

    sudo docker cp -r /<path>/<directory> <container_name>:/<path>

    For example:

    sudo docker cp -r /home/user/load-files.ttl anzograph:/opt/anzograph/

How do I customize a Helm-managed AnzoGraph DB deployment?

To customize a Helm-managed deployment, modify the AnzoGraph DB Helm chart, values.yaml, and then deploy AnzoGraph DB using that chart.

  • The values.yaml file is in the HELM_HOME directory. To view the location of HELM_HOME, you can run helm home.
  • To download the latest version of the Helm chart from csi-helm/anzograph, you can run helm repo update.
  • You can edit values.yaml directly or make a copy and edit the copy. When you run the helm install command to deploy AnzoGraph DB, specify the name of the Helm chart to use for that deployment.
  • For details about the Helm chart options, view the readme, Readme.md, in the HELM_HOME directory.

For instructions on deploying AnzoGraph DB with Helm, see Deploy AnzoGraph DB with Helm.

How do I enable database persistence?

For most installations AnzoGraph DB is configured by default to save the data in memory to disk after every transaction. Each time AnzoGraph DB is restarted, the persisted data is automatically loaded back into memory. To check whether the save to disk option is enabled, open the settings file, install_path/config/settings.conf, and find the enable_persistence option. If enable_persistence=true, data persistence is enabled. If enable_persistence=false, persistence is disabled. For instructions on changing settings, see Change System Settings.

Important Considerations

  • In general, each AnzoGraph DB server needs access to about twice as much disk space as RAM on the server. By default, AnzoGraph DB saves data to the install_path/persistence directory on the local file system. You can also configure AnzoGraph DB to save data to a different location by changing the value of the persistence_directory setting in settings.conf.
  • When persistence is enabled, transactional workloads that perform many concurrent write operations may experience a performance degradation due to the overhead of writing the data from each transaction to disk.

What RDF load file types does AnzoGraph DB support?

  • Turtle (.ttl file type): Terse RDF Triple Language that writes an RDF graph in compact form.
  • N-Triple (.n3 and .nt file types): A subset of Turtle known as simple triples.
  • N-Quad (.nq and .quads file types): N-Triples with a blank node or graph designation.
  • TriG (.trig file type): An extension of Turtle that supports representing a complete RDF data set.
  • JSON-LD (.jsonld file type): A method of encoding linked data using JSON. JSON-LD files are supported for loading via the IO services. JSON-LD is not supported by SPARQL LOAD queries.

For more information, see Load RDF Data from Files.

How do I set up my load files to get the best load performance?

When you have multiple files, AnzoGraph DB loads the files in parallel, using all available cores on all servers in the cluster. While you can load files stored on the leader node's local file system, for optimal performance, it is important to use a shared file system to ensure that all servers in the cluster have access to the files. In a Docker or Kubernetes container environment, the storage system should also be shared with the container file system.

For more information and details about load file requirements, see RDF Load File Requirements.

How do I get a list of all AnzoGraph DB functions?

You can run the following query to return a list of supported SPARQL functions. The query returns all of the function names as well as the supported argument and return types for each function:

SELECT ?extension_name ?extension_arguments ?extension_results
WHERE { TABLE 'stc_functions'}
ORDER BY ?extension_name

SPARQL FAQ

This section includes answers for questions related to the SPARQL query language.

What extensions to the SPARQL standard does AnzoGraph DB provide?

AnzoGraph DB implements the standard SPARQL forms and functions described in the W3C SPARQL 1.1 Query Language specification. In addition to supporting the standard functions, AnzoGraph DB also provides several SQL-like and Microsoft Excel-like functions as well as support for more advanced operations like window aggregates, advanced grouping sets, and graph algorithms. In addition to the built-in standard and advanced functions, AnzoGraph DB includes extension libraries that provide several data science, geospatial, Apache Arrow, and various utility functions. For information, see SPARQL Query Language Reference.

Where can I find more information about SPARQL?

For basic information about SPARQL, the semantic web, or RDF, see the Cambridge Semantics Semantic University. In addition, the Semantic Web for the Working Ontologist focuses on SPARQL and RDF usage using Internet examples.

To view the W3C formal specification and definitive reference, see the SPARQL 1.1 Query Language specification.

For additional information about best practices and tips, see SPARQL Best Practices and SPARQL Tips and Tricks.