There is not really a better way to do this than with the split recipe. If you want to have one dataset per event, you need anyway to create these datasets. Maybe you could create the datasets with DSS API but is still not ideal.
The best option would be to change your strategy. You should keep a single dataset and create a partition on the event_id column. To learn more about it, you can read Working with partitions and Repartitioning a non-partitioned dataset.
I hope that helps,