Чтение вложенного XML и загрузка для повышения эффективности Redshift - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть этот XML-файл, расположенный в S3, который мне нужно было бы загружать в соответствующие таблицы в Redshift.

Я просто хотел бы проверить, как эффективный способ сделать это с помощью Scala?Я очень новичок в этом вопросе и хотел бы обратиться за советом.

Создаю ли я один скрипт, который будет разбивать необходимые элементы на части, или будет ли отдельный скрипт, одновременно считывающий один и тот же файл XML для каждой таблицы,более эффективным?Или AWS Glue сможет обрабатывать такие вложенные форматы XML?

Данные XML

<Root>
<system>
    <head>
        <Store>123</Store>
        <storedate>2018-09-04</storedate>
    </head>
    <body>
        <SalesTxn>
            <Store>123</Store>
            <storedate>2018-09-04</storedate>               
            <txndetail>
                <sequence>1</sequence>                  
                <txngroup>
                    <Item>
                        <itemid>ABC</itemid>
                        <price>6.900000</price>
                        <quantity>1</quantity>

                    </Item>
                </txngroup>
            </txndetail>
            <txndetail>
                <sequence>2</sequence>      
                <txngroup>
                    <Item>
                        <itemid>DEF</itemid>
                        <price>6.890000</price>                         
                        <quantity>1</quantity>                          
                    </Item>
                </txngroup>
            </txndetail>                
            <total>
                <totalamount>13.79</totalamount>
            </total>
            <totalitems>
                <itemsnumber>2</itemsnumber>
            </totalitems>               
        </SalesTxn>
    </body>
</system>

Желаемый результат

Уровень транзакции

Store|StoreDate|ItemID|Price|Qty
123|2018-09-04|1|6.9|1
123|2018-09-04|2|6.89|1

Уровень поступления

Store|StoreDate|TotalAmt|TotalQty
123|2018-09-04|13.79|2

1 Ответ

0 голосов
/ 01 марта 2019

Поиск в Google Redshift + XML, по-видимому, показывает, что нативная поддержка отсутствует (все результаты представлены публикациями различных конвейерных продуктов - Alooma, Fivetran и т. Д., Предлагающих помощь по загрузке XML в Redshift).Действительно, в документации Redshift указано, что XML не поддерживается ...

как в формате: https://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-datatypes.html

, так и в виде функции: https://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-functions.html.

Имея это в виду, было бы хорошо более подробно понять ваш выбор Redshift для этого приложения.В качестве альтернативы может быть полезно рассмотреть Snowflake как один вариант, который имеет встроенную поддержку XML .

...