主题
常见问题 (FAQ) 🙋 
Q1:如果多个事件共用一个事件属性,事件属性类型不一致可以入库吗? 
事件属性类型不一致,不可以入库,属性的数据类型取决于上报的第一条数据的属性类型
javascript
-------------------------------事件1
{
	"init_part_date": "2024-12-01",
	"init_part_event": "event_name1", // 事件1
	"properties": {
		"area": "GLOBAL",
		"codexlevel": 1,
		"enchanting_power",
		"is_new_user": false, // 布尔值
	}
	...
	其他信息
	...
}
-------------------------------事件2
{
	"init_part_date": "2024-12-01",
	"init_part_event": "event_name2", // 事件2
	"properties": {
		"area": "GLOBAL",
		"codexlevel": 1,
		"enchanting_power",
		"is_new_user": 0, // 数值,不能正常入库,需要改成布尔值
	}
	...
	其他信息
	...
}Q2: 属性类型上传错误解决方案 
场景描述 
信息
属性的数据类型取决于上报的第一条数据的属性类型,基于可能存在下面的场景:
1. 首次上报类型是文本(string) 
首次上报"注册时间"时将时间传成了文本,后续的数据会继续按照文本进行上报。
2. 首次上报类型不是文本(string) 
业务调整,原有类型不再支持,需要修改属性类型。比如order_id的首次上报类型为数值,后续数据类型为文本。
解决方案 
一、已经上传到YX的历史数据 
- 先在代码中更正该属性数据类型.
- 联系管理员修改属性的数据类型. - :修改类型后,已传入的该属性的数据会被清空,请谨慎评估.
 
二、保留已经上传到YX的历史数据 
方式1: 虚拟属性做数据类型转换,仅适用于首次上报是文本类型 
信息
- 延续原上报的类型到YX(如数值(number)传成字符串(string),继续按字符串(string)类型上报)
- 设置虚拟属性,转换属性的类型.例如:数值(number)传成字符串(string),可以设置如下虚拟事件属性。
- 在分析时使用上一步设置的虚拟属性进行筛选或分组.

方式2: 保留旧属性+上报新属性 
信息
- 传新的属性到YX,并区分属性名。比如原属性名为order_id,新属性名可设为order_id_new.
- 原旧属性不再上传,设置虚拟属性,对新旧属性做判断,取两个字段中的非空值字段的值。虚拟属性SQL创建规则:coalesce("旧属性名","新属性名").
- 在分析时使用上一步设置的虚拟属性进行筛选或分组.

