Data Services

Additional features have been added to the BigObjects and Async SOQL pilots.

Enhancements to BigObjects (Pilot)

BigObjects now support packaging, full delete lifecycles, partial metadata edits, long text area datatypes, Bulk API queries, and the use of IN() clauses in SOQL.
Packaging Support

BigObjects can be included in the full lifecycle of a managed or unmanaged package. BigObjects can be added to existing packages or included in new packages. Packages are automatically updated with BigObject fields and indexes. Packages make it easier to distribute your BigObjects to other users and orgs.

Full Delete Lifecycle
BigObjects support the full entity delete lifecycle via the Setup UI. Deleted BigObjects are soft deleted, meaning there is a 15-day period where they can be recovered or permanently erased. After 15 days, the BigObject is automatically permanently deleted. To restore a BigObject, change the deployment status and set the required flag for any non-index fields as necessary. Fields in the index will automatically be reset to required.
Partial Metadata Edit

BigObject names, labels, descriptions, deployed status, and field requiredness for non-index fields can be edited via the Setup UI. BigObject field names and labels can also be edited with the Setup UI.

Long Text Area Support

Long text has been added as a valid datatype for BigObjects, allowing BigObjects to store even more kinds of data, like copies of entire standard objects. Long text fields for BigObjects follow the same limits as custom objects.

Bulk API Query Support

Standard synchronous SOQL can be used to query BigObjects via Bulk API. Synchronous SOQL query limitations still apply, and there are limits to the number of records that can be queried in a single bulk query call.

IN() Clause for SOQL

Synchronous SOQL supports the use of a single IN() clause to query BigObject data using multiple criteria. The IN() clause is only supported in synchronous SOQL.

Example

SELECT id, CreatedDate, ContactId
FROM AccountHistory__b 
WHERE id IN("0001", "0042", "0128", "0404")

Enhancements to Async SOQL (Pilot)

Async SOQL supports granular permissions and field substitutions for TargetValueMap.
Granular Permissions

Async SOQL no longer requires the “Modify All Data” permission when running queries. To run queries, “Read” can be set on the source objects and “Create/Update” can be set on the target objects on a per-object basis. The appropriate field permissions are still required.

Field Substitution in TargetValueMap

Any field or alias can be used as the TargetValueMap value in the SELECT clause of a query. TargetValueMap can be used to include descriptive text or to concatenate multiple fields as the target external ID for upsert operations.