DB for storing simple time-stamped values I don't have that much experience in databases but I need to accomplish this as best as I can. It is rather specific. 

Database will contain only data structured like this:
dataID-timestamp-value

Value could be of any datatype. There will be up to 20 million new entries per hour. Read queries would always look for one or few dataIDs in a specific time period, i.e. - yesterday between 12:00 - 13:00 or something like that. And these queries need to be fast on relatively weak hardware. Old data can be overwritten if space is scarce. 

I am open to any suggestions, sql, nosql and so on. 

Thank you.
How unique are the DataID's?  Are there just a handful of DataID's for the 20 million entries per hour or are DataID's more numerous?  

But if your most frequent query is based on a narrow time frame first and then specific DataID's then this create statement should give you decent performance.  You will need to change the data types to what makes sense for your environment.

Note: statements are for MS-SQL

CREATE TABLE TestData 
(
DataID VARCHAR(20) NOT NULL
, [TimeStamp] DATETIME2 NOT NULL
, Value VARCHAR(1000) NULL
)
GO

CREATE CLUSTERED INDEX IDX_C_TestData ON TestData ([TimeStamp], DataID)
GO