Загрузка данных

Загрузить данные в Tengri можно следующими способами:

  • С помощью мастера загрузки — кнопка Upload file.

  • Через модуль Python tngri.

Загрузка данных из локального файла с помощью мастера загрузки

Поддерживаемые расширения файлов для загрузки:

  • .csv

  • .json

  • .parquet

Чтобы загрузить данные из файла:

  1. Нажмите Upload file (Загрузить файл) в интерфейсе Tengri.

  2. Выберете или переместите файл в открывшуюся область загрузки.

  3. В открывшемся окне Parse file (Распознать файл) проверьте правильность распознанных данных.
    При необходимости выберете нужные настройки распознавания и нажмите Next (Далее).

  4. После этого вы увидите ячейку с кодом загрузки файла для вставки в ноутбук.
    Для файла file_name.csv и для пользователя user_name она будет иметь вид:

    select *
    from read_csv(
        "user_name/<id>_file_name.csv"
    )

    Нажмите Add cell (Добавить ячейку), чтобы добавить эту ячейку в ваш ноутбук.

После добавления ячейки в ноутбук данные из файла будут доступны для работы.

Загрузка данных из файла через модуль Python tngri

Чтобы загружать данные из нелокальных файлов, можно использовать модуль Python tngri.

Загрузка данных из файла по URL

Пример кода на Python для загрузки в Tengri данных из файла iris.csv, расположенного по указанному URL:

import polars (1)
import tngri

df = polars.read_csv(
    "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv" (2)
)

tngri.upload_df(df) (3)
1 Импортируем необходимые модули Python
2 Считываем файл по указанному URL и записываем его в переменную df с помощью модуля polars
3 Загружаем данные из df в Tengri с помощью метода tngri.upload_df

Помимо файлов .csv, этот способ может использоваться и для других расширений — .json, .xlsx и прочих (подробнее см. в документации Polars по загрузке данных).

После этого в ячейке вывода появится сообщение вида:

UploadedFile(s3_path='s3://<path>/<file_id>.parquet')

Теперь данные из файла доступны для работы. Чтобы работать с ними, нужно использовать функцию read_parquet и указать id загруженного файла .parquet с предыдущего шага:

SELECT * FROM read_parquet('<file_id>.parquet');
Расширение .parquet будет у загруженного таким образом файла в любом случае вне зависимости от расширения начального файла.

Загрузка данных из файла, сохраненного в S3

Пример кода на Python для загрузки в Tengri данных из файла my_file.parquet, расположенного в вашем бакете S3:

import tngri (1)

tngri.upload_s3(
    object="s3://my_folders/my_file.parquet", (2)
    access_key="***",
    secret_key="***"
)
1 Импортируем модуль Python tngri
2 Задаем параметры вашего бакета S3 (путь к файлу и ключи для доступа)

Метод tngri.upload_s3 загружает файл из вашего бакета S3 в Tengri.

После этого данные из файла будут доступны для работы.

Расширение файла при этом может быть любым. Оно останется тем же, каким оно было в начальном файле. Для работы с разными расширениями нужно использовать разные функции.

Работать с данными из файла в нашем примере можно с помощью функции read_parquet:

SELECT * FROM read_parquet('my_file.parquet');

При необходимости для загружаемого файла можно задать путь и имя внутри Tengri через опциональный параметр filename метода tngri.upload_s3:
filename="new_path/new_name.parquet"

Работа с данными из загруженных файлов

  • Проверяем, что загруженный файл .csv доступен:

    SELECT * FROM read_csv('customer_country.csv');
  • Создаем таблицу с данными из загруженного файла .csv:

    CREATE OR REPLACE TABLE cust_country AS
        SELECT * FROM read_csv('customer_country.csv');
  • Загружаем данные из файла .csv в существующую таблицу:

    INSERT INTO cust_country
        SELECT * FROM read_csv('customer_country.csv');

Работа с данными из загруженных файлов разных расширений

Для работы с загруженными файлами других расширений нужно использовать соответствующие функции.

  • Создаем таблицу с данными из загруженного файла .parquet:

    CREATE OR REPLACE TABLE cust_country AS
        SELECT * FROM read_parquet('customer_country.parquet');
  • Создаем таблицу с данными из загруженного файла .json:

    CREATE OR REPLACE TABLE cust_country AS
        SELECT * FROM read_json('customer_country.json');

Полезные ссылки