Included in ODBC PowerPack

ODBC Azure Blob Driver for JSON Files

Query JSON blobs from Azure Blob Storage.

Query JSON files stored in Azure Blob Storage containers with plain SQL. Connect with your Account Key, SAS or Azure AD, read one file or a wildcard set including GZip / Zip files, and use the data in SQL Server (T-SQL) or your BI, ETL and reporting tools, all without writing code.

Included in the Professional edition and above

ZappySys ODBC Driver - Create Azure Blob JSON Driver
Driver UI, SQL query and live preview

Trusted by data teams worldwide

MicrosoftIBMOracleDell TechnologiesHPCiscoAT&TVerizonDHLFedExUPSWalmart

Also rated on Capterra★★★★★ , Trustpilot★★★★★ and BBBA+ — see why teams trust ZappySys

At a glance

What the Azure Blob Driver for JSON Files can do

Query JSON blobs from Azure Blob Storage.

JSON files in Azure Blob

Query JSON files stored on Azure Blob Storage containers as tables, without downloading them first.

  • Connect with Account Name and Account Key (or SAS / Azure AD)
  • Single file or wildcard
  • Sub-folders with RECURSIVE

See the SQL example

Compressed files

Read GZip and Zip compressed files with the FileCompressionType option.

  • None, Zip or GZip
  • Wildcards across archives
  • Same SQL

See the SQL example

Familiar SQL

Use WHERE, ORDER BY, GROUP BY and built-in math, string, date and JSON functions on top of the data source.

  • Standard SELECT syntax
  • Custom functions in the SQL dialect
  • Driver options in a WITH clause

Query examples

Works with the tools you have

Any ODBC-compliant tool can use the DSN: Power BI, Tableau, Qlik, SSRS, Informatica, Excel and SSIS.

  • Create a DSN once, reuse it everywhere
  • 32-bit and 64-bit ODBC
  • Stored in the standard ODBC Data Source Administrator

Setup guide

Use it from code

Connect from Java, C#, Python, PowerShell and more with an ODBC connection string that names the DSN.

  • Standard ODBC connection strings
  • Parameterized queries
  • Same SQL as in the UI

Python example

SQL Server via Data Gateway

Query the driver from SQL Server (linked server / OPENQUERY) without installing it on the SQL Server machine, through the Data Gateway.

  • No driver install on the server
  • Works with SQL Server 2012 through 2025 (32/64 bit)
  • Same DSN, same SQL

About Data Gateway

See all features
  • Read JSON files from Azure Blob Container using familiar SQL Query language
  • Integrate insight any ODBC Compliant Reporting / ETL tools (e.g. Power BI, Tableau, Qlik, SSRS, Informatica, Excel, SSIS)
  • Support for programming languages such as JAVA, C#, Python, PowerShell and more…
  • Tight integration with Microsoft SQL Server (With support for Gateway Option – No need to install Driver on Server)
  • Familiar SQL Query language support including WHERE, ORDER BY, GROUP BY constructs
  • Support for custom math/ string / datetime / JSON functions in SQL query Language
  • Support for Array Flattening and Complex Transformations for 2D arrays (See this article )
  • Read single or multiple files (wildcard pattern supported e.g. *.json)
  • Support for reading Zip and Gzip compressed files (stream mode)
  • Support missing columns at the end (Auto fill with null values)
  • Option to pivot data (transform columns into rows)
Runs in your environment ·

SQL Server 2012–2025

through the Data Gateway · Read the FAQ

Ways to use it

Pick how you reach your data.

Configure the DSN once, then query it from any ODBC tool or from SQL Server.

Query one JSON file.

Set SRC to the path of a file in your container.

  • Credentials: Account Name and Account Key (or SAS / Azure AD)
  • SQL on top of the file
  • Preview in the UI
ZappySys ODBC Driver - Create Azure Blob JSON Driver

Inside the UI

The driver UI, step by step.

Real screens from the ZappySys ODBC driver configuration.

Create the DSN

Add a user or system DSN and pick the Azure Blob Driver for JSON Files.

SQL example

Write SQL. Get a flat table.

The driver reads files in Azure Blob Storage containers, flattens the JSON and lets you use WHERE, ORDER BY, GROUP BY and functions on top. Below: a sample document, the SQL query and the rows it returns.

  1. Sample JSON data

    A JSON file in your container, shown here as a sample.

    customers.json

    {
      "Customers": [
        { "CustomerID": "C1", "CompanyName": "Company 1", "City": "Atlanta" },
        { "CustomerID": "C2", "CompanyName": "Company 2", "City": "Boston" },
        { "CustomerID": "C3", "CompanyName": "Company 3", "City": "Atlanta" }
      ]
    }
  2. Run the SQL query

    SQL QuerySELECT CustomerID, CompanyName FROM $ WHERE City = 'Atlanta' ORDER BY CompanyName WITH ( SRC = 'Northwind-Container/customers*.json', Filter = '$.Customers[*]' )

    Paste the statement into the driver’s Query Editor, or run it from any ODBC tool or language.

    WITH (…) clause carries driver options, so a single DSN can read many sources.

  3. Rows returned to your tool

    Illustrative output rows from the sample input
    CustomerID CompanyName
    C1 Company 1
    C3 Company 3

    Connect Power BI, Excel, SSIS, Python or SQL Server to the DSN to get the same rows.

