Data structure
RAW uses a hierarchical structure: databases contain tables, and tables contain rows. Each row has a unique key and a JSON value. You can query by key or list rows within a table. There are no enforced schemas; you define the structure your data needs. A CDF project can have a variable number of RAW databases with a variable number of tables with a variable number of key-value objects. You can query the keys using the RAW API and post a maximum of 1000 databases per request.Common use case
RAW is commonly used as a staging area for data before it’s transformed and loaded into CDF’s structured resources. Use the RAW data to spot anomalies in your tabular data or identify which transformations you need to do on your data before ingesting it into the CDF data model. Navigate to Manage staged data in the CDF portal application to view the ingested tabular data in a table or as a data profiling report in the RAW explorer.Primary row key
When you insert rows in a RAW table, you must set a primary row key that only contains unique values. You can’t change this key when it’s set. In the RAW explorer, you can select Generate a new key column to generate a unique key per row. If you’re unsure which primary key to use and want to simulate different scenarios, upload the same file to different tables using separate tabs in your browser.Insert rows
One request inserts at most 10,000 rows. A row key can be at most 1024 characters. Columns together can be at most 5 MiB. One column name and one column value can each be at most 2,621,440 characters. For a larger value, upload a file and store a reference in the row. Insert replaces the columns of a row when the row key already exists. A failed request can leave a partial write. Retry the request. The call inserts and updates.lastUpdatedTime changes only when the new column JSON differs from the stored JSON.
Cursors
GET .../cursors returns cursors for a last-updated time range so you can read rows in parallel. Pass each cursor to read rows. minLastUpdatedTime and maxLastUpdatedTime are ignored when a cursor is set.