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

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

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

  • Через Boto3.

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

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

  • .csv

  • .json

  • .parquet

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

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

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

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

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

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

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

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

Загрузка данных из файла через Boto3

Boto3 — это SDK для работы с сервисами AWS, в том числе с S3.

Для загрузки данных необходимо указать параметры бакета S3:
endpoint_url, aws_access_key_id, aws_secret_access_key, region_name.

Эти параметры будут выданы пользователю администратором хранилища S3 или командой Tengri.

Пример кода на Python для загрузки данных из локального файла customer_country.csv в хранилище S3:

pip install boto3; (1)
import boto3

s3_client = boto3.client('s3', (2)
                        endpoint_url='***',
                        aws_access_key_id='***',
                        aws_secret_access_key='***',
                        region_name='***')

file_name ='customer_country.csv' (3)
file_path = f'/tmp/{file_name}'

s3_client.upload_file(file_path,'TNGRI', f'Stage/{file_name}') (4)
1 Устанавливаем Boto3
2 Задаем параметры бакета S3
3 Указываем имя файла и путь
4 Загружаем данные с помощью метода upload_file

Метод upload_file принимает следующие параметры:

  • Путь к файлу для загрузки

  • Имя бакета, в который производится загрузка

  • Имя объекта S3

и возвращает значение:

  • True, если файл был успешно загружен;

  • False в противном случае.

Расширение загружаемого файла может быть любым: .txt, .csv, .json, .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');