184 похожих чатов

Сообщество, не нашел решения. Обращаюсь. Хочу разобрать JSON строку в именованный

tuple с разными типами.
Например такой: Tuple(typeCode String , "text" String , "code" String , "pregnancyTerm" Int32 , "pregnancyTermUnit" String)

CH 22.8.5.29 в WSL2 под Docker (data volume лежат в linux части FS).

При разборе
select
JSONExtract('{"typeCode":"a", "text":"B", "code":"C", "pregnancyTerm":2, "pregnancyTermUnit":"mg"}','Tuple(typeCode String , "text" String , "code" String , "pregnancyTerm" Int32 , "pregnancyTermUnit" String )')
; -- not works! SQL Error: java.lang.IllegalArgumentException: Unknown data type: typeCode String

select
tupleElement(JSONExtract('{"typeCode":"a", "text":"B", "code":"C", "pregnancyTerm":2, "pregnancyTermUnit":"mg"}','Tuple(typeCode String , "text" String , "code" String , "pregnancyTerm" Int32 , "pregnancyTermUnit" String )'),'typeCode')
; -- works!

Вопросы:
1. Получается, что JSONExtract в именованный tuple работает, но как к нему корректно обращаться? У меня это не финальная конструкция - в итоге будет Массив именованных туплей Array(Tuple(typeCode String , "text" String , "code" String , "pregnancyTerm" Int32 , "pregnancyTermUnit" String) ,но при его формировании падает с той же ошибкой
2. Оптимально ли применение такой конструкции Array(Tuple()) для моего характера разнотипных данных?

4 ответов

14 просмотров

WITH JSONExtract('[{"typeCode":"a", "text":"B", "code":"C", "pregnancyTerm":2, "pregnancyTermUnit":"mg"}]', 'Array(Tuple(typeCode String , "text" String , "code" String , "pregnancyTerm" Int32 , "pregnancyTermUnit" String))') AS x SELECT tupleElement(x, 'text') AS res Query id: 33d70fbb-95bd-43eb-a9ec-2f592286ff2d ┌─res───┐ │ ['B'] │ └───────┘ Ну через tupleElement и обращаться > 2. Оптимально ли применение такой конструкции Array(Tuple()) для моего характера разнотипных данных? А что вы делать с ними будете то

TT- Автор вопроса
Dmitry [Altinity] Titov
WITH JSONExtract('[{"typeCode":"a", "text":"B", "c...

Да, такая конструкция работает, но можно ли сохранить в таблице такой именованный разнотипный Tuple? 2. Хранить и анализировать. В моем случае это например массив диагнозов пациента, они все имеют смысл для анализа. Лианеризовать не получается.

TT
Да, такая конструкция работает, но можно ли сохран...

> Лианеризовать не получается. ?? https://kb.altinity.com/altinity-kb-schema-design/best-schema-for-storing-many-metrics-registered-from-the-single-source/#2f-combined-approach

TT- Автор вопроса
Dmitry [Altinity] Titov
> Лианеризовать не получается. ?? https://kb.alt...

Как жаль, что не прочитал этого ранее, но лучше поздно, чем после релиза =). Спасибо.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта