Привет, Хабр! Меня зовут Владимир Герингер, я автор проекта «Футбол в цифрах». В нём я собираю футбольную статистику, анализирую данные, вывожу закономерности и рассказываю аудитории о самом интересном в виде коротких заметок и подробных статей. Данные — моё хобби, я собрал их достаточно, чтобы сделать выводы об основных проблемах российского футбола и предложить решения.
Моя основная работа — аналитик в фармацевтической компании. В отрасль я пришел 10 лет назад на должность медицинского представителя. С такой позиции начинают большинство моих коллег, затем ищут более узкие специализации. Я выбрал аналитику: для меня истина кроется в цифрах.
Владимир Герингер
Автор проекта «Футбол в цифрах»
Я собираю данные о юношеском, молодежном и взрослом футболе. В юношеском спорте ищу данные именно из России: мне интересно, как происходит конвертация из юношеского футбола в молодёжный, из молодёжного во взрослый. А общемировые тренды разных стран изучаю уже применительно ко взрослому футболу.
Как собираю данные: от парсеров до переписки
Большой массив информации из открытых источников я собираю автоматически. Для этого я написал несколько специальных парсеров на Python, пользуюсь ими и двумя библиотеками: Selenium и BeautifulSoup.
def get_playerinfo(player, main, players_dict, playersinfo_dict, assists_dict):
number = int(player.div.string)
player_country = player.span.get('title')
shortname = player.a.string
if shortname is None:
shortname = player.a.contents[0]
shortname = shortname.strip()
link = re.search('/\S+/', player.a.get('onclick'))
if link is None:
return [np.nan, number, np.nan, shortname] + [np.nan] * 13 + [player_country]
player_link = flashscore + link[0]
name, role, bd_date, bd_strmonth = get_playerinfo_dict(player, shortname, player_link, playersinfo_dict)
id_player = get_idplayer(name, players_dict)
events = player('div', class_='icon-lineup')
goals, assists, penalties, yc, rc, autogoals, starttime, endtime, playtime = get_time_event(main, events)
assists = assists_dict.get(shortname, 0)
return [role, number, name, shortname, id_player, starttime, endtime, playtime,
goals, assists, yc, rc, penalties, autogoals, player_link, bd_date, bd_strmonth, player_country]
Кое-какие данные о российских футболистах, особенно в юношеской и молодежной лиге, мне приходилось собирать вручную. В отличие от взрослых футболистов, чей рост, вес и прочие физические характеристики можно легко найти в открытых источниках, сведения о юношах нигде не публикуются.
Никто, кроме меня, эти данные не собирает. Мне приходилось лично искать в соцсетях около полутора тысяч игроков российской молодежной лиги, писать им и уточнять рост, вес, кто левша, кто правша, кто на какой позиции играет и в каком городе живёт. Все эти данные имеют значение: я сам левша на ногу и понимаю, что такие футболисты добавляют игре вариативности. Если в сборной будет 25 правшей, то её будут постоянно разрывать по левому флангу, и команде попросту не выиграть.
Кроме того, информацию об игроках младше 18 лет приходится обновлять. Молодые люди ещё продолжают расти, а параллельно переходят в следующую возрастную лигу: из юношеского футбола в молодёжный, из молодёжного — во взрослый. Недавно я собирал данные о юношах 2006-2007 годов рождения, они совсем скоро перейдут следующую лигу, соответственно, на очереди аналогичная работа с теми, кто на год-два младше.
Я хочу собрать в одну базу антропометрию футболистов разного возраста и разных стран: это данные о 55 тысячах человек.
Что я делаю с данными потом
Данных набралось на целых 65 столбцов таблицы Excel. Я их преобразую, загружаю в облако Microsoft Azure и работаю с данными с точки зрения анализа и поиска закономерностей.
Размещение в облачное хранилище было для меня самой сложной задачей с технической точки зрения. Excel закончился на миллионной строке, и нужно было решать, какую систему использовать дальше. Мне была важна возможность подключиться из любой точки и проводить свой анализ. Я сделал несколько пробных версий системы в Yandex.Cloud, Amazon и Azure и остановился на последнем. В течение двух с половиной недель я загружал в систему данные, разбирался с серверной версией. Поначалу скрипт тормозил из-за особенностей синтаксиса. Особенностям синтаксиса mySQL иногда приходилось учиться на ходу и искать их в Google и на тематических форумах. Если бы у меня были средства на развитие проекта, все пошло бы быстрее, но я выбрал самый экономичный вариант.
Для визуализации данных я использую Tableau. На рынке много продуктов, но к Tableau я привык на основной работе и решил использовать его и для хобби. Это информативная и удобная программа, позволяющая экономить время и ресурсы. Работать с ней проще, чем кодить на Python и выстраивать каждый параметр, хотя некоторые выкладки требуют кастомизации.
Графики должны быть простыми и понятными аудитории. Любой неожиданный инсайт нужно визуализировать настолько, чтобы люди без сомнений поняли, о чём идет речь, и Tableau предоставляет такую возможность.
Зачем нужно знать, сколько левшей в мировых сборных
В детстве и юности я 12 лет серьезно занимался футболом: получив травму, не смог продолжать играть, но интерес к теме остался. Ещё когда я сам играл, столкнулся с практикой, когда тренеры отбирают подростков в клубы, исходя из их физических данных. Причём смотрят и на игроков, и на старших родственников, считая, что чем крупнее игрок, тем больше шансов выиграть. Мой анализ показал, что этот подход в корне неверен.
Я проводил сравнение юношеских, молодежных и взрослых клубов по антропометрии футболистов и по роли в команде (нападающие, полузащитники, защитники, вратари). Между физическими параметрами и числом забитых и пропущенных голов корреляции нет. Из-за того, что в российском футболе слишком бьются за антропометрию, тренеры часто упускают детей, чья способность реагировать на обстановку на поле выше. А это не лучшим образом сказывается на качестве игры: на самом деле в футбол играют не столько ногами, сколько головой. У клубов, которые не идут по этой привычной схеме, результаты, как правило, выше.
Есть и характеристики, связь между которыми установить невозможно. Например, корреляции между антропометрическими данными и гонорарами игроков нет совсем. Кроме того, доходы футболистов разнятся в сотни раз даже в рамках в одной команды. Это не отдел фирмы, где существует вилка зарплат: бывает так, что один игрок получает в месяц сумму, сопоставимую с зарплатой офисного работника, в то время как гонорары его товарища по команде исчисляются миллионными суммами. Западные футбольные клубы уже часто работают с аналитическими отделами, изучают в том числе и финансовые показатели. К примеру, Кевин де Брейне, атакующий полузащитник «Манчестер Сити», недавно устанавливал влияние своей игры на доходы команды: в итоге ему повысили гонорар вдвое сроком на 5 лет.
Не диванная аналитика: что ещё показали данные
Моей аудитории интересно выделять отдельные персоналии, смотреть индивидуальные данные футболистов: это повышает имидж клубов и лично каждого игрока.
Мне же самому как аналитику нравится выявлять верхнеуровневые тренды (по странам, по лигам) и описывать их в виде графиков (например, процент опасных атак). К примеру, в Англии, Германии,Франции и Испании принят похожий стиль игры во всех дивизионах, они исповедуют примерно одинаковый футбол внутри страны с одинаковым процентом опасных атак. В России Премьер-лига и Национальная лига отличаются по манере игры между собой, поэтому о едином стиле говорить сложно. Мне интересно, чем одна страна отличается от другой.
На старте проекта я смотрел количество игроков на разных позициях в разных командах. Состав команды влияет на стиль игры. К примеру, в столь разных странах, как Словения и Нигерия, принят стиль игры без центра поля, со слабыми защитниками, и число опасных атак доходит до 80%. В России самая маленькая доля нападающих — около 20%. В то же время в странах с более успешными командами процент нападающих значительно выше, и это сказывается на качестве игры.
Что же касается нашей юношеской лиги, то у некоторых клубов показатели отличались от остальных, наблюдалась разбалансировка. Однако это свойство не столько конкретной команды, сколько российской тренерской школы. Я писал руководству клубов, просил обратить внимание, но пока они мне ничего не ответили.
Также мне очень любопытно рассматривать, на каком уровне находится наш футбол в сравнении с другими странами. Результаты наших клубов оставляют желать лучшего в последнее время, и захотелось проанализировать, почему так происходит.
Для российского футбола характерна та же проблема, что и для многих других отраслей в стране. Большинство футбольных клубов финансирует государство и крупные полугосударственные корпорации, а те, кто лишён такой поддержки, быстро начинают испытывать финансовые трудности.
Я анализировал число клубов, прошедших через разные дивизионы в разных странах: в Англии это 4 дивизиона, в Германии - 3, в России РПЛ и ФНЛ. За 5 сезонов в России сыграло столько же команд, сколько и в Англии, но в высших лигах держатся не все. В то же время, история некоторых британских клубов составляет десятки и сотни лет: они не пропадают, не банкротятся и играют, хоть и не всегда в высших эшелонах. Взять хотя бы «Фулхэм», старейший футбольный клуб Лондона. Он существует с XIX века и всё это время то попадает в премьер-лигу, то вылетает из неё, но не прекращает свою деятельность. У нас такого практически нет, многие клубы стремительно банкротятся после попадания в высшие лиги.
О планах на будущее
Проект «Футбол в цифрах» — не работа, а хобби, хотя есть планы со временем его монетизировать. В 2022-2023 году я планирую подтянуть данные InStat и Wyscout о ТТД (технико-тактических действиях) и трекинговые данные. Эта информация позволяет увидеть передвижения игрока во время матча и используется для более прогрессивной аналитики. Мне интересны раскладки для каждого игрока, ряд метрик каждого матча, данные о координатах поля: так можно анализировать, что происходит в голове у тренера команды соперника. Меня интересует около 30 стран: это и европейские страны, и Латинская Америка, и Китай. Но всё это, конечно же, требует времени и денег.
Моя работа может стать основой для аналитики, адресованной профессиональной аудитории: футбольным клубам, спортсменам и тренерам. Подробными шорт-листами и закономерностями в юношеском и молодежном футболе уже интересовались люди из Российского футбольного союза. Надеюсь, что мои наработки могут использовать для смены стиля тренировок в отечественных клубах. Вполне возможно, что они станут и основой для научных исследований.
Я очень увлечён тем, чем занимаюсь: часто сижу до полуночи и что-нибудь с интересом доделываю. Конечно, сбор и подготовка данных занимают много времени, но они как раз и составляют большую часть успеха. Иногда нужно долго думать над тем, как соединить данные, постоянно чего-то не хватает, но для меня это ещё одна возможность учиться и развиваться. Год назад я прошел курс Data Science от Нетологии. Это очень помогло расширить кругозор и понять, как можно работать с информацией. Очень надеюсь, что со временем мой проект превратится в нечто полезное не только для любителей, но и для профессионалов, а мои наработки кто-то захочет использовать для развития футбола.
Комментарии (37)
RigelNM
06.09.2021 14:13По поводу месяца рождения, читал давненько книгу (к сожалению не вспомню название), там автор собирал статистику по хоккею в Канаде. Там точно такая же корреляция и автор сетует на то, что юниорские чемпионаты разделены по году рождения и дети родившиеся в начале года имеют преимущество в развитии по сравнению с теми кто в конце (для детей разница в год существенна). Ну а дальше, детей с лучшими показателями по своему году уже «ведут» и соответственно статистически именно январско-февральские дети становятся игроками высших хоккейных лиг.
vova_a1
06.09.2021 16:46Малкольм Гладуэлл «Гении и аутсайдеры»
Гладуэлл приводит интересную статистику дат рождения лучших канадских хоккеистов. Выяснилось, что большинство из них родились в январе – апреле. В чем секрет такой закономерности? "Порог отсечения" – некая пограничная дата, которая становится залогом успеха. В примере с хоккеистами это 1 января, когда заканчивается набор в возрастные хоккейные группы. "Ребенок попадает в девятилетнюю группу, если ему исполнилось девять лет до 1 января. Если 2 января ему исполняется десять лет, то он будет играть в одной группе с ребенком, который отпразднует десятый день рождения аж в декабре. А в этом предподростковом возрасте разница в 12 месяцев означает очень заметные различия в физической форме". Ну а дальше история понятна – старшего ребенка принимают за более сильного и способного, начинают усиленно тренировать, отправлять на соревнования, выделять лучшего тренера, и к 13 – 14-ти годам он обладает достаточным мастерством для попадания в Канадскую хоккейную лигу. А младший сверстник остается на скамье аутсайдеров просто потому, что родился не в том месяце…
football_in_numbers
08.09.2021 08:29Да, тема не новая, но не её я хотел осветить, а показать данные в сравнении с другими странами. Есть же, например, Англия, в которой из покон лет АПЛ считается самым сильным чемпионатом в мире. И мы видим, что футболисты играющие в АПЛ, Чемпионшипе, 1 и 2 лигах равномерно рождены в течении года. Внимание вопрос, почему у них так, а у нас иначе? :)
n0wheremany
06.09.2021 14:40Посмотрите Человек, который изменил всё (2011), возможно появятся дополнительные идеи
Anhal
06.09.2021 15:55Мне кажется, аналитика футбола сродни изучению и прогнозу погоды. Да, можно много чего мерить и строить красивые графики, но предсказать и как-то повлиять на результаты конкретной игры исходя из долгосрочных статистических исследований - практически бессмысленно. Слишком много случайных или непредсказуемых параметров, слишком много эмоций и чисто человеческих факторов. Но рад ошибиться, если это впервые будет успешно применено на нашей сборной)
Никто, кроме меня, эти данные не собирает
Учитывая, сколько денег вбухивается в футбол, у меня до сих пор была уверенность, что его математическим анализом занимаются целые институты, только это особо не афишируется. На зарплату одного хорошего футболиста можно содержать целый отдел аналитиков.
Думаю, недалек день, когда искусственный интеллект будет в реальном времени анализировать игру соперника и давать подсказки тренеру. Но и тут остается человеческий фактор: как говорится, некоторым закон не писан, если писан, то не читан, если читан, то не понят, если понят, то не так.
Kwent
06.09.2021 16:28Мы не говорим же о 100% уверенности, мы говорим о вероятностях. Ближайшую погоду предсказать можно и достаточно точно, да и букмейкеры как-то считают коэффициенты, и что-то мне подсказывает, делают они это успешно. Так что аналитика футбола это тот случай, где повысив точность с 50% до 51% можно срубить кучу денег.
RigelNM
06.09.2021 20:25В киберспорте уже пару лет во время матча показывают прогноз нейросети на ту или иную ситуацию, та обучена на выборке подобных ситуаций в целом и в добавок на игре конкретного игрока в подобных ситуациях.
football_in_numbers
08.09.2021 08:33Согласен, что на зп одного игрока можно было бы собрать целую команду DS, которая трудилась бы на благо клуба. Но футбольные реалии немного иные. К примеру, у Ливерпуля, РБ Лейпцига и Бенфики есть команды DS, которые занимаются обучением, как описательной статистики, так и предиктивных моделей для подготовки к матчам и разбору соперников, а так же для селекции футболистов. Если говорить о России, то у нас есть несколько человек, которые пытаются внедрить культуру Data Driven, но пока всё происходит со скрипом. Пока в головах манеджмента и управленцев не сформируется потребность, будет тяжело доносить до них о необходимости анализа данных.
NavolotskiyDV
06.09.2021 16:47По поводу антропометрических данных.
Детский тренер всегда будет выбирать воспитанников покрупнее. С ними в рамках одной возрастной категории выиграть легче. А отчитывается он как-раз по текущим результатам, а не по дальнейшим результатам выпускников. А дальше — естественно антропометрия выравнивается и получаются довольно заурядные футболисты. Проблема в критериях оценки, а не в желании тренеров.
По поводу нападающих.
Нападающий нападающему рознь. Вспомнить хотя бы историю Агуэро и Пэпа, когда Агуэро сидел на лавке и сбрасывал вес, чтобы иметь возможность отрабатывать в защите, как того требовал Пэп. Термин нападающий сейчас очень размыт, так же как термин защитник.football_in_numbers
08.09.2021 08:40Ну почему всегда? Так сейчас устроено в нашем детско-юношеском футболе. Действительно, при селекции мальчиков впервую очередь обращают внимание на рост родителей, а также бабушек и девушек и этот подход на серьёзных "щщах" культивируется на различных скаутских курсах. Но я на цифрах доказал, что этот подход утопия. Нет корреляции между ростом и весом центральных и крайних нападающих и количеством забиваемыми ими голами, ровно также, как и антропометрией вратарей и защитников, и пропускаемыми ими голами. Есть академии, в которых играют низкие и худощавые футболисты, которые и забивают больше средних показателий в лигах, так и пропускают меньше средних показателей в лигах. Так, что тут вопрос к РФС, как мы на уровне ДЮСШ выстраиваем селекцию мальчиков 7-8-9-10 летнем возрасте и тд. Если мы хотим 11 баскетболистов на поле, то мы всё правильно делаем. Если хотим побеждать на международной арене, учитывая отрицательные результаты наших клубов, молодежных и основной сборных, то значит, нам нужно, что-то менять именно в воспитании молодых кадров.
yarglor
06.09.2021 17:10+3Основная проблема российского футбола в том, что учатся в некоем СДЮСШОРе два отрока. Один талант - юный Пеле, у другого папа депутат, помощник замминистра спорта или просто богатый человек, которому не жалко денег на будущее сына. В молодёжную сборную попадает второй отрок.
И пока это правило не изменится (и не пройдёт лет 10 с этого знаменательного момента) - не быть сборной РФ чемпионом.yarglor
06.09.2021 17:15Вот, например, про это. https://bobsoccer.ru/user/46007/blog/5-prichin-deficita-molodyh-futbolnyh-talantov-v-rossii-chast-2.html. Габариты кандидата там, к слову, тоже упоминаются - такое явление есть. Но всё-таки это не основная причина низких показателей России в футболе.
RigelNM
06.09.2021 20:29Не знаю как в футболе (там все-таки совсем другие деньги). Но у нас на биатлоне тренировки были бесплатные, но на сборы и соревнования ездили за свой счет и соответственно многие, кто действительно хорошо выступали никуда не ездили, а продолжали для себя кататься в локальном лесу.
dekeyro
07.09.2021 06:46В "Большая игра" 16 серия (Речь Тренера Попова) прекрасно сказано. ( https://youtu.be/0Hkd0Crr7oQ)
football_in_numbers
08.09.2021 08:41Да, есть такая проблема. Но про неё не любят говорить, даже те, которые попали под этот каток не справедливости.
REPISOT
06.09.2021 17:18А почему в первой табличке (игроков, по месяцу рождения) месяцы не по порядку?
Kopilov
06.09.2021 17:52Вероятно, отсортировано по числу футболистов, родившихся в этом месяце.
«Анализ показывает, что футболисты рождаются в первые 3 месяца года: январь, февраль, март.»REPISOT
06.09.2021 22:01Таки нет. И в первой колонке и в последней проценты идут вверх-вниз. В первой есть 8-9-8, в последней 10-8-10. То есть сортировка не по ним. Не по случайной стране же сортировать?
football_in_numbers
08.09.2021 08:44Месяцы отсортированы от большего к меньшему по количеству футболистов рожденных в этом месяце суммарно по всему массиву данных. Дальше разбиты по чемпионатам. А дальше уже отражена доля каждого месяца внутри чемпионатов конкретной страны. Например, в Нигерии "декабрят" 18%, но в общем массиве гораздо меньше, поэтому декабрь находится в нижней части списка месяцев. Таким образом я и провожу сравнение между странами и показывают различия для дальнейшего анализа.
infom
06.09.2021 17:51Сам очень интересуюсь и увлекаюсь футболом! Занимаюсь организацией любительской лиги в городе и сам играю.
Внимательно ознакомился с вашим трудом. Нисколько не умаляю проделанные данные, но не вижу какой либо аналитики. Графики и диаграммы это хорошо, но это не аналитика, это всего лишь визуализация и инфографика. А выводы которые вы делаете и так всем близким к футболу людям известны и понятны, и насчет антропометрии детей и насчет уровня футбола.
Нужна аналитика, которая подсказывает и даёт неожиданный/нетипичный/неинтуитивный результат. Тогда и деньги найдутся вам на проект и он будет полезен футболу в целом.football_in_numbers
08.09.2021 08:53Спасибо, что внимательно ознакомились с моим трудом. Но видимо не до конца внимательно :) В рамках своих статей и публикаций я уже достаточно опубликовал инсайтов, которые по идее должны привести к изменениям в детско-юношеском да и во взрослом футболе. Комментарии "и так всем понятны" не работают, потому что если всем понятны, то почему ничего не меняется? Где доказательство на цифрах? Я же исповедую культуру data driven - принимаемые решения на основе проанализированных данных. Каждый свой вывод и инсайт я подкрепляю графиком и цифрами, а это уже инной подход. Ну, а если вы за графиком ничего не видите, ну это вопрос к лично вашему отношению к анализу данных, верите вы в это или нет, я вот верю.
lexasss
06.09.2021 19:10Про свясь "месяц рождения / шанс стать проф-футболистом" известно весьма давно. Но другие данные могуть выявить и неизвестные зависимости. Удачи вам.
REPISOT
06.09.2021 22:11Было бы интересно посмотреть статистику по другим видам спорта. Какие менее всего зависят от даты рождения.
Еще такая статистика интересна с точки зрения всяких астрологов — родился ребенок в январе — «ваш сын моет стать футболистом».
Cost_Estimator
Это как вы ухитрились?
Kopilov
18.1818 фактов (в среднем) о каждом человеке
Cost_Estimator
Человек = row
Факт (параметр) = column
Что вы там вздумали перемножать? У автора 55000 наблюдений занимают больше миллиона строк, явно что-то не так с хранением данных.
Kopilov
Вы, вероятно, не сталкивались с OLAP и многомерными данными
Cost_Estimator
В Excel - не сталкивался.
Kopilov
Тогда держите, на всякий случай: https://www.excel-easy.com/data-analysis/pivot-tables.html
«У автора 55000 наблюдений занимают больше миллиона строк» — что мы называем наблюдением? Там данные о 55000 лицах. О каждом лице n фактов, каждый из которых может иметь несколько параметров (а не одну ячейку-пересечение человек vs факт), уникальных «параметров факта» (aka Dimension) — 65. Наблюдений — 55000 * n.
Cost_Estimator
Тогда другой вопрос - нахрена так усложнять систему? Есть игроки, у каждого есть параметры. Двумерный массив данных.
Kopilov
Конкретно для автора — не знаю, не углублялся в его исследование. В общем случае — потому, что есть «параметры для параметров», и массив уже не двухмерный. В этом вся суть OLAP. Хранить такие данные в Excel, действительно, неудобно.
Kopilov
«Конкретно для автора — не знаю,» — а чтобы комментарий выше не выглядел простой отпиской, постараюсь привести пример, когда двухмерная таблица недостаточна/неудобна, по сравнению с декартовым произведением в строках.
Один из самых простых (и часто встречающихся) метапараметров — время. Допустим, у каждого человека мы измеряем всего два параметра: рост и вес. Двухмерной таблицы будет достаточно, если нужен срез данных за один момент времени (например, набор призывников, у них ещё и возраст одинаковый, нам на радость). Но обычно каждый человек (спортсмен — уж точно) измеряет свои параметры с некоторой периодичностью.
Обходясь двухмерной таблицей, мы, в лучшем случае, получим декартово произведение в столбцах (при этом время может быть только дискретным): рост в M году, вес в M году, рост в N году, вес в N году. И таблица будет заполнена целиком только при условии, что изначально ведётся для всех по определённым правилам. В реальной жизни это почти невозможно (особенно если расширить таблицу на несколько поколений).
Таблица, построенная линейно, позволяет не только указывать даты с любой точностью не создавая пустых записей, но и более гибко строить выборки: срезы, усреднённые показатели, временные ряды.
Cost_Estimator
Хороший пример, спасибо.
football_in_numbers
Классно вы тут вдвоем уже все решили, не понимая ничего о структуре данных :) Итак, по порядку. С OLAP знаком и уже давно. Да, занимает больше миллиона и гораздо больше, потому что вы забили каждого игрока ещё умножить на кол-во матчей, которые он сыграл начиная с сезона 15/16. Я собираю данные не по игрокам, а по матчам, по каждому матчу из ЮФЛ-ов, МРПЛ и взрослому футболу (страны представлены на графиках), соответственно туда и попадают игроки сыгравшие в этом матче или попавшие в заявку, вот их уникальных и будет более 55 000 тысяч за 6 сезонов.
Cost_Estimator
Это написано в статье.
А это в вашем комментарии. Разберитесь уж, потом критикуйте обсуждения других.
football_in_numbers
А как собственно одно противоречит другому? :) Я собираю данные по матчам, представьте себе там содержатся данные по игрокам. Футболистов уже собралось более 55000. Критикуете тут только вы, я лишь ответил на ваш комментарий, к тому же по существу :)
football_in_numbers
Вообще структура данных состоит из каждого матча, где каждая строка это игрок с 65 признаками и метриками, поэтому и получилось более 1 млн. строк. А вообще, мне нужно хранилище, которое будет пополнояемое без ограничений в ближайшие десятилетия, поэтому и выбрал облачную базу.