Azure Storage Explorer is a free tool from Microsoft that allows you to work with Azure Storage data on Windows, macOS, and Linux. This topic describes how to use it to upload and download data from Azure Blob Storage. The tool can be downloaded from Microsoft Azure Storage Explorer.
This menu links to technologies you can use to move data to and from Azure Blob storage:
Note
Open Storage Explorer. In the left pane, expand the storage account within which you wish to create the blob container. Right-click Blob Containers, and - from the context menu - select Create Blob Container. A text box will appear below the Blob Containers folder. Enter the name for your blob container. Freeware Azure Blob Storage explorer allows tracking, analyzing and debugging your usage of storage. It also comes with full support for Microsoft Azure Storage Analytics. CloudBerry Explorer PRO makes Azure Cloud Storage management even easier, more secure and efficient.
If you are using VM that was set up with the scripts provided by Data Science Virtual machines in Azure, then Azure Storage Explorer is already installed on the VM.
Note
For a complete introduction to Azure Blob Storage, refer to Azure Blob Basics and Azure Blob Service.
This document assumes that you have an Azure subscription, a storage account, and the corresponding storage key for that account. Before uploading/downloading data, you must know your Azure Storage account name and account key.
The following steps document how to upload/download data using Azure Storage Explorer.
Azure Data Explorer is a fast and highly scalable data exploration service for log and telemetry data. Azure Data Explorer offers ingestion (data loading) from Event Hubs, IoT Hubs, and blobs written to blob containers.
In this article, you learn how to ingest blobs from your storage account into Azure Data Explorer using an Event Grid data connection. You'll create an Event Grid data connection that sets an Azure Event Grid subscription. The Event Grid subscription routes events from your storage account to Azure Data Explorer via an Azure Event Hub. Then you'll see an example of the data flow throughout the system.
For general information about ingesting into Azure Data Explorer from Event Grid, see Connect to Event Grid. To create resources manually in the Azure portal, see Manually create resources for Event Grid ingestion.
BlobStorage
, StorageV2
, or Data Lake Storage Gen2.Create a table in Azure Data Explorer where Event Hubs will send data. Create the table in the cluster and database prepared in the prerequisites.
In the Azure portal, under your cluster, select Query.
Copy the following command into the window and select Run to create the table (TestTable) that will receive the ingested data.
Copy the following command into the window and select Run to map the incoming JSON data to the column names and data types of the table (TestTable).
Now connect the storage account to Azure Data Explorer, so that data flowing into the storage is streamed to the test table.
Under the cluster you created, select Databases > TestDatabase.
Select Data ingestion > Add data connection.
Select the connection type: Blob storage.
Fill out the form with the following information:
Setting | Suggested value | Field description |
---|---|---|
Data connection name | test-grid-connection | The name of the connection that you want to create in Azure Data Explorer. |
Storage account subscription | Your subscription ID | The subscription ID where your storage account is. |
Storage account | gridteststorage1 | The name of the storage account that you created previously. |
Event type | Blob created or Blob renamed | The type of event that triggers ingestion. Blob renamed is supported only for ADLSv2 storage. Supported types are: Microsoft.Storage.BlobCreated or Microsoft.Storage.BlobRenamed. |
Resources creation | Automatic | Define whether you want Azure Data Explorer to create an Event Grid Subscription, an Event Hub namespace, and an Event Hub for you. To create resources manually, see Manually create resources for Event Grid ingestion |
Select Filter settings if you want to track specific subjects. Set the filters for the notifications as follows:
/blobServices/default/containers/[container prefix]
./blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
.Select Next: Ingest properties.
Fill out the form with the following information. Table and mapping names are case-sensitive:
Ingest properties:
Setting | Suggested value | Field description |
---|---|---|
Table name | TestTable | The table you created in TestDatabase. |
Data format | JSON | Supported formats are Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO, RAW, and W3CLOG. Supported compression options are Zip and GZip. |
Mapping | TestMapping | The mapping you created in TestDatabase, which maps incoming JSON data to the column names and data types of TestTable. |
Advanced settings | My data has headers | Ignores headers. Supported for *SV type files. |
Note
You don't have to specify all Default routing settings. Partial settings are also accepted.
Select Next: Review + Create
Review the resources that were auto created for you and select Create.
Wait until the deployment is completed. If your deployment failed, select Operation details next to the failed stage to get more information for the failure reason. Select Redeploy to try to deploy the resources again. You can alter the parameters before deployment.
Now that Azure Data Explorer and the storage account are connected, you can create sample data.
We'll work with a small shell script that issues a few basic Azure CLI commands to interact with Azure Storage resources. This script does the following actions:
You can use Azure Cloud Shell to execute the script directly in the portal.
Save the data into a file and upload it with this script:
Note
To achieve the best ingestion performance, the uncompressed size of the compressed blobs submitted for ingestion must be communicated. Because Event Grid notifications contain only basic details, the size information must be explicitly communicated. The uncompressed size information can be provided by setting the rawSizeBytes
property on the blob metadata with the uncompressed data size in bytes.
If you are ingesting data from ADLSv2 storage and have defined Blob renamed as the event type for the data connection, the trigger for blob ingestion is blob renaming. To rename a blob, navigate to the blob in Azure portal, right click on the blob and select Rename:
You can specify the ingestion properties of the blob ingestion via the blob metadata.
Note
Azure Data Explorer won't delete the blobs post ingestion.Retain the blobs for three to five days.Use Azure Blob storage lifecycle to manage blob deletion.
Note
Azure Data Explorer has an aggregation (batching) policy for data ingestion designed to optimize the ingestion process.By default, the policy is configured to 5 minutes.You'll be able to alter the policy at a later time if needed. In this article you can expect a latency of a few minutes.
In the Azure portal, under your event grid, you see the spike in activity while the app is running.
To check how many messages have made it to the database so far, run the following query in your test database.
To see the content of the messages, run the following query in your test database.
The result set should look like the following image:
If you don't plan to use your event grid again, clean up the Event Grid Subscription, Event Hub namespace, and Event Hub that were auto-created for you, to avoid incurring costs.
In Azure portal, go to the left menu and select All resources.
Search for your Event Hub Namespace and select Delete to delete it:
In the Delete resources form, confirm the deletion to delete the Event Hub Namespace and Event Hub resources.
Go to your storage account. In the left menu, select Events:
Below the graph, Select your Event Grid Subscription and then select Delete to delete it:
To delete your Event Grid data connection, go to your Azure Data Explorer cluster. On the left menu, select Databases.
Select your database TestDatabase:
On the left menu, select Data ingestion:
Select your data connection test-grid-connection and then select Delete to delete it.