I believe that there are multiple approaches you can consider to optimize the process. because simply each tool or service has its strengths, and the choice often depends on specific requirements such as speed, cost, ease of setup, and features like data transformation or integration capabilities.
1st case : Azure Data Factory (ADF) with SHIR
You can optimize the data transfer performance in ADF by tweaking the parallelism settings, batch size, and by utilizing DIUs more effectively (you may need to consider dedicating a machine for the SHIR).
For ongoing synchronization beyond the initial load, consider implementing incremental loads using ADF where you transfer only new or changed data after the initial full load, this way you can succeed in reducing the volume of data to be moved and the time required for subsequent data transfers.
2nd case : AzCopy
As you've noted, AzCopy is faster for moving data from point A to point B. Simply, because it's optimized for speed and efficiency in data transfer scenarios and is a great choice for bulk data migrations without the need for transformation.
AzCopy can be integrated into scripts for automation, with the ability of scheduling and having incremental copy operations.
3rd case : Azure Databricks
If your data transfer needs include transformation, cleansing, or other forms of processing, Azure Databricks could be a powerful tool. Databricks can handle large datasets efficiently and can write data into Azure Blob Storage quickly.
Also, it offers massive scalability, which can be a strong point if your data processing needs grow or fluctuate over time.
4th case : Specific Configurations for SMB/NFS
You need to verify first if your on-premises network is optimized for the data transfer. This might involve configuring your network for high throughput or ensuring a direct, fast connection to Azure.
Regardless of the tool, running parallel copies (where possible) can significantly reduce transfer time. This requires careful planning to avoid overloading your network or source file systems.
Consider Azure Files, why not ?
For a hybrid approach, Azure File Sync can synchronize your on-premises file servers with Azure Files (and subsequently move data to Blob Storage if needed). It is a good balance of cloud integration and local performance/accessibility.