Skip to content
  • There are no suggestions because the search field is empty.

Oracle - DataVault and Mart

Applies to
Platform: Oracle
Architecture: Data Vault · Data Mart

Oracle - DataVault and Mart generates a Stage, Raw Vault, Business Vault and Mart for an Oracle database as SQL*Plus scripts with PL/SQL loader packages. Select it in Project Settings, where Generator Configuration shows Oracle DataVault & Mart, when your Data Vault and data mart run on Oracle in one project. This article lists what the configuration supports and where it differs from Microsoft SQL Server - DataVault and Mart.

Business Driving Key Link offers no Foreign Key Mode, Partition Clause or Table Compression on Oracle.

Scope and output

  • Platform: Oracle. The configuration is available since Generator 2.0.
  • Layers: Source, Stage, Raw Vault, Business Vault and Mart. Dataflow Modeling shows Stage in the Bronze column, both vault layers in the Silver column and the Mart layer as the Datamart column in Gold. See Understand the Layering concept.
  • Output: one SQL*Plus script per layer, PL/SQL loader packages, the load control scripts and the PowerShell 7 scripts that deploy and load, described in Oracle - Artifacts.

Prerequisites

  • One Oracle user for each layer, here Stage, Raw Vault, Business Vault and Mart, and one for load control (with Native Load Control). Each user name is also the schema name of its layer.
  • PowerShell 7 and SQL*Plus on the machine that deploys.
  • The privileges listed in Oracle - Target environment, for example CREATE DATABASE LINK for the Stage user.
  • For model objects imported from a linked project, with Create GRANTs for Imported Objects on: the user name and password of each linked layer's user. The deployment connects as that user to grant the objects.

The placeholders for the users, schemas and connections are listed in Oracle - Placeholder values.

Sources and linked projects

The source system has the type Oracle. Stage views read its tables through a database link or directly, as set in Database Links for Source Systems.

You can import a linked project as a source and export this project as a linked project. Create GRANTs for Imported Objects decides whether the deployment grants the imported objects to the layer users.

Supported model objects

Source and Stage

Raw Vault

Business Vault

Mart

Capabilities and limitations

  • Names: generated names are unquoted and in capitals. Characters other than letters, digits, _, $ and # become _, and names are cut to 128 characters.
  • Keys: primary keys are created with RELY and a unique index, and business keys get a unique constraint. Foreign Key Mode offers None, Create Disabled (default) and Create Enforced.
  • Indexes: the deployment creates a B-tree index on the referencing columns of each relationship, unless the primary key or a unique key has the same columns. On Mart Facts it is a bitmap index. Index management offers B-Tree Index and Bitmap Index and the option Create as local Index.
  • Table storage: the partition, compression, tablespace and statistics properties of a model object are described in Partition Clause and table storage (Model Object).
  • Wide objects: Hash Group Size splits the row hash of Satellites, Link Satellites, Multi-Active Satellites, their Business Vault counterparts, Reference Tables and Mart Dimensions into groups.
  • Identity values: the surrogate keys of Mart Dimensions and identity columns such as BG_ID are NUMBER GENERATED BY DEFAULT AS IDENTITY.
  • Grants: each layer grants ALL with GRANT OPTION on its tables and views to the users of the following layers. It grants EXECUTE on its loader packages to the load-control user.
  • Loading: LoadControl Options offers Native Load Control and Airflow.
  • Data types: the platform data types CHAR(CHAR), CHAR(BYTE), VARCHAR2(CHAR) and VARCHAR2(BYTE) write the length semantics, for example VARCHAR2(100 CHAR). CHAR and VARCHAR2 write none, so the database setting NLS_LENGTH_SEMANTICS applies. TIMESTAMP WITH TIME ZONE with precision 3 becomes TIMESTAMP(3) WITH TIME ZONE.
  • Data type validation: a length, precision or scale that does not fit the Oracle data type gets a warning, see Invalid data type configuration (Business Rule). The generator writes the configured value: VARCHAR2(5000) fails with ORA-00910 at deployment on a database with MAX_STRING_SIZE = STANDARD.

Project properties

Project Settings shows these properties of the configuration, with their defaults:

With SHA256, SHA384 or SHA512, the hash Default Terms stay RAW(20). Set their data type to the result length of the algorithm, see Hash Algorithm.

