Druid multitenancy

Hi ,

We are looking at multitenancy for druid

Based on the documentation I dont see a good fit for our use case.

Our use case would ideally be havign a tenant_id in the same datasource.
However the only catch is we would need replays for a particular tenant without overwriting the segment .

Some alternatives that were tried Example : range based partition
Single-dimension partitioning

“partitionsSpec”: {
“type”: “dimension”,
“targetPartitionSize”: 5000000

But this does not give option of giving a range for the client values

Example dimension value “client1-client1” --> goes to one partition

We also tried
“shardSpec”: {
“type”: “linear”,
“partitionNum”: 0

"shardSpec": {
    "type": "numbered",
    "partitionNum": 0,
    "partitions": 2

(client1 ingest spec with partionNum -1 , client2 ingest spec with partionNum2 etc )
But this does not seem to be used in batch ingestion

The only option seems to be having datasource per client .

Do you have any other options?

If we go ahead with data source per clients , we are expecting worse case 50 datasource * 100 clients.

What are your opinions on this kind of numbers in terms of performance/hardware costs etc.
Checked this post as well https://groups.google.com/forum/#!topic/druid-user/9UjPB_VOm5Q