{"id":116725,"date":"2023-06-05T16:18:17","date_gmt":"2023-06-05T14:18:17","guid":{"rendered":"https:\/\/fotc.com\/?post_type=casestudy&#038;p=116725"},"modified":"2025-03-20T06:43:45","modified_gmt":"2025-03-20T05:43:45","slug":"prezentmarzen","status":"publish","type":"casestudy","link":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/","title":{"rendered":"Prezentmarze\u0144"},"content":{"rendered":"\n<h2 id=\"h-o-kliencie\">O kliencie<\/h2>\n\n\n\n<p><a href=\"https:\/\/prezentmarzen.com\/\" class=\"ek-link\">Prezentmarze\u0144<\/a> to jeden z pierwszych projekt\u00f3w sp\u00f3\u0142ki Emotivo, od ponad dekady zmieniaj\u0105cej obraz bran\u017cy czasu wolnego w Polsce. Serwis PrezentMarzen.com powsta\u0142 w 2009 roku, a w swojej ofercie ma ponad 3500 atrakcji zlokalizowanych na terenie ca\u0142ego kraju. Skorzysta\u0142o z nich ju\u017c ponad 200 000 os\u00f3b.<\/p>\n\n\n\n<h2 id=\"h-wyzwanie\"><strong>Wyzwanie<\/strong><\/h2>\n\n\n\n<p>Wraz z rozwojem sieci retail \u201ePrezentmarze\u0144\u201d pojawi\u0142a si\u0119 konieczno\u015b\u0107 wdro\u017cenia systemu rozlicze\u0144 pracowniczych. Jest to katalog zasad i warunk\u00f3w, a jednocze\u015bnie sk\u0142adowa szerszego programu wynagrodze\u0144. Pierwotnie postawiono na rozwi\u0105zanie, kt\u00f3re wydawa\u0142o si\u0119 najprostsze, a jednocze\u015bnie posiada\u0142o niski pr\u00f3g wej\u015bcia. W tym celu pos\u0142u\u017cono si\u0119 arkuszami Google Sheets. Pozwoli\u0142y one zbudowa\u0107 logik\u0119 pliku w oparciu o formu\u0142y, ale przede wszystkim zapewnia\u0142y mo\u017cliwo\u015b\u0107 wdro\u017cenia w\u0142asnym sumptem.<\/p>\n\n\n\n<p>&nbsp;Punkt\u00f3w w sieci przybywa\u0142o, a plik zacz\u0105\u0142 puchn\u0105\u0107, osi\u0105gaj\u0105c krytyczne rozmiary, co wymusi\u0142 archiwizowanie cz\u0119\u015bci danych. By\u0142o to jednak rozwi\u0105zanie dora\u017ane wp\u0142ywaj\u0105ce na spadek wydajno\u015bci. Okresy rozliczeniowe katalogowane w pliku skraca\u0142y si\u0119, bo konieczne by\u0142o coraz cz\u0119stsze archiwizowanie danych. To znacznie utrudnia\u0142o prac\u0119, a docelowo grozi\u0142o parali\u017cem systemu rozlicze\u0144 pracowniczych.<\/p>\n\n\n<div data-block_647dec0a9fb9b  class=\"block fotc-quote quote alignfull my-6\">\r\n  <div class=\"d-flex pt-5 pb-4 pt-md-4\">\r\n    <div class=\"fotc-quote-image flex-shrink-0\">\r\n            <img data-src=\"https:\/\/fotc.com\/app\/themes\/fotc-theme\/dist\/images\/blocks\/quote\/quote-icon_b1827815.png\" class=\"img-fluid lazy\">\r\n\r\n          <\/div>\r\n    <blockquote class=\"mb-0 ml-md-4 px-3 px-md-0 fotc-quote-blockquote d-flex flex-column\">\r\n      <span class=\"fotc-quote-text mb-3\">\u015awiadomo\u015b\u0107 faktu, \u017ce wi\u0119ksze firmy musz\u0105 radzi\u0107 sobie z podobnym problemem, sprawi\u0142a, \u017ce zacz\u0119li\u015bmy szuka\u0107 firmy, kt\u00f3ra pracuje w obr\u0119bie \u015brodowiska i narz\u0119dzi Google i b\u0119dzie w stanie zaproponowa\u0107 nam optymalne rozwi\u0105zanie. Tak trafili\u015bmy na FOTC<\/span>\r\n      <span class=\"fotc-quote-author f-size-14\">Dominik W\u00f3jcik, Prezentmarze\u0144<\/span>\r\n    <\/blockquote>\r\n  <\/div>\r\n  <style type=\"text\/css\">\r\n    [data-block_647dec0a9fb9b] {\r\n      width: 100%;\r\n    }\r\n  <\/style>\r\n<\/div>\n\n\n<h2 id=\"h-rozwi-zanie\"><strong>Rozwi\u0105zanie<\/strong><\/h2>\n\n\n\n<p>Problem, przed kt\u00f3rym stan\u0105\u0142 Prezentmarze\u0144 polega\u0142 na ograniczeniach Google Sheet. Tworzona w nim infrastruktura rozros\u0142a si\u0119 z czasem i pojawi\u0142a si\u0119 konieczno\u015b\u0107 zmigrowania jej na stabilne \u015brodowisko Google Cloud. Jak si\u0119 okaza\u0142o, arkusze nie by\u0142y w stanie obs\u0142u\u017cy\u0107 wi\u0119cej rekord\u00f3w co zmusi\u0142o klienta do archiwizacji starszych wierszy, poprzez zmian\u0119 kom\u00f3rek z formu\u0142ami na warto\u015bci sta\u0142e.<\/p>\n\n\n\n<p>Pierwszym zadaniem przed jakim stan\u0105\u0142 dzia\u0142 techniczny FOTC by\u0142o zaprojektowanie relacyjnego schematu baz danych. W tym momencie otrzymali\u015bmy r\u00f3wnie\u017c dost\u0119p do arkuszy z danymi.<\/p>\n\n\n\n<p>O tym, \u017ce do rozwi\u0105zania problemu wybrana zosta\u0142a us\u0142uga BigQuery zadecydowa\u0142a ch\u0119\u0107 klienta do bezkosztowego przeprowadzenia dzia\u0142a\u0144. Przy poziomie zu\u017cycia generowanym przez klienta mo\u017cliwe by\u0142o skorzystanie z Free Tier, co sprawia\u0142o, \u017ce koszt tej us\u0142ugi okaza\u0142 si\u0119 zerowy.<\/p>\n\n\n\n<p>Podczas przepisywania formu\u0142 do BigQuery, kt\u00f3ra jest hurtowni\u0105 danych, natrafili\u015bmy na problem zwi\u0105zany z limitem BigQuery dotycz\u0105cym zagnie\u017cd\u017ce\u0144 w widokach. Wynika\u0142o to z faktu, \u017ce przy do\u015b\u0107 rozbudowanym schemacie, wiele warto\u015bci by\u0142o zale\u017cnych od siebie nawzajem. Po przekazaniu tej informacji klientowi, zaproponowali\u015bmy alternatywne rozwi\u0105zanie w postaci us\u0142ugi Cloud SQL. Wsp\u00f3lnie z klientem, kt\u00f3ry zgodzi\u0142 si\u0119 na t\u0119 propozycj\u0119, ustalili\u015bmy, \u017ce zostanie wykorzystana baza MySQL.&nbsp;<\/p>\n\n\n\n<p>Na tym etapie konieczne by\u0142o zmodyfikowanie formu\u0142, co wynika\u0142o z r\u00f3\u017cnic w sk\u0142adni mi\u0119dzy GoogleSQL a MySQL. Dzia\u0142aniom tym towarzyszy\u0142y r\u00f3wnoleg\u0142e zmiany wprowadzane przez klienta do samego schematu, kt\u00f3re wp\u0142yn\u0119\u0142y na wyd\u0142u\u017cenie procesu. Jego zwie\u0144czeniem by\u0142o przeprowadzenie wst\u0119pnej migracji. Pozwoli\u0142a ona zweryfikowa\u0107 poprawno\u015b\u0107 procesu przenoszenia i czyszczenia danych oraz formu\u0142. Wykorzystuj\u0105c skrawek danych sprawdzili\u015bmy r\u00f3wnie\u017c poprawno\u015b\u0107 w komunikacji frontendu z baz\u0105 danych.<\/p>\n\n\n\n<p>Po upewnieniu si\u0119, \u017ce migracja wst\u0119pna przebieg\u0142a pomy\u015blnie, przeszli\u015bmy do finalnej migracji wszystkich potrzebnych danych. Tak przygotowany proces zako\u0144czy\u0142 si\u0119 bez problem\u00f3w.<\/p>\n\n\n\n<h2 id=\"h-rezultaty\"><strong>Rezultaty<\/strong><\/h2>\n\n\n\n<p>Po przeniesieniu formu\u0142 z plik\u00f3w Google Sheets do MySQL, opieraj\u0105c si\u0119 na us\u0142udze Cloud SQL w \u015brodowisku Google i z pomoc\u0105 aplikacji frontowej dostarczonej przez Emotivo, mo\u017cliwe sta\u0142o si\u0119 sprawne korzystanie z logik zaszytych w bazie danych. Rozwi\u0105zany zosta\u0142 problem dotycz\u0105cy ryzyka utracenia mo\u017cliwo\u015bci p\u0142ynnego wykonywania rozlicze\u0144, natomiast infrastruktura zaproponowana przez FOTC zostawi\u0142a mo\u017cliwo\u015b\u0107 elastycznej zmiany i przej\u015bcia na mocniejsz\u0105 maszyn\u0119, w sytuacji, w kt\u00f3rej dalszy wzrost doprowadzi\u0142by do spadku wydajno\u015bci rozwi\u0105zania. Stanowi to zabezpieczenie na przysz\u0142o\u015b\u0107.<\/p>\n\n\n\n<p>&nbsp;Sytuacja, w kt\u00f3rej konieczne by\u0142o dokonanie korekty kursu dzia\u0142ania, wdro\u017cenie innego, ni\u017c pierwotnie zak\u0142adano rozwi\u0105zania, mo\u017cliwa by\u0142a dzi\u0119ki elastycznej wsp\u00f3\u0142pracy pomi\u0119dzy klientem a FOTC.<\/p>\n\n\n<div data-block_647dec449fb9c  class=\"block fotc-quote quote alignfull my-6\">\r\n  <div class=\"d-flex pt-5 pb-4 pt-md-4\">\r\n    <div class=\"fotc-quote-image flex-shrink-0\">\r\n            <img data-src=\"https:\/\/fotc.com\/app\/themes\/fotc-theme\/dist\/images\/blocks\/quote\/quote-icon_b1827815.png\" class=\"img-fluid lazy\">\r\n\r\n          <\/div>\r\n    <blockquote class=\"mb-0 ml-md-4 px-3 px-md-0 fotc-quote-blockquote d-flex flex-column\">\r\n      <span class=\"fotc-quote-text mb-3\">Dzi\u0119ki do\u015bwiadczeniu jednego z manager\u00f3w firmy FOTC zosta\u0142y podj\u0119te dzia\u0142ania maj\u0105ce na celu zmian\u0119 wariantu rozwi\u0105zania, czego wynikiem by\u0142o znalezienie wsp\u00f3lnego j\u0119zyka i formy doko\u0144czenia prac. Od tego momentu praca przebiega\u0142a wzorowo, co te\u017c daje nam argumenty do kontynuowania wsp\u00f3\u0142pracy. Tutaj mimo zagro\u017ce\u0144 r\u00f3wnie\u017c nie zostali\u015bmy pozostawieni sami sobie, natomiast firma FOTC szuka\u0142a kompromisu tak, aby doko\u0144czy\u0107 projekt i doprowadzi\u0107 do zadowolenia po jednej jak i drugiej stronie.<\/span>\r\n      <span class=\"fotc-quote-author f-size-14\">Dawid Czopek, Prezentmarze\u0144<\/span>\r\n    <\/blockquote>\r\n  <\/div>\r\n  <style type=\"text\/css\">\r\n    [data-block_647dec449fb9c] {\r\n      width: 100%;\r\n    }\r\n  <\/style>\r\n<\/div>\n\n\n<p><\/p>\n","protected":false},"featured_media":151319,"template":"","casestudy_industry":[42,49,51],"casestudy_service":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v16.7 (Yoast SEO v19.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Z Google Sheets do bazy danych MySQL - Case Study | FOTC<\/title>\n<meta name=\"description\" content=\"Jak skutecznie, wykorzystuj\u0105c narz\u0119dzia Google Cloud mo\u017cna zmigrowa\u0107 dane z Google Sheets do bazy danych MySQL\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prezentmarze\u0144 - Jak skutecznie przej\u015b\u0107 z Google Sheets do MySQL\" \/>\n<meta property=\"og:description\" content=\"Przedstawiamy case study, w kt\u00f3rym FOTC pomog\u0142o firmie Prezentmarze\u0144 przenie\u015b\u0107 ogrom danych z Google Sheets do bazy MySQL wykorzystuj\u0105c narz\u0105dzia Google Cloud\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/\" \/>\n<meta property=\"og:site_name\" content=\"FOTC\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-20T05:43:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fotc.com\/app\/uploads\/2023\/06\/SM-Prezent-marzen-e1687866529533-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Prezentmarze\u0144 - Jak skutecznie przej\u015b\u0107 z Google Sheets do MySQL\" \/>\n<meta name=\"twitter:description\" content=\"Przedstawiamy case study, w kt\u00f3rym FOTC pomog\u0142o firmie Prezentmarze\u0144 przenie\u015b\u0107 ogrom danych z Google Sheets do bazy MySQL wykorzystuj\u0105c narz\u0105dzia Google Cloud\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/fotc.com\/app\/uploads\/2023\/06\/SM-Prezent-marzen-e1687866529533-1.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/\",\"url\":\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/\",\"name\":\"Z Google Sheets do bazy danych MySQL - Case Study | FOTC\",\"isPartOf\":{\"@id\":\"https:\/\/fotc.com\/#website\"},\"datePublished\":\"2023-06-05T14:18:17+00:00\",\"dateModified\":\"2025-03-20T05:43:45+00:00\",\"description\":\"Jak skutecznie, wykorzystuj\u0105c narz\u0119dzia Google Cloud mo\u017cna zmigrowa\u0107 dane z Google Sheets do bazy danych MySQL\",\"breadcrumb\":{\"@id\":\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PL\",\"item\":\"https:\/\/fotc.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prezentmarze\u0144\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fotc.com\/#website\",\"url\":\"https:\/\/fotc.com\/\",\"name\":\"FOTC\",\"description\":\"Partner Google Cloud\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fotc.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Z Google Sheets do bazy danych MySQL - Case Study | FOTC","description":"Jak skutecznie, wykorzystuj\u0105c narz\u0119dzia Google Cloud mo\u017cna zmigrowa\u0107 dane z Google Sheets do bazy danych MySQL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/","og_locale":"pl_PL","og_type":"article","og_title":"Prezentmarze\u0144 - Jak skutecznie przej\u015b\u0107 z Google Sheets do MySQL","og_description":"Przedstawiamy case study, w kt\u00f3rym FOTC pomog\u0142o firmie Prezentmarze\u0144 przenie\u015b\u0107 ogrom danych z Google Sheets do bazy MySQL wykorzystuj\u0105c narz\u0105dzia Google Cloud","og_url":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/","og_site_name":"FOTC","article_modified_time":"2025-03-20T05:43:45+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/fotc.com\/app\/uploads\/2023\/06\/SM-Prezent-marzen-e1687866529533-2.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_title":"Prezentmarze\u0144 - Jak skutecznie przej\u015b\u0107 z Google Sheets do MySQL","twitter_description":"Przedstawiamy case study, w kt\u00f3rym FOTC pomog\u0142o firmie Prezentmarze\u0144 przenie\u015b\u0107 ogrom danych z Google Sheets do bazy MySQL wykorzystuj\u0105c narz\u0105dzia Google Cloud","twitter_image":"https:\/\/fotc.com\/app\/uploads\/2023\/06\/SM-Prezent-marzen-e1687866529533-1.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/","url":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/","name":"Z Google Sheets do bazy danych MySQL - Case Study | FOTC","isPartOf":{"@id":"https:\/\/fotc.com\/#website"},"datePublished":"2023-06-05T14:18:17+00:00","dateModified":"2025-03-20T05:43:45+00:00","description":"Jak skutecznie, wykorzystuj\u0105c narz\u0119dzia Google Cloud mo\u017cna zmigrowa\u0107 dane z Google Sheets do bazy danych MySQL","breadcrumb":{"@id":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fotc.com\/pl\/historie-klientow\/prezentmarzen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"PL","item":"https:\/\/fotc.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Prezentmarze\u0144"}]},{"@type":"WebSite","@id":"https:\/\/fotc.com\/#website","url":"https:\/\/fotc.com\/","name":"FOTC","description":"Partner Google Cloud","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fotc.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"}]}},"_links":{"self":[{"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/casestudy\/116725"}],"collection":[{"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/casestudy"}],"about":[{"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/types\/casestudy"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/media\/151319"}],"wp:attachment":[{"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/media?parent=116725"}],"wp:term":[{"taxonomy":"casestudy_industry","embeddable":true,"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/casestudy_industry?post=116725"},{"taxonomy":"casestudy_service","embeddable":true,"href":"https:\/\/fotc.com\/pl\/wp-json\/wp\/v2\/casestudy_service?post=116725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}