Skip to main content
Version: 1.5 (Latest)

SQL Server backup files → Parquet

Datatypes conversion mapping when exporting a table from a SQL Server full backup (.bak) using the ArpeMSBackup ADBC driver (--connectiontype backup_mssql) to Parquet format.

Platform availability

backup_mssql is available on Windows x64 and Linux x64 only. It is not supported on Linux ARM64.

Compared with adbc_mssql

The mapping is the one of adbc_mssql, with the same values, except for two of its defaults:

  • time(7), datetime2(7), datetimeoffset(7): backup_mssql keeps the 100 ns resolution (nanosecond unit); adbc_mssql writes microseconds by default.
  • geography, geometry: backup_mssql writes the SQL Server binary serialization (as adbc_mssql with adbc.arpemssql.geospatial=varbinary); adbc_mssql converts them to WKB with GeoParquet metadata by default.
SourceSQL Server backup file (backup_mssql)
FormatParquet
FastBCP1.5.0.0
Test StatusOK (31/31 Nullable)

Parquet Schema: testdatatypes_nullable​

namephysical_typeconverted_typelogical_type
col_bigintINT64——
col_intINT32——
col_smallintINT32INT_16IntType(bitWidth=16, isSigned=1)
col_tinyintINT32UINT_8IntType(bitWidth=8, isSigned=0)
col_bitBOOLEAN——
col_decimalFIXED_LEN_BYTE_ARRAYDECIMALDecimalType(scale=2, precision=18)
col_numericFIXED_LEN_BYTE_ARRAYDECIMALDecimalType(scale=2, precision=18)
col_moneyFIXED_LEN_BYTE_ARRAYDECIMALDecimalType(scale=4, precision=19)
col_smallmoneyFIXED_LEN_BYTE_ARRAYDECIMALDecimalType(scale=4, precision=10)
col_floatDOUBLE——
col_realFLOAT——
col_dateINT32DATEDateType()
col_timeINT64—TimeType(isAdjustedToUTC=0, unit=NANOS)
col_datetimeINT64TIMESTAMP_MILLISTimestampType(isAdjustedToUTC=0, unit=MILLIS)
col_datetime2INT64—TimestampType(isAdjustedToUTC=0, unit=NANOS)
col_datetimeoffsetINT64—TimestampType(isAdjustedToUTC=1, unit=NANOS)
col_smalldatetimeINT64TIMESTAMP_MILLISTimestampType(isAdjustedToUTC=0, unit=MILLIS)
col_charBYTE_ARRAYUTF8StringType()
col_varcharBYTE_ARRAYUTF8StringType()
col_ncharBYTE_ARRAYUTF8StringType()
col_nvarcharBYTE_ARRAYUTF8StringType()
col_textBYTE_ARRAYUTF8StringType()
col_ntextBYTE_ARRAYUTF8StringType()
col_binaryBYTE_ARRAY——
col_varbinaryBYTE_ARRAY——
col_imageBYTE_ARRAY——
col_uniqueidentifierBYTE_ARRAYUTF8StringType()
col_xmlBYTE_ARRAYUTF8StringType()
col_geographyBYTE_ARRAY——
col_geometryBYTE_ARRAY——
col_sql_variantBYTE_ARRAYUTF8StringType()

Notes​

  • datetimeoffset is exported as a UTC instant (isAdjustedToUTC=1); the original offset is not kept.
  • time and datetime2 keep their 7 decimal digits (nanosecond unit, the last two digits always zero).
  • uniqueidentifier is written in lowercase (b85ed2b1-24f5-4b71-8d1a-6d1e4e3f0c11), like adbc_mssql.
  • Strings are converted to UTF-8 from the column's collation code page (char, varchar, text) or from UTF-16 (nchar, nvarchar, ntext); UTF-8 collations (SQL Server 2019+) are read as they are.
  • xml is decoded from the binary XML stored in the backup to text.
  • geography, geometry and hierarchyid (CLR types) are exported as their binary serialization.
  • sql_variant is exported as text (CAST(value AS nvarchar); ISO 8601 for dates, 0x… for binary values).
Copyright © 2026 Architecture & Performance.