Azure ML Storage Accounts vs Datastores vs Data Assets (URI File, URI Folder, MLTable) – When should each be used?

Nidhi Priya 661 Reputation points
2026-07-29T07:24:20.28+00:00

I'm trying to better understand the relationship between Azure Machine Learning Storage Accounts, Datastores, and Data Assets, and I'm a bit confused about when each should be used.

From my understanding:

  • A Storage Account is where the actual data resides.

A Datastore acts as a registered connection to the storage.

Data Assets reference data stored in a datastore or another supported location.

However, I'm still unclear about a few things:

What is the practical difference between URI File, URI Folder, and MLTable?

For different data formats, which asset type is recommended?

CSV

  Excel (.xlsx)
  
     JSON
     
        Parquet
        
           Images
           
              Text files
              
              Is MLTable intended only for tabular datasets, or can it also be used with image datasets and other file types?
              
              When would you register a Data Asset instead of simply accessing files directly from a Datastore?
              
              Are there any performance, versioning, or reproducibility benefits to using Data Assets over directly referencing storage?
              
              What is the recommended data organization strategy for production Azure ML projects?
              

I'd appreciate it if anyone could share real-world examples or best practices for organizing data in Azure ML.

Thanks!I'm trying to better understand the relationship between Azure Machine Learning Storage Accounts, Datastores, and Data Assets, and I'm a bit confused about when each should be used.

From my understanding:

A Storage Account is where the actual data resides.

A Datastore acts as a registered connection to the storage.

Data Assets reference data stored in a datastore or another supported location.

However, I'm still unclear about a few things:

What is the practical difference between URI File, URI Folder, and MLTable?

For different data formats, which asset type is recommended?

CSV

  Excel (.xlsx)
  
     JSON
     
        Parquet
        
           Images
           
              Text files
              
              Is MLTable intended only for tabular datasets, or can it also be used with image datasets and other file types?
              
              When would you register a Data Asset instead of simply accessing files directly from a Datastore?
              
              Are there any performance, versioning, or reproducibility benefits to using Data Assets over directly referencing storage?
              
              What is the recommended data organization strategy for production Azure ML projects?
              

I'd appreciate it if anyone could share real-world examples or best practices for organizing data in Azure ML.

Thanks!

Azure Machine Learning
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-07-29T07:25:02.9066667+00:00
    • Storage account: the physical place where data lives.
    • Datastore: an Azure Machine Learning reference to an existing Azure storage account. It gives a common way to access Blob, Files, and ADLS storage, and can use either credential-based or identity-based authentication.
    • Data asset: a named reference to a data location plus metadata. It behaves like a bookmark to frequently used data, without copying the data or adding storage cost.

    For Azure ML data types:

    • uri_file: use when the input is a single file of any format.
    • uri_folder: use when the input is a folder of files.
    • mltable: use when the data is a data table, especially when schema can change, when a subset of large tabular data is needed, for AutoML with tables, or when data is spread across multiple storage locations.

    Practical differences:

    1. uri_file
      • Best for one file.
      • Example scenarios from the docs: a single CSV, a single parquet file, or any one file.
    2. uri_folder
      • Best for a folder of files.
      • Example scenarios: a folder of parquet/CSV files, or unstructured data such as images, text, and audio stored in a folder.
    3. mltable
      • Best when the data should be treated as a table abstraction rather than just files.
      • Recommended for complex or changing schema, large tabular subsets, AutoML with tables, and data spread across multiple storage locations.
      • It can also be used for unstructured data such as images, text, and audio when that data is spread across multiple storage locations.
      • For CSV files with embedded newlines, mltable is the recommended choice because read_delimited supports support_multi_line.

    For the formats listed, the supported guidance is:

    • CSV
      • Single CSV file: uri_file
      • Folder of CSV files: uri_folder
      • CSV with embedded newlines, or when schema handling is important: mltable
    • Parquet
      • Single parquet file: uri_file
      • Folder of parquet files: uri_folder
      • If table semantics, schema evolution, or subsetting are needed: mltable
    • Images
      • Folder of images: uri_folder
      • If image data is spread across multiple storage locations and should be handled as a table abstraction: mltable
    • Text files
      • Single text file: uri_file
      • Folder of text files: uri_folder
      • If files are spread across multiple storage locations and need table-style handling: mltable
    • Excel (.xlsx)
    • JSON
      • The provided material does not give format-specific recommendations for these beyond the general rule that uri_file is for a single file and uri_folder is for a folder.

    On whether MLTable is only for tabular datasets:

    • No. It is a table abstraction, but the documented scenarios also include unstructured data such as images, text, and audio, especially when that data is distributed across multiple storage locations.

    When to register a data asset instead of using a datastore path directly:

    • Register a data asset when the same data is used frequently and a friendly name is preferable to a long URI.
    • Use a data asset when metadata alongside the reference is useful.
    • A data asset is useful for repeatable project organization because it creates a named reference to the source location.

    Benefits of data assets over direct storage references that are explicitly supported:

    • Usability: avoids remembering long URIs.
    • Metadata: stores a copy of metadata with the reference.
    • No extra storage cost: the data stays in its original location.
    • No risk to source integrity from registration: creating the asset does not move or duplicate the data.

    For direct datastore access:

    • Datastores are useful when a team needs a common access layer to storage.
    • Datastore URIs can be used directly, including through fsspec, and can be read like filesystems in Python tools such as Pandas.
    • Datastores also help avoid exposing secrets in scripts because authentication can be handled through the datastore.

    A practical production-oriented strategy supported by the docs is:

    1. Keep the actual data in Azure storage.
    2. Register that storage as a datastore for secure and reusable access.
    3. Use data assets for important datasets that should have stable, friendly names.
    4. Choose the asset type by shape of data:
      • one file -> uri_file
      • one folder -> uri_folder
      • table abstraction / evolving schema / large tabular subsets / multi-location data -> mltable
    5. Prefer URIs for most scenarios unless table-specific capabilities are needed; the glossary explicitly encourages starting with uri_folder and uri_file if not using AutoML.

    For jobs, Azure ML maps URIs to the compute filesystem, and data can be consumed by mount or download modes. That makes URI-based inputs practical for both direct references and registered assets.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.