Sobes.tech

/ * Есть два сервера PostgreSQL: * PROD - OLTP сервер, * STATS - сервер для долгих аналитических запросов. На текущем сервер в базе prod есть большая (10Tb) таблица вида: CREATE TABLE profiles( id SERIAL, data JSONB ) В таблице могут быть "дырки", т.е. некоторые `id` могут быть пропущены. Нужно написать программу для копирования таблицы profiles с PROD на STATS. Для работы с базами данных предполагается использовать следующие интерфейсы: type Row []interface{} type Database interface { // реализация интерфейса Database умеет переустанавливать подключения // вызов SaveRows идемпотентен io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Если full=false то продолжить переливку данных с места прошлой ошибки // Если full=true - то перелить все данные func CopyTable(fromName string, toName string, full bool) error { // ... your code } Если передана опция `full=false`, то программа должна продолжить переливку данных с места прошлой ошибки. Если `full=true` - то должна перелить все данные. **Базовый уровень**: - последовательная переливка данных в 1 поток - восстановление после сбоев (опция `full=false`) Дополнительная информация: - при необходимости вы можете расширить интерфейс, добавив свои методы - при необходимости вы можете использовать пакет **database/sql** напрямую

Senior
Яндекс
9

Что можешь сказать про операторы в Go, писал ли ты их на работе?

Middle
Бюро 1440Бюро 1440
9

Расскажи про текущую работу в Wildberries — что за платформа, какая команда, чем занимался?

Senior
Hi Rockits
9

Стоит ли использовать мьютексы при работе с БД?

Senior
Лига Цифровой ЭкономикиЛига Цифровой Экономики
9

Есть ли опыт с криптовалютами и блокчейном? Интересна ли эта область?

Senior
AltDev
9

Как тестировали сервис? Как разворачивали в Kubernetes?

Middle
СБЕРСБЕР
9

Как атомарно реализовать проверку доступности и создание заказа при выносе логики в сервис?

Senior
2gis2gis
9

Что именно ищете в новом месте работы?

Senior
АЙ-ТЕКОАЙ-ТЕКО
9

Как мы будем возвращать весь заказ и его частично (API дизайн)?

Senior
Магнит Тех
9

SELECT * c.id, -- выбрать все чаты(c.id,c.name) для всех пользователей по имени ($1) where text > 'abc'

Senior
Ozon ФинтехOzon Финтех
9

Расскажи про сборщик мусора в Go

Senior
I-teco
9

Как часто бывают задачи, требующие изменения контрактов?

Senior
X5
9

Задача: Что выведет код? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```

Middle+
МВидеоМВидео
9

Интересовались ли вы когда-нибудь тем, как реализованы брейкпойнты в дебаггере?

Middle
Graveling
9

С какими базами данных работаешь? Какой был максимальный объём хранимых данных?

Middle+
Яндекс
9

В чём отличие senior-разработчика от middle в команде?

Senior
Cloud.ru
9

На чём работает в конечном итоге сервис? Какие Docker-образы использовали?

Middle+
Астрал-Софт
9

Расскажи про основной стек. С чем работаешь?

Senior
Spectr
9

Какие варианты ещё есть для увеличения скорости работы базы данных, помимо индексов?

Senior
ВайлдберрисВайлдберрис
9

На основании чего делали партиционирование в Amazon Athena?

Middle
СБЕРСБЕР
9
/371