[[{“value”:”
What’s New
SAP Business Data Cloud (BDC) Connect SDK now supports publishing in SAP Databricks – Views as custom data products — not just physical tables. This unlocks a clean, flexible pattern for sharing data from Databricks environments that use native Databricks types not directly supported by CAP’s CDS type system.
Process Overview with Steps
The Solution: A View as the Publication Layer
You now create a Databricks View that handles all type conversions at the SQL layer, then publish that view directly. No duplication, no extra tables.
Step 1 — Create a Type-Compatible View
CREATE VIEW demo.default.customer_view AS
SELECT
customer_id,
CAST(loyalty_level AS INT) AS loyalty_level, -- TINYINT → cds.Integer
CAST(age_group AS INT) AS age_group, -- SMALLINT → cds.Integer
CAST(credit_score AS DOUBLE) AS credit_score, -- FLOAT → cds.Double
HEX(profile_hash) AS profile_hash, -- BINARY → cds.String
CAST(country_code AS STRING) AS country_code, -- CHAR(2) → cds.String
customer_name,
CAST(created_ts AS TIMESTAMP) AS created_ts, -- TIMESTAMP_NTZ → cds.Timestamp
TO_JSON(favorite_colors) AS favorite_colors, -- ARRAY → JSON String
TO_JSON(preferences) AS preferences, -- MAP → JSON String
TO_JSON(address) AS address -- STRUCT → JSON String
FROM demo.default.customer_raw;
Type mapping reference:
Databricks Type CDS-Compatible Type Conversion
TINYINT / SMALLINT |
cds.Integer |
CAST(... AS INT) |
FLOAT |
cds.Double |
CAST(... AS DOUBLE) |
BINARY |
cds.String |
HEX(...) |
CHAR(n) |
cds.String |
CAST(... AS STRING) |
TIMESTAMP_NTZ |
cds.Timestamp |
CAST(... AS TIMESTAMP) |
ARRAY<T>, MAP<K,V>, STRUCT |
cds.String (JSON) |
TO_JSON(...) |
Step 2 — Install the SDK
pip install sap-bdc-connect-sdk
Step 3 — Register the Share with ORD Metadata
you can refer this blog in detail about Data Product Sharing
from bdc_connect_sdk.auth import BdcConnectClient, DataBricksClient
bdc_connect_client = BdcConnectClient(
DataBricksClient(dbutils, "bdc-partner-connect-tenant-<your-tenant-id>")
)
share_name = "demo_dbx_view"
bdc_connect_client.create_or_update_share(
share_name,
{
"@openResourceDiscoveryV1": {
"title": "Demo DBX View",
"shortDescription": "Databricks Data Product",
"description": "Databricks data product from a View without a primary key"
}
}
)
Step 4 — Generate and Register the CSN Schema
from bdc_connect_sdk.utils import csn_generator
csn_schema = csn_generator.generate_csn_template(share_name)
bdc_connect_client.create_or_update_share_csn(share_name, csn_schema)
The SDK inspects the view schema and auto-generates the CDS Schema Notation (CSN) definition. You can review and adjust it before registering.
Step 5 — Publish
bdc_connect_client.publish_data_product(share_name)
The data product is now available in SAP Business Data Cloud for downstream consumption.
Why This Matters
No primary key required. Views do not need a primary key — a common blocker with raw or analytical tables.
Data governance at the SQL layer. The view becomes your data contract. Consumers see a clean, typed schema; the raw table stays untouched. Masking, filtering, and reshaping happen in SQL.
No data redundancy. Type conversion happens on-the-fly in the view — no intermediate tables needed.
Flexible schema evolution. Decouple the physical table from the published schema. Evolve either side independently.
Before vs. After
| Before | Now | |
| Supported source | Delta tables only | Delta tables and Views |
| Type compatibility | Must match CDS types in the table | Cast incompatible types in the view |
| Primary key | Required | Not required for views |
| Data duplication | Sometimes unavoidable | Not needed |
Publishing Databricks Views as SAP BDC custom data products is especially valuable in medallion architectures where bronze/silver layers carry raw SAP Databricks types that are not directly shareable. The view pattern gives data teams a lightweight, maintainable bridge between the Databricks schema world and the SAP data product ecosystem — without modifying or duplicating source data.
“}]]
[[{“value”:”What’s NewSAP Business Data Cloud (BDC) Connect SDK now supports publishing in SAP Databricks – Views as custom data products — not just physical tables. This unlocks a clean, flexible pattern for sharing data from Databricks environments that use native Databricks types not directly supported by CAP’s CDS type system.Process Overview with StepsThe Solution: A View as the Publication LayerYou now create a Databricks View that handles all type conversions at the SQL layer, then publish that view directly. No duplication, no extra tables.Step 1 — Create a Type-Compatible ViewCREATE VIEW demo.default.customer_view AS
SELECT
customer_id,
CAST(loyalty_level AS INT) AS loyalty_level, — TINYINT → cds.Integer
CAST(age_group AS INT) AS age_group, — SMALLINT → cds.Integer
CAST(credit_score AS DOUBLE) AS credit_score, — FLOAT → cds.Double
HEX(profile_hash) AS profile_hash, — BINARY → cds.String
CAST(country_code AS STRING) AS country_code, — CHAR(2) → cds.String
customer_name,
CAST(created_ts AS TIMESTAMP) AS created_ts, — TIMESTAMP_NTZ → cds.Timestamp
TO_JSON(favorite_colors) AS favorite_colors, — ARRAY → JSON String
TO_JSON(preferences) AS preferences, — MAP → JSON String
TO_JSON(address) AS address — STRUCT → JSON String
FROM demo.default.customer_raw;Type mapping reference:Databricks Type CDS-Compatible Type ConversionTINYINT / SMALLINTcds.IntegerCAST(… AS INT)FLOATcds.DoubleCAST(… AS DOUBLE)BINARYcds.StringHEX(…)CHAR(n)cds.StringCAST(… AS STRING)TIMESTAMP_NTZcds.TimestampCAST(… AS TIMESTAMP)ARRAY<T>, MAP<K,V>, STRUCTcds.String (JSON)TO_JSON(…)Step 2 — Install the SDKpip install sap-bdc-connect-sdkStep 3 — Register the Share with ORD Metadatayou can refer this blog in detail about Data Product Sharingfrom bdc_connect_sdk.auth import BdcConnectClient, DataBricksClient
bdc_connect_client = BdcConnectClient(
DataBricksClient(dbutils, “bdc-partner-connect-tenant-<your-tenant-id>”)
)
share_name = “demo_dbx_view”
bdc_connect_client.create_or_update_share(
share_name,
{
“@openResourceDiscoveryV1”: {
“title”: “Demo DBX View”,
“shortDescription”: “Databricks Data Product”,
“description”: “Databricks data product from a View without a primary key”
}
}
)Step 4 — Generate and Register the CSN Schemafrom bdc_connect_sdk.utils import csn_generator
csn_schema = csn_generator.generate_csn_template(share_name)
bdc_connect_client.create_or_update_share_csn(share_name, csn_schema)The SDK inspects the view schema and auto-generates the CDS Schema Notation (CSN) definition. You can review and adjust it before registering.Step 5 — Publishbdc_connect_client.publish_data_product(share_name)The data product is now available in SAP Business Data Cloud for downstream consumption.Why This MattersNo primary key required. Views do not need a primary key — a common blocker with raw or analytical tables.Data governance at the SQL layer. The view becomes your data contract. Consumers see a clean, typed schema; the raw table stays untouched. Masking, filtering, and reshaping happen in SQL.No data redundancy. Type conversion happens on-the-fly in the view — no intermediate tables needed.Flexible schema evolution. Decouple the physical table from the published schema. Evolve either side independently.Before vs. After BeforeNowSupported sourceDelta tables onlyDelta tables and ViewsType compatibilityMust match CDS types in the tableCast incompatible types in the viewPrimary keyRequiredNot required for viewsData duplicationSometimes unavoidableNot neededPublishing Databricks Views as SAP BDC custom data products is especially valuable in medallion architectures where bronze/silver layers carry raw SAP Databricks types that are not directly shareable. The view pattern gives data teams a lightweight, maintainable bridge between the Databricks schema world and the SAP data product ecosystem — without modifying or duplicating source data.”}]] Read More Technology Blog Posts by SAP articles
#SAPCHANNEL