Question

Background/Problem

I'm trying to do something along the lines of the following but can't find it documented:

  • SQL Azure Database (not VM)
  • Hook it up to some (blob) storage
  • Utilize FileTables to store files to the db/filesystem

Clarification: Rough Architecture

This is what I'm thinking:

   +--------------------+
   | Queue for Requests |
   | For File Packages  |
   +---------+----------+
             |
             |
  +----------v-----------+
  |Worker Role           |
  |Grabs Files to Package|
  +-----------+----------+
              |
              |
     +--------v-------+            +--------------+
     |SQL Azure       |<----------+|Web Site      |
     |Using FileTable |            |Saves to Azure|
     +----------------+            +--------------+
              +
              |
              |
              v
 +--------------------------+
 |RAID 0 Striping -- 500 GB |
 |------------+-------------|
 |            |             |
 | 250 GB     |      250 GB |
 | Disk 1     |      Disk 2 |
 +------------+-------------+

Question

Is this setup possible, and if not, why not?

I have been looking everywhere but without actually paying for a Windows Azure account it's hard to find out ahead of time.

Was it helpful?

Solution

No, SQL Azure does not support filetable, nor filestreams. You can store your files in Azure Blob Storage (see How to use the Windows Azure Blob Storage Service) and store metadata about files (name, type, URL location) in SQL Azure DB.

For a list of SQL Server feature limitations in Windows Azure SQL Database refer to Azure SQL Database Transact-SQL information.

For a list of ALTER DATABASE options supported by Windows Azure SQL Database refer to ALTER DATABASE (Transact-SQL).

OTHER TIPS

Unfortunatelly FileTable and FILESTREAM is not supported. Take a look at:

Features that are not supported in Azure SQL V12

@user193655. As I don't seem to be able to answer you question with a comment. Yes Varchar (or better yet VarBinary) can be used to store file information. It is one of 4 approaches supported by SQL server. Each have merit for different design needs.

Performance wise the cut-off is approx 1Mb. If your files are smaller than that, varbinary is faster than Filestream. As filestream can deliver data much faster than TDS (Tabular Data Stream) but has greater overhead to setup the data transfer operation. (This is based on results published the SQL Dev team)

Of course you also need to consider where this data will be stored. Often it is better to horizontally partition your table & put the Varbinary column in a separate table on a different filegroup.

Note: The SQL Team is working hard to reduce the gaps in feature parity between SQL Azure & SQL Server. So if you are reading this in 2015+ check the docs referenced above. The answer may become "supported".

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top