Database requirements
Check the requirements for external relational databases used to store reporting data.
Oracle
Configuration requirements
Supported version
Oracle 19 or later
Block size
8 KB (default, recommended)
Character set
AL32UTF8
Sessions configuration
- Recommended minimum: 500 sessions
- Large configuration: 1000 sessions
- Calculation: Approximately 150-200 connections multiplied by the number of
wkc-bi-data-servicepods
Ensure that the SESSIONS and PROCESSES initialization parameters support the required session count.
Configuration example:
-- Default (if AL32UTF8 already configured at CDB level):
-- Verify character set is AL32UTF8
SELECT value FROM NLS_DATABASE_PARAMETERS WHERE parameter = 'NLS_CHARACTERSET';
-- Explicit character set configuration:
CREATE DATABASE reporting CHARACTER SET AL32UTF8;
Schema setup
- One dedicated Oracle user (for example,
REPORTING_USER) must be created. - In Oracle, a user and schema are equivalent. Therefore, the dedicated user owns all reporting objects.
- The reporting service:
- Creates and drops tables, views, functions, triggers, and sequences.
- Performs DML operations (
INSERT,UPDATE,DELETE,SELECT).
- The reporting service does not drop the user or schema.
Setup example:
-- Application-owned schema (recommended)
-- reporting_user (Oracle user = schema) owns and manages all reporting objects.
CREATE USER <reporting_user> IDENTIFIED BY <password>
DEFAULT TABLESPACE <tablespace_name>
TEMPORARY TABLESPACE <temp_tablespace>;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE TRIGGER,
CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM,
TO <reporting_user>;
ALTER USER <reporting_user> QUOTA UNLIMITED ON <tablespace_name>;
Db2
Configuration requirements
Supported version
Db2 11.5 or later
Page size
- Required: 32 KB
- Tablespace: Must use 32 KB page size for reporting schema
Code set
UTF-8
Connection capacity
- Recommended minimum: 500 connections
- Large configuration: 1000 connections
- Calculation: Approximately 150-200 connections multiplied by the number of
wkc-bi-data-servicepods
Ensure that the MAXAPPLS database configuration parameter supports the required concurrency.
Buffer pool configuration
- Required: 32 KB buffer pool
- Memory estimate: Approximately 16 GB multiplied by the number of
wkc-bi-data-servicepods for total memory (allocate 50-60% for the buffer pool)
Configuration example
-- Create database with 32K default page size and UTF-8
CREATE DATABASE reporting PAGESIZE 32 K USING CODESET UTF-8;
Schema setup
- One dedicated schema (for example,
REPORTING) must be created for reporting data. - One dedicated database user (for example,
reporting_user) must be created with full privileges on the schema. - The reporting service:
- Creates and drops tables, views, functions, triggers, and sequences.
- Performs DML operations (
INSERT,UPDATE,DELETE,SELECT).
- The reporting service does not drop the schema itself.
Setup example:
-- Option 1 - Application-owned schema (recommended)
-- reporting_user owns and manages all objects within the reporting schema.
CREATE SCHEMA <reporting> AUTHORIZATION <reporting_user>;
GRANT CONNECT ON DATABASE TO USER <reporting_user>;
-- Option 2 - DBA-controlled schema with delegated object privileges
-- DBA retains schema ownership; reporting_user has full object-level control within the schema.
CREATE SCHEMA <reporting>;
GRANT USAGE ON SCHEMA <reporting> TO USER <reporting_user>;
GRANT CREATEIN ON SCHEMA <reporting> TO USER <reporting_user>;
Db2 on Cloud
Configuration requirements
Supported version
Db2 on Cloud with a Standard or Enterprise plan
Page size
- Required: 32 KB (default for Standard and Enterprise plans)
- Tablespace requirement: 32 KB page size for the reporting schema
Code set
UTF-8
Connection capacity
-
Recommended minimum: 500 connections
-
Large configuration: 1000 connections
-
Calculation: Approximately 150-200 connections multiplied by the number of
wkc-bi-data-servicepods
Ensure that the MAXAPPLS database configuration parameter supports the required concurrency.
Buffer pool configuration
- Required: 32 KB buffer pool
- Memory estimate: Approximately 16 GB multiplied by the number of
wkc-bi-data-servicepods for total memory (allocate 50-60% for the buffer pool).
Configuration example
-- Create database with 32K default page size and UTF-8
CREATE DATABASE reporting PAGESIZE 32 K USING CODESET UTF-8;
Schema setup
- One dedicated schema (for example,
REPORTING) must be created for reporting data. - One dedicated database user (for example,
reporting_user) must be created with full privileges on the schema. - The reporting service:
- Creates and drops tables, views, functions, triggers, and sequences.
- Performs DML operations (
INSERT,UPDATE,DELETE,SELECT).
- The reporting service does not drop the schema itself.
Setup example:
-- Option 1 - Application-owned schema (recommended)
-- reporting_user owns and manages all objects within the reporting schema.
CREATE SCHEMA <reporting> AUTHORIZATION <reporting_user>;
GRANT CONNECT ON DATABASE TO USER <reporting_user>;
-- Option 2 - DBA-controlled schema with delegated object privileges
-- DBA retains schema ownership; reporting_user has full object-level control within the schema.
CREATE SCHEMA <reporting>;
GRANT USAGE ON SCHEMA <reporting> TO USER <reporting_user>;
GRANT CREATEIN ON SCHEMA <reporting> TO USER <reporting_user>;
PostgreSQL
Configuration requirements
Supported version
PostgreSQL 12 or later
Page size
8 KB (default, no configuration required)
Encoding
UTF8
Max connections (max_connections)
-
Recommended minimum: 500 sessions
-
Large configuration: 1000 sessions
-
Calculation: Approximately 150-200 connections multiplied by the number of
wkc-bi-data-servicepods
Configuration example
-- Default (if cluster already UTF8):
CREATE DATABASE reporting;
-- Explicit UTF-8 encoding
CREATE DATABASE reporting ENCODING 'UTF8';
Schema setup
- One dedicated schema (for example,
reporting) must be created for reporting data. - One dedicated database user (for example,
reporting_user) must be created with full privileges on the schema. - The reporting service:
- Creates and drops tables, views, functions, triggers, and sequences.
- Performs DML operations (
INSERT,UPDATE,DELETE,SELECT).
- The reporting service does not drop the schema itself.
Setup example:
-- Option 1 - Application-owned schema (recommended)
-- reporting_user owns and manages all objects within the reporting schema.
CREATE USER <reporting_user> WITH PASSWORD '<password>';
GRANT CONNECT ON DATABASE <db> TO <reporting_user>;
CREATE SCHEMA <reporting_schema> AUTHORIZATION <reporting_user>;
-- Option 2 - DBA-controlled schema with delegated object privileges
-- DBA retains schema ownership; reporting_user has full object-level control within the schema.
CREATE USER <reporting_user> WITH PASSWORD '<password>';
GRANT CONNECT ON DATABASE <db> TO <reporting_user>;
CREATE SCHEMA <reporting_schema>;
GRANT USAGE, CREATE ON SCHEMA <reporting_schema> TO <reporting_user>;
ALTER ROLE <reporting_user> SET search_path = <reporting_schema>;
Microsoft SQL Server and Microsoft Azure SQL Database
Configuration requirements
Supported version
- Microsoft SQL Server 2022 or later
- Microsoft Azure SQL Database (managed service, always current)
Page size
8 KB (default, no configuration required)
Collation
Case-insensitive UTF-8 collation (for example, Latin1_General_100_CI_AS_SC_UTF8)
Max connections
-
Default (32767) is sufficient
-
Application requirement: 500 connections (1000 for large configuration)
-
Calculation: Approximately 150-200 connections multiplied by the number of
wkc-bi-data-servicepods
Configuration example:
-- Default (if instance collation already UTF8 CI):
CREATE DATABASE reporting;
-- Explicit case-insensitive UTF8 collation:
CREATE DATABASE reporting COLLATE Latin1_General_100_CI_AS_SC_UTF8;
Schema setup
- One dedicated schema (for example,
reporting) must be created. - One dedicated database user (for example,
reporting_user) must be created with full privileges on the schema. - The reporting service:
- Creates and drops tables, views, functions, triggers, and sequences.
- Performs DML operations (
INSERT,UPDATE,DELETE,SELECT).
- The reporting service does not drop the schema itself.
Setup example:
-- Option 1 - Application-owned schema (recommended)
-- reporting_user owns and manages all objects within the reporting schema.
CREATE LOGIN <reporting_user> WITH PASSWORD = '<Password>';
USE <ReportingDb>;
CREATE USER <reporting_user> FOR LOGIN <reporting_user>;
CREATE SCHEMA <reporting> AUTHORIZATION <reporting_user>;
ALTER USER <reporting_user> WITH DEFAULT_SCHEMA = <reporting>;
-- Option 2 - DBA-controlled schema with delegated object privileges
-- DBA retains schema ownership; reporting_user has full object-level control within the schema.
CREATE LOGIN <reporting_user> WITH PASSWORD = '<Password>';
USE <ReportingDb>;
CREATE USER <reporting_user> FOR LOGIN <reporting_user>;
CREATE SCHEMA <reporting>;
GRANT CONTROL ON SCHEMA::<reporting> TO <reporting_user>;
ALTER USER <reporting_user> WITH DEFAULT_SCHEMA = <reporting>;