Passing an embedded object in an event results in the embedded object's properties to show ints

I noticed that when sending an embedded object in one of the properties of my `event` track,  the numbers in that object show up as an INT in the database when they should be a FLOAT.  Has anyone else had this problem?

2replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hey David,  

    Thanks for your question.  

    Our ETL process uses a single event to determine what the column types should be for specific properties passed in a track call for example.  So if an int was the first thing passed for a specific property then that column type will be set to int.  

    Unfortunately,  Redshift does not allow for column type changes after the column has been created.  This unfortunately makes it difficult to change column types without a significant number of changes on our end.  For that reason,  full column type changes and backfills are only available to our business tier customers.  We've been discussing potential solutions to this problem for self service customers so feel free to shoot us a note at friends@segment.com and we can help you out!

    Reply Upvote
  • Thanks for the response Alexandra.  I think there may be undesired affects from taking the first value you receive and determining type when it comes to numbers.  For example,  if I send over a data type labeled 'Price' and the first value I happen to send is 25.0,  it will be recorded as an int on your end since JSON eliminates the decimal on whole numbers.

    Reply Upvote 1