Как вставить данные временных меток в таблицу Iceberg, управляемую AWS Glue, с помощью AWS Firehose?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как вставить данные временных меток в таблицу Iceberg, управляемую AWS Glue, с помощью AWS Firehose?

Сообщение Anonymous »

Используя AWS Firehose для загрузки данных в таблицу Iceberg, управляемую AWS Glue, я не могу вставить данные метки времени.
Firehose
Я пытаюсь вставить данные с помощью следующего скрипта:

Код: Выделить всё

json_data = json.dumps(
{
"ADF_Record": {
"foo": "bar",
"baz": "2024-09-04T18:56:15.114"
},
"ADF_Metadata": {
"OTF_Metadata": {
"DestinationDatabaseName": "my_db",
"DestinationTableName": "my_table",
"Operation": "INSERT"
}
}
}
)

response = boto3.client("firehose").put_record(
DeliveryStreamName="my_stream",
Record={"Data": json_data.encode()}
)
Обратите внимание, что значение baz соответствует временной метке типа TimestampType.withoutZone, как указано в документации Firehose.
Клей
  • Моя таблица типа Айсберг.
  • Никакую дополнительную библиотеку SerDe я не определял или параметры SerDe.
  • Схема таблицы:
    : строка
  • : временная метка

Ошибка< /strong>
Всякий раз, когда я пытаюсь вставить данные с помощью этого метода, данные не доставляются, и я получаю эту ошибку на стороне Firehose:

Код: Выделить всё

Firehose is unable to convert column data in your record to the column type specified within the schema. Table: my_db.my_table
Что я пробовал[/b]
  • Данные записываются при удалении baz из полезной нагрузки (конвейер кажется работоспособным без метки времени).
  • Переключение на формат эпохи (

    Код: Выделить всё

    1725476175114000
    ) не помогает. Glue создает новую версию таблицы с baz в качестве даты, и записанные данные неразборчивы.
  • Переключение на TimestampType.WithZone приводит к той же ошибке.
  • Использование библиотеки SerDe, такой как org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe и параметра timestamp.formats, не помогает. Glue создает новую версию таблицы и полностью удаляет параметры SerDe.
Я собираюсь сдаться и просто записать временные метки в виде строки. Любая информация приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -using-aws
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»