The best thing to do is to define your service around an interface:
public interface IRepository
{
void AppendData(string name, string value, DateTime timeStamp);
string[] GetData(string name, DateTime from, DateTime to);
}
Then you will have concreate implementations:
public SqlRepository : IRepository
{
void AppendData(string name, string value, DateTime timeStamp)
{
}
string[] GetData(string name, DateTime from, DateTime to)
{
}
}
Then it will be easy to select or compare each possibilities. You could also implement other possibilities like
SqlWithCacheRepository
where you keep mostly used data in memory.