An Azure machine learning service for building and deploying models.
- 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:
-
uri_file- Best for one file.
- Example scenarios from the docs: a single CSV, a single parquet file, or any one file.
-
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.
-
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,
mltableis the recommended choice becauseread_delimitedsupportssupport_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
- Single CSV file:
- Parquet
- Single parquet file:
uri_file - Folder of parquet files:
uri_folder - If table semantics, schema evolution, or subsetting are needed:
mltable
- Single parquet file:
- Images
- Folder of images:
uri_folder - If image data is spread across multiple storage locations and should be handled as a table abstraction:
mltable
- Folder of images:
- 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
- Single text file:
- Excel (.xlsx)
- JSON
- The provided material does not give format-specific recommendations for these beyond the general rule that
uri_fileis for a single file anduri_folderis for a folder.
- The provided material does not give format-specific recommendations for these beyond the general rule that
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:
- Keep the actual data in Azure storage.
- Register that storage as a datastore for secure and reusable access.
- Use data assets for important datasets that should have stable, friendly names.
- 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
- one file ->
- Prefer URIs for most scenarios unless table-specific capabilities are needed; the glossary explicitly encourages starting with
uri_folderanduri_fileif 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: