Microsoft Fabric Reference
Reference material for Microsoft Fabric Publishing -- data type mappings, querying, troubleshooting, and CLI arguments.
Data Type Mapping
Source types map automatically to Fabric-compatible Delta Lake types. LakeXpress exports through Parquet, so the mapping is driven by the normalized source type name.
PostgreSQL to Fabric
| PostgreSQL Type | Fabric Type |
|---|---|
SMALLINT | SMALLINT |
INTEGER, INT4 | INT |
BIGINT, INT8 | BIGINT |
NUMERIC(p,s) | DECIMAL(p,s) |
REAL, FLOAT4 | REAL |
DOUBLE PRECISION, FLOAT8 | FLOAT |
VARCHAR(n) | VARCHAR(n) |
TEXT | VARCHAR(MAX) |
CHAR(n) | CHAR(n) |
BOOLEAN | BIT |
DATE | DATE |
TIME | TIME |
TIMESTAMP | DATETIME2 |
TIMESTAMPTZ | DATETIMEOFFSET |
BYTEA | VARBINARY(MAX) |
UUID | UNIQUEIDENTIFIER |
JSON, JSONB, array [] | NVARCHAR(MAX) |
SQL Server to Fabric
| SQL Server Type | Fabric Type |
|---|---|
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INT | INT |
BIGINT | BIGINT |
DECIMAL(p,s) | DECIMAL(p,s) |
MONEY | DECIMAL(19,4) |
SMALLMONEY | DECIMAL(10,4) |
FLOAT | FLOAT |
REAL | REAL |
BIT | BIT |
VARCHAR(n) | VARCHAR(n) |
NVARCHAR(n) | NVARCHAR(n) |
CHAR(n) | CHAR(n) |
NCHAR(n) | NCHAR(n) |
TEXT | VARCHAR(MAX) |
NTEXT | NVARCHAR(MAX) |
DATE | DATE |
DATETIME, DATETIME2, SMALLDATETIME | DATETIME2 |
DATETIMEOFFSET | DATETIMEOFFSET |
VARBINARY | VARBINARY(MAX) |
UNIQUEIDENTIFIER | UNIQUEIDENTIFIER |
Oracle to Fabric
| Oracle Type | Fabric Type |
|---|---|
NUMBER | DECIMAL(38,18) |
NUMBER(p,s) | DECIMAL(p,s) |
FLOAT | FLOAT |
VARCHAR2(n) | VARCHAR(n) |
NVARCHAR2(n) | NVARCHAR(n) |
CHAR(n) | CHAR(n) |
CLOB | VARCHAR(MAX) |
NCLOB | NVARCHAR(MAX) |
DATE | DATE |
TIMESTAMP | DATETIME2 |
RAW, BLOB | VARBINARY(MAX) |
Teradata to Fabric
| Teradata Type | Fabric Type |
|---|---|
BYTEINT, VARBYTE | NVARCHAR(MAX) |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
DECIMAL(p,s), NUMERIC(p,s) | DECIMAL(p,s) |
NUMBER | DECIMAL(38,18) |
FLOAT, REAL | FLOAT |
VARCHAR(n) | VARCHAR(n) |
CHAR(n) | CHAR(n) |
CLOB | VARCHAR(MAX) |
DATE | DATE |
TIME | TIME |
TIMESTAMP | DATETIME2 |
BYTE, BLOB | VARBINARY(MAX) |
MySQL to Fabric
| MySQL Type | Fabric Type |
|---|---|
TINYINT | TINYINT |
SMALLINT | SMALLINT |
MEDIUMINT, YEAR, TINYTEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, TINYBLOB, MEDIUMBLOB, LONGBLOB, JSON | NVARCHAR(MAX) |
INT | INT |
BIGINT | BIGINT |
DECIMAL(p,s) | DECIMAL(p,s) |
FLOAT, DOUBLE | FLOAT |
BIT | BIT |
VARCHAR(n) | VARCHAR(n) |
CHAR(n) | CHAR(n) |
TEXT | VARCHAR(MAX) |
DATE | DATE |
TIME | TIME |
DATETIME, TIMESTAMP | DATETIME2 |
BINARY, VARBINARY, BLOB | VARBINARY(MAX) |
MariaDB to Fabric
| MariaDB Type | Fabric Type |
|---|---|
TINYINT | TINYINT |
SMALLINT | SMALLINT |
MEDIUMINT, YEAR, TINYTEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, TINYBLOB, MEDIUMBLOB, LONGBLOB, JSON | NVARCHAR(MAX) |
INT | INT |
BIGINT | BIGINT |
DECIMAL(p,s) | DECIMAL(p,s) |
FLOAT, DOUBLE | FLOAT |
BIT | BIT |
VARCHAR(n) | VARCHAR(n) |
CHAR(n) | CHAR(n) |
TEXT | VARCHAR(MAX) |
DATE | DATE |
TIME | TIME |
DATETIME, TIMESTAMP | DATETIME2 |
BINARY, VARBINARY, BLOB | VARBINARY(MAX) |
SAP HANA to Fabric
| SAP HANA Type | Fabric Type |
|---|---|
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
DECIMAL(p,s) | DECIMAL(p,s) |
SMALLDECIMAL | DECIMAL(38,18) |
REAL | REAL |
DOUBLE | FLOAT |
BOOLEAN | BIT |
VARCHAR(n) | VARCHAR(n) |
NVARCHAR(n) | NVARCHAR(n) |
CHAR(n) | CHAR(n) |
NCHAR(n) | NCHAR(n) |
CLOB, TEXT | VARCHAR(MAX) |
NCLOB | NVARCHAR(MAX) |
DATE | DATE |
TIME | TIME |
TIMESTAMP, SECONDDATE | DATETIME2 |
VARBINARY, BLOB | VARBINARY(MAX) |
Querying Tables
SQL Analytics Endpoint
-- Query a Delta table
SELECT * FROM your_lakehouse.dbo.customer LIMIT 10;
-- Aggregation
SELECT
c_nationkey,
COUNT(*) as customer_count,
SUM(c_acctbal) as total_balance
FROM your_lakehouse.dbo.customer
GROUP BY c_nationkey
ORDER BY customer_count DESC;
Spark Notebooks
# Read a Delta table
df = spark.read.table("customer")
df.show(10)
# Query with SQL
spark.sql("""
SELECT c_nationkey, COUNT(*) as cnt
FROM customer
GROUP BY c_nationkey
""").show()
# Write results back
result_df.write.mode("overwrite").saveAsTable("customer_summary")
Troubleshooting
Common Issues
Authentication Errors
Error: AADSTS7000215: Invalid client secret provided
Regenerate your client secret in Azure AD and update credentials.json.
Error: The user or service principal does not have access to the workspace
- Verify the Service Principal is added to the workspace
- Ensure it has Member or Contributor role
- Wait a few minutes for permissions to propagate
OneLake Connection Issues
Error: Unable to connect to OneLake storage
- Verify the directory format:
onelake://workspace-name/lakehouse-name/ - Check that the Service Principal has Storage Blob Data Contributor role
- Ensure workspace and lakehouse names are correct (case-sensitive)
Table Creation Failures
Error: Failed to create table in Lakehouse
- Verify the SQL analytics endpoint is correct
- Check that the Lakehouse is active (not paused)
- Ensure sufficient capacity units are available
- Confirm Parquet files were exported to OneLake
SQL Endpoint Connection Issues
Error: Cannot connect to SQL analytics endpoint
- Verify the SQL endpoint hostname
- Ensure the SQL analytics endpoint is enabled
- Check firewall rules if connecting from on-premises
Verifying Export Success
Check files in OneLake:
- Open your Lakehouse in Fabric portal
- Go to the Files section
- Verify Parquet files exist in the expected folders
Check tables:
- Open the SQL analytics endpoint
- Expand Tables in the object explorer
- Verify your tables appear
Debug Mode
./LakeXpress sync \
-a credentials.json \
--lxdb_auth_id lxdb_postgres \
--sync_id <SYNC_ID> \
--log_lev DEBUG
CLI Reference
Fabric Publishing Arguments
| Option | Type | Description |
|---|---|---|
--publish_target ID | String | Credential ID for Fabric publishing (required) |
--publish_method METHOD | Enum | internal (Delta tables) or external (SQL views) |
--publish_table_pattern PATTERN | String | Table naming pattern (default: {table}) |
--n_jobs N | Integer | Parallel workers for table creation (default: 1) |
Full Example
./LakeXpress config create \
-a credentials.json \
--lxdb_auth_id lxdb_postgres \
--source_db_auth_id source_postgres \
--source_db_name tpch \
--source_schema_name tpch_1 \
--fastbcp_dir_path ./FastBCP_linux-x64/latest/ \
--fastbcp_p 2 \
--n_jobs 4 \
--target_storage_id onelake_storage \
--publish_target fabric_lakehouse \
--publish_method internal \
--publish_table_pattern "{schema}_{table}" \
--generate_metadata
./LakeXpress sync \
-a credentials.json \
--lxdb_auth_id lxdb_postgres \
--sync_id <SYNC_ID>
See Also
- Microsoft Fabric Publishing - Setup and usage guide
- Intermediate Storage - OneLake configuration
- CLI Reference - All command-line options