Prior to API 42 (Spring 18) it was not possible to delete rows in Big Object tables. Now you can delete them using the deleteImmediate
method of the Database class.
Check out the documentation: https://developer.salesforce.com/docs/atlas.en-us.bigobjects.meta/bigobjects/big_object_delete.htm
Any Apex tests that use DML calls will fail and potentially insert bad
data into the target big object. This data won’t be deletable. To test
DML calls, use a mocking framework with the Apex stub API to contain
calls to the target big object.
Also as mentioned in salesforce documentation main use case for big objects are:
- 360° view of the customer — Extend your Salesforce data model to
include detailed information from loyalty programs, e-commerce
transactions, billing and provisioning information, and more.
- Auditing and tracking — Track and maintain a long-term view of your
user’s usage of Salesforce or your customer’s usage of your products
for analysis or compliance purposes
- Historical archive — Maintain
access to historical data for analysis or compliance purposes while
optimizing the performance of your core CRM or Force.com
applications.
So big objects are mostly to be used for auditing purposes. That is the reason they are implemented this way.