Illustrative input and output. More query samples are in the online help.

SQL query examples

Copy a query, change the source, run it.

13 of the 30 examples from the Azure Blob Driver for JSON Files help. Open one to see the SQL.

Read files, API responses and objects as rows.

Query Single File

This example shows how to query single JSON file (For multiple file use wildcard (i.e. *.json)). This example selects root level hierarchy (i.e $ as table name). Use table selector from toolbar to exact data from different hierarchy (i.e table).

SELECT * FROM $ WITH (SRC='zappysys-public-bucket/cust-1.json')

Open this example in the help

Query Multiple Files

This example shows how to query multiple JSON files using wildcard (i.e. *.json). This example selects root level hierarchy (i.e $ as table name). Use table selector from toolbar to exact data from different hierarchy (i.e table).

SELECT * FROM $
WITH (
    SRC='zappysys-public-bucket/cust*-?.json'
    --,RECURSIVE='True' --Include files from sub folder
)

Open this example in the help

Query direct JSON string (embedded inside query)

This example shows how to query direct JSON string embedded inside query. This is useful for testing purpose. In real world this may not be the case because data may be coming from File or URL (API call).

SELECT * FROM rows
WITH
(DATA='
{
  rows : [
        {id:1, name: "AAA"},
        {id:2, name: "BBB"},
        {id:3, name: "CCC"}
  ]
}'
)

Open this example in the help

Query with static Metadata (META option / Override Mode)

This example shows how to supply custom Metadata rather than relying dynamic metadata detection (based on 300 rows scanning). If you run query you can click on [View Metadata] button to generate default metadata.

SELECT * FROM rows
WITH
(DATA='
{
  rows : [
        {id:1, checknumber:"0001", name: "AAA"},
        {id:2, checknumber:"0002", name: "BBB"},
        {id:3, checknumber:"0003", name: "CCC"}
  ]
}'
--//Method-1: >>>DIRECT META (compact mode)<<<
,META='id:int;checknumber:string(10);name:string(10)'
-- Add: @OverrideMode:1 in the column list to override meta for only specific column(s) - In below example we are changing default datatype/length for id and checknumber, all other columns are dynamic so dont have to supply in META clause
--,META='@OverrideMode:1;id:int;checknumber:string(10)'

--//Method-2: >>>DIRECT META (json mode)<<<
--,META='[{Name:"id",Type:"Int32"},{Name:"checknumber",Type:"String",Length:10},{Name:"name",Type:"String",Length:10}]'
-- Add: @OverrideMode entry in the column list to override meta for only specific column(s). No need to set Type for that entry - In below example we are changing default datatype/length for id and checknumber, all other columns are dynamic so dont have to supply in META clause
--,META='[{Name:"@OverrideMode"}, {Name:"id",Type:"Int32"},{Name:"checknumber",Type:"String",Length:10}]'

--//Method-3: >>>META from File <<<
--,META='c:/data/meta.json'

--//Method-4: >>>META from Internal Storage - Just refer entry by name <<<
--,META='MY_META_STORAGE_NAME'

)

Open this example in the help

Escape Sequence (String Literals with new lines, tabs)

