Задать вопрос
  • Почему появляется ошибка relation column_name does not exist?

    @sangvis Автор вопроса
    Akina,
    Ну не совсем конечно ахинею, но близко к тому ...
    Я действительно "накосячил", исправленный код тут:

    with source_cards as (
      SELECT
        {{ dbt_utils.star(from=source('mydb_tables','cards'), except=['vid'])}}
        from {{source('mydb_tables','cards')}}
        limit 100
                         )
    select sc.*,
      case when x.case_ump = 4 then 'r'
           when x.case_ump = 3 then 'a'
           when x.case_ump = 2 then 'd'
           when x.case_ump = 1 then 's' end as vid
    
    from source_cards as sc
    left join
        {{source("mydb_tables","visits")}} as x
    on sc.id_service = x.id_service
    WHERE TRUE
    
    {% if is_incremental() %}
    AND sc.id_service >= (select max(id_service) from {{ this }})
    {% endif %}


    Прошу прощения, star из dbt_utils для выбора всех полей таблицы.

    Я только пробую изучить работу dbt, но уже сейчас можно сказать, что инструмент
    очень хороший, а если еще не в мои руки попадет, то вообще цены нет ...

    В этом тестовом примере я выполняю обновление столбца "vid" в "широкой" таблице. (обновление выполнено)

    Пример рабочий, поэтому если у кого-то возникнет такой же вопрос,
    то это проблема внимательности.

    Лог выполнения:

    8:43:12 1 of 1 START sql incremental model dbt.first_100_cards ......................... [RUN]
    08:43:12 1 of 1 OK created sql incremental model dbt.first_100_cards .................... [SELECT 100 in 0.47s]
    08:43:12
    08:43:12 Finished running 1 incremental model in 0 hours 0 minutes and 1.09 seconds (1.09s).
    08:43:12
    08:43:12 Completed successfully
    08:43:12
    08:43:12 Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1


    Большое спасибо всем участникам за помощь. Всем удачи!
  • Почему появляется ошибка relation column_name does not exist?

    @sangvis Автор вопроса
    Akina,

    Да, но в реальности в таблице будет до 500 столбцов.
    Поэтому и пытаюсь использовать star из dbt_utils для изменения одного столбца
    github.com/dbt-labs/dbt-utils#star-source
    напр.
    select
    {{ dbt_utils.star(from=ref('my_model'), except=["exclude_field_1", "exclude_field_2"]) }}
    from {{ ref('my_model') }}


    Еще "помучаю" модель, может star не работает с
    source('mydb_tables','cards').
    На другой таблице dbt_utils.star(from=ref("first_10_visits")
    отрабатывала верно.

    Если не получится, то буду использовать список, как вы предлагаете. Спасибо.
  • Почему появляется ошибка relation column_name does not exist?

    @sangvis Автор вопроса
    Justa Gain,
    Поправлю, как скажете, только было бы понятно.

    Правила прочитал. (регламента - 3.1, 3.6, 3.8. )

    Использовал только два: code - для выделения выполняемого кода или команд
    и цитату blockquote - для выделения ответа системы на команду или лога (тоже ответ системы).

    Я неопытный пользователь habr, если можно уточните, какие теги лишние?
  • Почему появляется ошибка relation column_name does not exist?

    @sangvis Автор вопроса
    Akina,

    "datetr" и другие поля таблицы берутся из cte
    SELECT * from
        {{ dbt_utils.star(from=source('mydb_tables','cards'), except=['vid'])}}
        limit 100
    .
    .
    .


    конкретно из источника - таблицы cards, кроме "vid"

    Вы смотрели лог postgresql.
    ... и я с вами согласен, выглядит итоговый запрос к базе как ошибочный.

    Есть надежда, что эта ошибка уже у кого-то проявилась, и есть вариант или исправления или другого решения. Спасибо что заметили.