# Подключение IBM Netezza к dbt v1

Локальная разработка

Адаптер dbt-ibm-netezza позволяет использовать dbt для преобразования данных и управления ими в IBM Netezza, задействуя возможности его распределённого движка SQL-запросов. Прежде чем продолжить, убедитесь, что у вас есть следующее:

* Активный движок IBM Netezza с данными для подключения (host, port, database, schema и т.д.) в SaaS/PaaS.
* Учётные данные для аутентификации: имя пользователя и пароль.

Обратитесь к разделу [Configuring dbt-ibm-netezza](https://github.com/IBM/nz-dbt?tab=readme-ov-file#testing-sample-dbt-project) для получения рекомендаций по получению и организации этих данных.

* **Поддерживается**: IBM
* **Авторы**: Abhishek Jog, Sagar Soni, Ayush Mehrotra
* **Репозиторий GitHub**: [IBM/nz-dbt](https://github.com/IBM/nz-dbt) [![](https://img.shields.io/github/stars/IBM/nz-dbt?style=for-the-badge)](https://github.com/IBM/nz-dbt)
* **Пакет PyPI**: `dbt-ibm-netezza` [![](https://badge.fury.io/py/dbt-ibm-netezza.svg)](https://badge.fury.io/py/dbt-ibm-netezza)
* **Канал Slack**:[]()
* **Поддерживаемая версия dbt**: v1.9.2 и новее
* **Поддержка dbt**: Not Supported
* **Минимальная версия платформы данных**: 11.2.3.4

## Установка dbt-ibm-netezza

Установите адаптер с помощью \`pip\`: `python -m pip install dbt-ibm-netezza`

## Настройка dbt-ibm-netezza

Конфигурацию, специфичную для IBM Netezza, см. на странице [настроек IBM Netezza.](https://docs.getdbt.tech/reference/resource-configs/ibm-netezza-config.md)

## Подключение к IBM Netezza

Чтобы подключить dbt к IBM Netezza, необходимо настроить профиль в файле `profiles.yml`, расположенном в каталоге `.dbt/` вашего домашнего каталога. Ниже приведён пример конфигурации для подключения к экземплярам IBM Netezza:

\~/.dbt/profiles.yml

```yaml
my_project:
  outputs:
    dev:
      type: netezza
      user: [user]
      password: [password]
      host: [hostname]
      database: [catalog name]
      schema: [schema name]
      port: 5480
      threads: [1 or more]

  target: dev
```

### Настройка параметров внешних таблиц

Также необходимо настроить файл `et_options.yml`, расположенный в каталоге вашего проекта. Убедитесь, что файл корректно настроен перед запуском `dbt seed`. Это гарантирует, что данные будут загружены в таблицы в соответствии с параметрами, указанными во внешнем файле данных.

./et\_options.yml

```yaml
- !ETOptions
    SkipRows: "1"
    Delimiter: "','"
    DateDelim: "'-'"
    MaxErrors: " 0 "
```

Дополнительные параметры можно найти в разделе [Netezza external tables option summary](https://www.ibm.com/docs/en/netezza?topic=eto-option-summary).

## Параметры подключения (Host parameters)

Для настройки подключения к IBM Netezza требуются следующие поля профиля.

| Option     | Required/Optional | Description                                                      | Example     |
| ---------- | ----------------- | ---------------------------------------------------------------- | ----------- |
| `user`     | Required          | Имя пользователя или адрес электронной почты для аутентификации. | `user`      |
| `password` | Required          | Пароль или API-ключ для аутентификации.                          | `password`  |
| `host`     | Required          | Имя хоста для подключения к Netezza.                             | `127.0.0.1` |
| `database` | Required          | Имя каталога (catalog) в вашем экземпляре Netezza.               | `SYSTEM`    |
| `schema`   | Required          | Имя схемы в выбранном каталоге экземпляра Netezza.               | `my_schema` |
| `port`     | Required          | Порт для подключения к Netezza.                                  | `5480`      |

### Схемы и базы данных

При выборе базы данных и схемы убедитесь, что у пользователя есть права на чтение и запись в обеих. Этот выбор не ограничивает ваши возможности по выполнению запросов к базе данных. Вместо этого они используются как расположение по умолчанию, где будут материализовываться таблицы и представления.

## Примечания:

Адаптер `dbt-ibm-netezza` создан на основе драйвера IBM Netezza для Python — [nzpy](https://pypi.org/project/nzpy/), который является обязательной зависимостью и устанавливается вместе с адаптером.
