Hi everyone,
I have been trying to ingest our BigQuery data to Amplitude. But I have been facing a very weird problem. In some of our tables, We have `anonymous_id` with a value `anonymous` with string data type and I use this value in place of `user_id` in ingest_config sql query but I get ingestion error with `no user_id or device_id found in the events` whereas in another table, I do the same with same `anonymous_id` replacing `user_id` but all the data of the table have been successfully ingested into Amplitude. I am not able to understand the difference?
Attaching the ingest_config query here for both the `table1` and `table2` respectively:
SELECT<br /> event AS event_type,<br /> STRUCT(event_text as event, event_status_flag as event_status_flag, context_page_url as context_page_url)AS event_properties, -- must be JSON<br /> UNIX_MILLIS(original_timestamp) AS time, -- event time, must be in milliseconds since epoch (timestamp), e.g. UNIX_MILLIS(timestamp)<br /> loaded_at, -- Timestamp column required for time based import only, usually server upload time or database insertion time, must be in TIMESTAMP<br /> anonymous_id as user_id<br />FROM `vibi-prod.team_monitor_website.download_page_call`
Query for table 1 with ingestion error and the error is: {"offset":0,"error":"events must have either user_id or device_id or both (Missing device or user id):
SELECT<br /> name AS event_type,<br /> STRUCT(path as page_path,<br /> url as page_url,<br /> name as page_name) AS event_properties, -- must be JSON<br /> UNIX_MILLIS(original_timestamp) AS time, -- event time, must be in milliseconds since epoch (timestamp), e.g. UNIX_MILLIS(timestamp)<br /> loaded_at, -- Timestamp column required for time based import only, usually server upload time or database insertion time, must be in TIMESTAMP<br /> anonymous_id as user_id<br />FROM `vibi-prod.team_monitor_website.pages`
Query for table2 where I get no ingestion error. But what I can guess is in the above `Table1` `anonymous_id` value is `anonymous` wherese in `table2` the value of `anonymous_id` is generated using `uuidv4()` method.
So, my question is, does Amplitude only accepts user_id value is `02c041ca-cf5b-40c0-a214-95bb4b2ebc7f` such format only?