Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Data Streams
  • Начало работы
    • Подготовка окружения
    • Создание потока данных
    • Сбор и поставка данных
      • Fluentd
      • Logstash
      • AWS CLI
    • Сохранение данных в ClickHouse
    • Обработка потока изменений из Debezium
  • Пошаговые инструкции
    • Все инструкции
    • Управление потоками данных
    • Работа с AWS CLI
      • Создание потока данных
      • Получение информации о потоке
      • Отправка данных в поток
      • Чтение данных из потока
      • Удаление потока данных
    • Работа с AWS SDK
      • Подготовка окружения
      • Создание потока данных
      • Отправка данных в поток
      • Чтение данных из потока
      • Удаление потока данных
  • Концепции
    • Обзор
    • Термины и определения
    • Cегменты и ключи сегментов
    • Квоты и лимиты
    • Сравнение с Yandex Message Queue
  • Практические руководства
    • Ввод данных в системы хранения
    • Умная обработка логов
    • Передача данных в микросервисных архитектурах
  • Управление доступом
  • Правила тарификации
  • HTTP API, совместимый с Amazon Kinesis Data Streams
    • Обзор
    • Методы
      • CreateStream
      • DecreaseStreamRetentionPeriod
      • DeleteStream
      • DescribeStream
      • IncreaseStreamRetentionPeriod
      • GetRecords
      • GetShardIterator
      • ListStreams
      • PutRecord
      • PutRecords
      • UpdateShardCount
    • Общие ошибки
    • Примеры
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Работа с AWS SDK
  3. Отправка данных в поток

Отправка данных в поток

Статья создана
Yandex Cloud

    Примечание

    Вы можете создать триггер, который будет запускать функцию Cloud Functions или контейнер Serverless Containers при отправке данных в поток. Подробнее о триггере для Data Streams.

    Python

    Для отправки данных в поток данных используется метод put_record/put_records. При вызове этого метода необходимо указать следующие параметры:

    • Имя потока данных, например example-stream.
    • Идентификатор каталога, в котором находится поток, например aoeu1kuj2dhtaupdb5es.
    • Идентификатор базы данных Yandex Managed Service for YDB с потоком, например cc8028jgtuabcqutgtbv.
    • Отправляемые данные, например message.

    Чтобы отправить данные в поток с параметрами, указанными выше:

    1. Создайте файл stream_put_record.py и скопируйте в него следующий код:

      import boto3
      from pprint import pprint
      
      def put_record(folder, database, stream_name, message):
        client = boto3.client('kinesis', endpoint_url="https://yds.serverless.yandexcloud.net")
        response = client.put_record(
          StreamName="/ru-central1/{folder}/{database}/{stream}".format(folder=folder,
                                                                        database=database,
                                                                        stream=stream_name),
          Data=message,
          PartitionKey=message
        )
        return response
      
      if __name__ == '__main__':
        put_record_response = put_record(
          folder="aoeu1kuj2dhtaupdb5es",
          database="cc8028jgtuabcqutgtbv",
          stream_name="example-stream",
          message="message")
      
        print("The record has been sent successfully")
        pprint(put_record_response)
      
    2. Запустите программу:

      python3 stream_put_record.py
      

      Результат выполнения:

      The record has been sent successfully
      {
        'EncryptionType': 'NONE',
        'ResponseMetadata': {
          'HTTPHeaders': {
            'connection': 'keep-alive',
            'content-length': '81',
            'content-type': 'application/json',
            'date': ''
            'GMT',
            'server': 'nginx/1.19.5'
          },
          'HTTPStatusCode': 200,
          'RetryAttempts': 0
        },
        'SequenceNumber': '0',
        'ShardId': 'shard-000000'
      }
      

    Была ли статья полезна?

    Language / Region
    © 2022 ООО «Яндекс.Облако»