У меня есть ГБ данных в Nested JSON. Я могу разложить и реляционизировать / сгладить их двумя способами.
Например. из JSON (только образец, реальный JSON имеет гораздо больше полей).
{
"Device": "ABCD",
"Family": "FAB",
"M_Condition": [
{
"Label": "AC",
"Value": "BA"
},
{
"Label": "AD",
"Value": "AC"
}
],
"N_Condition": [
{
"Label": "ID",
"Value": "gdr"
},
{
"Label": "Date",
"Value": "11/18/2019 4:39:26 PM"
},
{
"Label": "Mode",
"Value": "Normal"
}
],
"T_Condition": [
{
"Label": "Module",
"Value": "RF"
},
{
"Label": "KT",
"Value": "MS"
},
"Test_Event_Status": "P"
}
У меня есть опция PIVOT для данных, которая увеличит количество столбцов. количество столбцов увеличивается до 1000 +.
Пример:
| DEVICE | FAMILY | M_Condition_Label_AC | M_Condition_Label_AD | N_Condition_LABEL_ID | N_Condition_LABEL_DATE | ....
1. .. .. .. ..
ИЛИ
Я могу разбить данные, чтобы сгладить их. Например:
|DEVICE | FAMILY | M_CONDITION.LABEL | M_CONDITION.VALUE | N_CONDITION.LABEL | N_CONDITION.VALUE|..
1. .. ..
2. .. ..
3. .. ..
.
.
12 .. ..
При этом количество сгенерированных строк равно 12 (для каждого элемента JSON будет сгенерировано 12 строк). В реальном случае число может быть больше 300. Я планирую сохранить данные в формате паркета и запросить их с помощью Athena. .
Хотелось бы узнать от экспертов преимущества и недостатки преобразования данных двумя вышеупомянутыми способами, а также узнать, какой метод рекомендован в BigData Analytics Industry.