Platform differences

The table compares the configuration with Microsoft SQL Server - DataVault and Mart of the same release:

ItemOracleMicrosoft SQL Server
Timestamp Default TermsTIMESTAMPdatetimeoffset
Effectivity Default TermsTIMESTAMPdatetime2
Hash Default TermsRAW(20)binary(20)
Text Default TermsVARCHAR2nvarchar
Number Default TermsNUMBERint or bigint
Flag Default TermsNUMBER(1, 0)bit
Hash Algorithm values besides SHA1 and MD5SHA256, SHA384, SHA512SHA2_256
Index typesB-tree, bitmaprowstore, columnstore
Foreign Key Mode on Business Driving Key Linknot availableavailable

Database Links for Source Systems, Create GRANTs for Imported Objects, Hash Group Size, Create as local Index and the table storage properties exist only on Oracle. Included Columns of an index exists only on Microsoft SQL Server.

These Default Terms belong to each group; text Default Terms have the same lengths on both platforms:

  • Timestamps: BG_LoadTimestamp, BG_ValidFromTimestamp, BG_ValidToTimestamp, BG_UpdateTimestamp, BG_EffectiveTimestamp, DVPIT_ForeignKey_LoadDate
  • Effectivity: BG_Effectivity_Begin, BG_Effectivity_End
  • Hash keys and row hashes: Hub_HK, Link_HK, DrivingKeyLink_HK, PIT_HK, DVLINK_ForeignKey_Identity, DVPIT_ForeignKey_Identity, BG_RowHash, BG_RowHashScd1, BG_RowHashScd2
  • Text: BG_SourceSystem, BG_DataflowName, BG_DataflowSetName, BG_ErrorDescription, BG_IncrementLoadStatus
  • Numbers: BG_ID, BG_Sequence, BG_ErrorCount, BG_DataQuality_ID, BG_MartDimension_Identity, BG_MartFact_ForeignKey_Identity
  • Flags: BG_IsDeleted, BG_Appearance, BG_MAS_HubDifferenceFound

Example

The Raw Vault script grants the Hub BDC_CUSTOMER to the Business Vault and Mart users. The Mart Fact load_incremental_source references the Mart Dimension common_salestransaction and gets a bitmap index on that column. The names in angle brackets stand for placeholders:

GRANT ALL ON <raw vault schema>.RDV_HUB_BDC_CUSTOMER
    TO <business vault user>, <mart user> WITH GRANT OPTION;

CREATE TABLE <mart schema>.DM_MF_LOAD_INCREMENTAL_SOURCE (
     BG_LOADTIMESTAMP TIMESTAMP NOT NULL
    ,BG_SOURCESYSTEM VARCHAR2(255)
    ,SALES_PRICE NUMBER(18, 2)
    ,QUANTITY NUMBER(18, 3)
    ,SALES_AMOUNT NUMBER(18, 2)
    ,COMMON_SALESTRANSACTION_COMMON_SALESTRANSACTION_SK NUMBER NOT NULL
)
;
CREATE BITMAP INDEX
  <mart schema>.DM_MF_LOAD_INCREMENTAL_SOURCE_COMMON_SALESTRANSACTION_IDX
  ON <mart schema>.DM_MF_LOAD_INCREMENTAL_SOURCE
  (COMMON_SALESTRANSACTION_COMMON_SALESTRANSACTION_SK)
;

Release differences

Project Settings shows the Generator Version of your project.

  • Generator 2.0: first release of the configuration.
  • Generator 2.2: Vault Out and Mart Out; the project properties Persist Validity, Create Result Views, Hash Casing, Hash Concatenation Separator, Hash Null Placeholder and Hash Trim; the model object properties Increment Management Type and Use Embryo Loader, see Embryo Loader; the platform data types with length semantics and the data type validation; the replacement of characters in generated names. Up to Generator 2.0.1, precision 3 was written as TIMESTAMP(3 WITH TIME ZONE).
  • Generator 2.3: the model object properties Hash Group Size and Custom Singleton Values.
  • Generator 2.4: Non-Historized Satellite and Non-Historized Business Satellite; the model object property Excluded from Delta Detection.
  • Fixes for Oracle are listed in Generators Release - 2.3.0, Generators Release - 2.4.0 and Generators Release - 2.4.1.

Related articles