This example shows how to use escape sequence in String Literals (Quoted values (single quotes) in WITH, SELECT or some other clause if driver supports). You can use @ symbol before string literal to allow special characters (e.g. /r /n /t /v /u0041 //).

SELECT * FROM rows
WITH
(DATA=@'{rows : [{id:1, name: "AA\u0041"},\r\n {id:2, name: "BBB"},\r\n {id:3, name: "CCC"}]}'
)

Open this example in the help

Query Large Compressed File (From URL or Local disk)

This example shows how to read very large file from local disk or URL. You can read uncompressed or compressed file (in our example its GZip compressed file). Using –FAST option in your Filter enables Streaming Mode.

SELECT * FROM $
--LIMIT 10
WITH(
 Filter='$.LargeArray[*]--FAST' --//Adding --FAST option turn on STREAM mode (large files)
,SRC='zappysys-public-bucket/large_file_10k_largearray_prop.json.gz'
--,SRC='zappysys-public-bucket/large_file*.json.gz'
,IncludeParentColumns='False'  --//This Must be OFF for STREAM mode (read very large files)
,FileCompressionType='GZip' --Zip or None (Zip format only available for Local files)
)

Open this example in the help

Query Simple 2D Array

This example shows how to query compact 2D array (array inside array) where column name is not repeated. You can specify Simple 2D Transformation along with filter to select column name (e.g. $.columns[*])

SELECT * FROM rows
WITH(
--enter path in SRC or use static value in DATA'
--SRC='zappysys-public-bucket/api/data.json'
--SRC='zappysys-public-bucket/some*.json'
--SRC='zappysys-public-bucket/somefile.json'
DATA='
{
  "columns": ["RecordID","CustomerID","CustomerName"],
  "rows": [ [1,"AAA","Customer A"], [2,"BBB","Customer B"], [3,"CCC","Customer C"] ]
}'
,ArrayTransformType='TransformSimpleTwoDimensionalArray'
,ArrayTransColumnNameFilter='$.columns[*]'
)

Open this example in the help

See all 30 SQL examples in the help

Compatibility and requirements

Built for Windows, and for your own environment.

  • Windows 11, 10, 8 and 7, and Windows Server 2022, 2019, 2016, 2012 R2 and 2008
  • .NET Framework 4.x. The JDBC Bridge Driver also needs Java 8 or later
  • 32-bit and 64-bit ODBC drivers. SQL Server 2012 through 2025 through the Data Gateway
  • Self-hosted: drivers run in your Windows process, business data does not pass through ZappySys servers, and credentials stay in your DSN
  • Free trial of ODBC PowerPack: test with your own data before you buy

FAQ

Questions about the Azure Blob Driver for JSON Files

Which tools and languages can use this driver?

Any ODBC-compliant tool, such as Power BI, Tableau, Qlik, SSRS, Informatica, Excel and SSIS. You can also connect from Java, C#, Python, PowerShell and other languages with an ODBC connection string.

Do I need to install the driver on SQL Server?

No. With the Data Gateway option the driver runs on the gateway machine and SQL Server connects to it through a linked server.

Which edition includes the Azure Blob Driver for JSON Files?

The Azure Blob Driver for JSON Files is included in the Professional and Enterprise editions of ODBC PowerPack. See the edition comparison for the full list.

Can I query many files, or compressed files?

Yes. Use a wildcard in SRC, add RECURSIVE='True' for sub-folders, and set FileCompressionType to GZip or Zip.

Can I save a query to reuse it?

Yes. Save a query as a virtual table or a stored procedure (custom objects) in the DSN. Tools then see it like a normal table, and a procedure can take parameters. See custom objects in ODBC drivers.

Is there an SSIS version?

Yes. This driver uses the same data engine as the JSON Source in SSIS PowerPack.

Which SQL Server and Windows versions are supported?

Support for SQL Server 2025, 2022, 2019, 2017, 2016, 2014 and 2012 (32/64 bit) through the Data Gateway. See the system requirements.

Can I try it before buying?

Yes. Download ODBC PowerPack, create a DSN and test your own data before you buy.

Independent ratings

Trusted by data teams, recognized by the industry

See why teams trust ZappySys (opens in new tab)

What customers say

  • Customer story

    ZappySys has been a fantastic way to bring our small company into the world of APIs, automation, and systems integration by providing tools within an easy-to-use framework.

    Ben KingeryOxspring Paul
  • Customer story

    At Synchronous Customers, we need to connect various types of data quickly. The super handy ZappySys connectors and great documentation let us do it without writing a lot of code.

    Joel ConnerSynchronous Customers
  • Customer story

    We have worked with the ZappySys support team for over a year and have consistently found them extremely helpful — resourceful and creative in offering multiple solutions to our challenges.

    Senthil SekarPublicis Groupe
  • Trustpilot

    I’ve been using ZappySys for over 6 years — it makes development faster, and I introduced it to my current company.

    Anna JohnsonTrustpilot review
  • Customer quote

    I submitted a support request and had someone logged in and fixing things within 2 hours.

    Barry Wilson
  • Customer quote

    The REST source is very powerful — the only thing I found I could use after trying components from major vendors.

    Jes KirkupKTC
  • Customer quote

    Whenever we run into an obstacle, ZappySys has a solution for us. We are so glad that we chose ZappySys PowerPack.

    Kevin ChenBerricle

Start your free trial today

Install ODBC PowerPack and add a Azure Blob Driver for JSON Files DSN.

Preview your data in the driver UI before you connect your tool.

  • One DSN, many toolsPower BI, Excel, SSIS, Python and SQL Server can all use it.
  • Free trialTest the driver with your own data before you buy.
  • Live supportHelp during your trial and after purchase.

New purchases may be eligible for refund review within 30 days. See the refund policy.

Talk to an engineer before or during your trial.

1 / 12