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

Загрузить данные в Tengri можно через Boto3. Это SDK для работы с сервисами AWS, в том числе с S3.

Загрузка данных из файла в 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');