Инджестор S3
Поддерживаемые типы файлов
- CSV (*.csv)
- TSV (*.tsv)
- JSONL (*.jsonl)
- JSON (*.json)
- Parquet (*.parquet)
- Apache Avro (*.avro)
Схемы для файлов Parquet и Avro извлекаются из разметки файла. Схемы для файлов без разметки (CSV, TSV, JSONL, JSON) выводятся из содержания файлов.
Настройка, предварительные условия и разрешения
Для учетной записи, под которой инджестор будет обращаться в S3, необходимы следующие привелегии: "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject".
Пример IAM политики для инжестора:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Ingestion",
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
Возможности платформы (Important Capabilities)
Название | Описание | Поддерживается | Настройки |
---|---|---|---|
Platform Instance | Наличие у объекта связи с платформ инстансом | Да | Включено по умолчанию. Настраивается в рецепте. |
Schema Metadata | Вкладка Schema: схема датасета | Да | Включено по умолчанию. |
Extract Tags | Извлечение тегов из S3 бакетов и объектов | Да | Отключено по умолчанию. |
Data Profiling (Профилирование данных) | Вкладка Stats: количество строк, столбцов, статистики и графики | Да | Отключено по умолчанию. Настраивается в рецепте, в разделе profiling, или при создании источника с помощью Form. |
Detect deleted entities | Проверка удалены ли данные в источнике. | Да | Отключено по умолчанию. Настраивается в рецепте, в разделе stateful ingestion, или с помощью Form. |
Critical data | Чекбокс Critical полей | Да | Включено по умолчанию. Можно редактировать через Excel. |
Пример рецепта
pipeline_name: 'Сюда_подставить_имя_pipeline' # Наименование 'процесса', в рамках которого загружены метаданные.
source:
type: s3 # Платформа
config:
path_specs:
- include: "s3://your-bucket-name/*/*.*"
- include: "s3://your-bucket-name1/*/*.*"
exclude:
- **/tmp_10101000.csv
aws_config:
aws_endpoint_url: "https://s3.example-endpoint.net"
aws_access_key_id: ACCESS_KEY_EXAMPLE
aws_secret_access_key: "SECRET_KEY_EXAMPLE"
aws_region: aws-example-region
platform_instance: 'Сюда_подставить_platform_instance' # Наименование источника в Каталоге данных.
stateful_ingestion:
enabled: true # Признак включения режима 'Stateful ingesting' - загружаемые данные имеют приоритет над загруженными ранее. Если в загружаемых отсутствуют таблицы/поля - они не будут отображаться в Каталоге после загрузки
sink:
type: "catalog-rest"
config:
server: 'https://catalog-server.example.net'
token: 'EXAMPLE_TOKEN'
Спецификация путей
Спецификация путей (path_specs) - это список спецификации пути (path_spec) объектов, где каждый индивидуальный путь (path_spec) представляет один или более набор данных. path_spec.include представляет форматированный путь к набору данных. Этот путь должен оканчиватся на "*.*" или на "*.[ext]" для доступа к конечным файлам. Все уровни вложенности должны быть указаны в пути. Чтобы не указывать точное имя директории возможно использование "/*/". Для того, чтобы создать набор данных из директории, небходимо указать директиву {table} вместо имени директории в спецификации пути. path_spec.exclude можно использовать для исключения объектов. В данной спецификации для обозначения произвольного уровня вложенности может использоваться директива "**".