Here are a few frequently asked questions on the Data Ingestion API.
How can I schedule the pushes?
Celonis extraction schedules are not possible when using the Data Ingestion API. Scheduling should be done in the tool hosting the API calls.
What happens if the table schemas change?
As long as the primary key remains the same, a push with new columns will simply add the columns to the existing table and enter Null values if an older column is excluded.
How do Delta Loads work?
Delta loads (updates or new records) rely on the Primary Key and the Age field. The Age field is typically a date column that indicates when a record was created or updated.
If a new record is inserted with the same Primary Key value, then the one with the latest date is retained. If no Age field is defined, then the new push's record is kept and updates the existing one.
Note that you can only define the Age column at the top table level. Nested tables rely solely on their primary keys and the parent table's fields for delta logic.
How do I convert my files to parquet?
In the sample files we provided, the files were already converted. Here you simple need to look for a package / library that can do it for you. For python for example you can use
pyarrow for example:
from pyarrow import json import pyarrow.parquet as pq
table = json.read_json('C:/python/json_file') pq.write_table(table, 'C:/python/result.parquet') # save json/table as parquet What happens if I change my table's primary key?
Changing a table's primary key means delta loads won't be identified correctly. In this case, we recommend dropping your existing table and performing a full load unless you want to keep the old records.
Similarly, if you remove the primary key, the load will go into "append" mode and no longer check if there are duplicate records.
How can I delete my tables?
For a full reset, we recommend you delete both the ingestion connection table in the UI and the loaded table within your schema.
If there is a table dependency, you may have to add a "CASCADE" to your DROP TABLE SQL statement:
DROP TABLE {table_name} CASCADE How can I push many files from a folder?
This requires a few extra lines of coding. In the resources of this course, you'll find a sample "Ingestion API entire folder". This sample code pushes multiple files to the same table.
How can I monitor and fix errors?
Once a file transfer to Celonis is successfully, it may still throw errors in the ingestion. To see these errors, you can go to the Monitoring option on the connection.
For certain issues you can fix the table schema and retry the ingestion. For others you may have the fix is in the source file itself. Check our documentation on typical ingestion errors for more information.
---