Kinesis Data Streams Flashcards

1
Q

Как связаны Partition Key и Shard в Kinesis? Чего больше?

A

Номер Шарда определяется в результате выполнения хэш-функции от Partition Key. Партишен Ключей может быть 5, а шардов 3. Пять грузовиков, три Шарда, Partition Key = ID грузовика.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как может происходить коллизия с Partition Key и Shard в Kinesis?

A

Все записи с одинаковым Партишен Ключом ОБЯЗАТЕЛЬНО попадут в один и тот же Шард. Но один и тот же Шард может содержать НЕ только записи с одним и тем же Партишен Ключом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как называются единицы ресурса в Kinesis?

A

Streams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Каждый record в Kinesis состоит из …

A

partition key, data blob, sequence number

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Kinesis Data Stream делится на …, и чем их больше, тем …

A

шарды, выше ingestion-consumption rate и выше цена

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

В SQS есть сообщения, а в Kinesis …

A

records

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Поле “sequence number” обозначает …, а поле “partition key” используется для …

A

номер шарда в Kinesis Stream’е, используется как входной параметр хэш функции для вычисления номера шарда

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Поле “sequence number” в отличие от “partition key” и “data blob” …, потому что …

A

появляется только после консюминга сообщения, потому что номер шарда вычисляется по партишен ключу (через хэш функцию).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое KPL, KCL?

A

Kinesis Producer Library, Kinesis Consumer Library. это более advanced библиотека, построенная на основе SDK

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое Retention? Какой он в SQS? Какой он в Kinesis?

A

Retention Period - это период хранения сообщений/record’ов в очереди/data-stream’е. В SQS он по-умолчанию 4 дня, максимум 14 дней. В Kinesis 1 day - 365 days

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое Immutability данных в Kinesis? Как это устроено в SQS?

A

данные, попавшие в Kinesis, нельзя удалить (не считая того, что у них есть retention period). В SQS - наоборот, каждый консюмер подчищает за собой прочитанные данные после обработки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

В Kinesis работает формула: hashFunction(…) = …

A

partition key, shard number (sequence number)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какие Security фичи есть в Kinesis Data Streams? Что это напоминает?

A

Есть IAM Resource Based Policies и Encryption (at rest SSE, in transit SSL/TLS, client-side). Напоминает S3, SQS, SNS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что такое “Hot Partition Key”? В чём его проблема? От чего он возникает?

A

Один из шардов может быть переполнен (overwhelmed). Причина - НЕ равномерное распределение (distribution) partition ключей. Проблема - НЕ оптимально организованная работа Kinesis Stream’а.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Какие варианты SSE шифрования есть в Kinesis?

A

At rest SSE через KMS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

По-умолчанию другие сервисы (например EC2) шлют сообщения в Kinesis по … подсети. Но если ресурс находится в … подсети, то можно использовать …, чтобы …

A

публичной, приватной, использовать VPC endpoint, чтобы НЕ слать данные через публичную сеть интернет

16
Q

Как связаны KCL и шарды?

A

Kinesis Client Library может быть реализована Consumer Instanc’ом. KCL instance может читать данные из НЕСКОЛЬКИ Шардов. Но из одного Шарда может читать данные ТОЛЬКО ОДИН KCL instance.

17
Q

Для чего KCL instanc’у может подадобиться доступ к DynamoDB

A

чтобы писать туда данные о курсоре (каретке)

18
Q

Как произвести масштабирование Kinesis Data Stream’а для повышения его производительности? Какие минусы?

A

Shard Splitting разделение одного из шардов на два. Повышение цены, ведь платим мы за каждый шард.

19
Q

Какой шард предпочтительно выбирать для Shard Splitting’а? На сколько частей можно разделить Шард?

A

Hot Shard. За один раз можно разделить только на ДВЕ части.

20
Q

Как произвести де-масштабирование? Зачем?

A

Shard Merging сливание двух шардов в один. Чтобы сэкономить деньги, ведь мы платим за каждый Шард.

21
Q

В Kinesis Data Stream’е было 10 шардов. После этого произвели Shard Splitting. На сколько возрасла производительность?

A

Стало 11 шардов. На 10%. На 1 MB/s для записи и на 2 MB/s для чтения.