Pricing and Billing
TileDB Cloud charges in three ways:
- $0.11 / CPU / hour for a task time: This is the time it takes for a task from beginning to completion. Depending on the task and user parameters (see Array Access, Serverless SQL and Serverless UDFs), the number of CPUs used will be different. This price of $0.11 per CPU-hour is based on 1 CPU usage. The time is multiplied by the number of CPUs used in the task. At the end of the month, usage is summed up and rounded to the nearest second.
- $0.14 / GB of data egress: This is the amount of data retrieved from the service to your client, not the data processed by a query. Egress is summed up and rounded to the GB at the end of the month.
- $0.06 / CPU / hour for the notebook server duration: Notebooks are charged for how long the server is running and based on the size of the server. See Jupyter Notebooks for the instance types along with the number of CPUs for each type.
In TileDB Cloud you need to register your own data, which you must currently store in your own cloud buckets. TileDB Cloud does not offer storage hosting. You just register your already existing cloud-stored arrays (created with TileDB Embedded), and TileDB Cloud manages access and computation on those arrays without unnecessary copying and movement of the data.
All access via the web console, excluding notebook usage, is free and no charges are applied. TileDB Cloud bills you monthly.
Suppose you run a UDF which takes five minutes and returns no data to your client outside TileDB Cloud. Assume also that the UDF uses 2 CPUs. You will then be charged:
- Query time: (5 / 60) hours * 2 CPUs * $0.11 per CPU-hour = $0.0183
- Data retrieved: $0.00
- Total: $0.02
Suppose you slice 3 GB from a TileDB array using TileDB Cloud and the read access takes 45 seconds. Suppose the read query uses 16 CPUs. You will be charged:
- Task time: (0.75 / 60) hours * 16 CPUs * $0.11 per CPU-hour = $0.0225
- Egress: 3 GB * $0.14 per GB = $0.42
- Total: $0.0225 + $0.42 = $0.44
Suppose you write 256 MB to a TileDB array and the write request takes 20 seconds. Suppose the write query uses 16 CPUs. You will be charged:
- Query time: (0.33 / 60) hours * 16 CPUs * $0.11 per CPU-hour = $0.01
- Data retrieved: 0 (no charge for writing, but see note below)
- Total: $0.01
Suppose you run a serverless SQL query which performs an aggregation on some TileDB array slice that takes 90 seconds. If the result is 1MB, you are charged:
- Query time: (1.5 / 60) hours * 16 CPUs * $0.11 per CPU-hour = $0.044
- Data retrieved: (1 / 1024) GB * $0.14 per GB = $0.00013671875
- Total: $0.044
Observe that you pay only for the 1 MB you retrieved (which is negligible), regardless of how many bytes the UDF processed. You can see here the benefit of reductions with serverless computations.
Suppose you run a small notebook instance (2 CPUs) and keep it active for 8 hours. You will be charged:
- Notebook time: 8 hours * 2 CPUs * $0.06 per CPU-hour = $0.96
Suppose you run a large notebook (16 CPUs) and keep it active for 30 minutes. You will be charged:
- Notebook time: 0.5 hours * 16 CPUs * $0.06 per CPU-hour = $0.48
If you do not belong to any organization, then all charges (array access, UDF, SQL, notebooks) are directed to your personal account. If you belong to one or more organizations, the following rules apply:
- 1.For SQL, UDFs and notebooks , TileDB Cloud charges the user's first organization (the one that comes back from the database first).
- 2.For array access, TileDB Cloud determines how the user got access to the array. Suppose the user is called
userand belongs to one or more organizations, but the "first" is called
org. Here are the possible scenarios:
- 1.Array owned by
- 2.Array owned by
- 3.Array owned by another organization
org2, shared with
- 4.Array owned by
org2, shared with
orgAND shared with
userdirectly -> Error unless
Default namespace to chargeis configured (see below)
- 5.Array owned by another user
user2(not an organization) ->
TileDB Cloud also allows you to specify explicitly who to charge:
- 2.In your profile
Settings, there is a field called
Default namespace to charge.