Link Search Menu Expand Document
Start for Free

Configuring the BI Server

This page discusses administering Stardog’s Business Intelligence (BI) Server. For more information on the BI Server’s supported clients and their usage, please see the section on BI Tools and SQL Queries.

Page Contents

Introduction

Stardog provides a facility to bridge the flexible schema of the graph data model to the traditional relational model required by business intelligence tools using SQL. This enables seamless use of business intelligence and visualization tools such as Tableau and Power BI.

Using this feature requires creating a schema mapping from Stardog’s data model to a relational data model. This mapping will be used to generate a relational schema. After creating the schema, the full power of SQL becomes available to relational clients.

Authentication requirements dictate that users created in versions of Stardog prior to 7.0.2 will need to have their password reset before connecting through the BI server. This requirement is not applicable if LDAP authentication is configured.

Configuration Details

To integrate with business intelligence applications, Stardog includes a BI Server that makes Stardog communicate like a fully SQL-compliant RDBMS. The BI Server can be configured to run inside Stardog using the following configuration options in stardog.properties:

Property Description
sql.server.enabled Turns on the BI Server. Must be set to true to use this feature.
sql.server.port Controls the TCP port which the SQL query endpoint listens on. The default port is 5806.
sql.server.commit.invalidates.schema Controls when changes to the schema mappings are visible to new BI connections. The default value is true. If true, changes to the schema mappings will be visible to newly created connections. This can lead to unnecessary load if the mappings rarely change. If false, changes to the schema mappings will only affect the schema after the database is taken offline. In all cases, users with long running connections will not see schema changes until they reconnect.

The schema mapping is stored in a named graph which can be configured separately for each database. The sql.schema.graph database option should be set to IRI of the named graph which stores the schema. The default value is tag:stardog:api:sql:schema.

If the schema mapping is not manually added by the user and the database configuration option sql.schema.auto is set to true (which is the default value) then a schema mapping will be automatically created and used. Read more about this in the BI Tools and SQL Queries section.

LDAP Authentication in BI Server

The BI Server uses the same authentication mechanisms configured globally in the Stardog instance. This is generally transparent but may require special configuration in the MySQL client. MySQL’s ODBC driver requires the “cleartext” password authentication to be enabled when using LDAP authentication. This can be done by setting ENABLE_CLEARTEXT_PLUGIN=1 when editing DSN file or by checking the “Enable Cleartext Authentication” option of the “Connection” tab in the GUI configuration

SSL Connections to BI Server

The BI Server supports SSL/TLS connections which is especially important when sending cleartext passwords with LDAP authentication as described above. The required configuration is to provide a server key as documented in Configuring Stardog to use SSL. The BI Server currently only reads the SSL/TLS keyStore property from the JVM arguments, not from stardog.properties.

When the server key is provided, the BI Server will advertise SSL/TLS capability to clients. Preventing the use of unencrypted connections can be done on the client side. MySQL’s ODBC driver can be configured with SSLMODE=REQUIRED. MySQL’s JDBC driver can be configured with requireSSL=true or sslMode=REQUIRED.

Debugging BI Server Queries

To see the SPARQL queries that are generated by the BI server, add this element to the <Loggers> section of your log4j2.xml file and restart Stardog:

<Logger name="com.complexible.stardog.serf.sql.planner.SparqlEnumerator" level="DEBUG" additivity="false">
    <AppenderRef ref="stardogAppender"/>
</Logger>

See the Logging section in the Server Administration chapter for more information on configuring your log4j2.xml file.