Может ли материализованное представление Snowflake содержать сглаженные полуструктурированные данные? - PullRequest
1 голос
/ 28 октября 2019

В конце этой статьи предполагается, что материализованное представление может содержать сглаживание ... https://www.snowflake.com/blog/snowflake-materialized-views-a-fast-zero-maintenance-accurate-solution/ Но если я попробую это сделать, я получу ошибку ... "Более чем на одну таблицу ссылаются в определении представления" Кто-нибудь получилкакие-нибудь примеры того, как создать MV с flatten?

CREATE OR REPLACE MATERIALIZED VIEW MV_SOMETHING
AS
SELECT
    F.ID,
    A.VALUE:Type::string                    AS ATTRIBUTE_TYPE,
    A.VALUE:Value::string                   AS ATTRIBUTE_VALUE
FROM
    FRAME F
    , lateral flatten(input => F.ENVIRONMENT) A;

1 Ответ

0 голосов
/ 28 октября 2019

У меня нормально работает следующее. Вам нужно FLATTEN() для Массивов, но не для ОБЪЕКТОВ.
Может быть, вы смешиваете два?

CREATE OR REPLACE TABLE T AS
SELECT 1 ID, ARRAY_CONSTRUCT(1, 2, 3) A, OBJECT_CONSTRUCT('X', 2, 'Y', 3) O;

CREATE OR REPLACE MATERIALIZED VIEW T_MV AS
SELECT
    ID,
    O:X::NUMBER O_X,
    O:Y::NUMBER O_Y,
    VALUE A
FROM T, LATERAL FLATTEN(INPUT => A);
...