Tableau i Strava – jak przenieść analizy swoich postępów sportowych na wyższy poziom?

W Astrafox cenimy sobie bardzo aktywność fizyczną. A nie bylibyśmy sobą, gdyby uprawiając jakiś sport, nie chcielibyśmy analizować danych na temat naszego progresu. Tak też postanowiliśmy zebrać wszystkie dane zgromadzone w Stravie i podłączyć do nich Tableau, w celu wykonania analiz. Jak się okazało nie było to wcale proste zadanie.

Pierwszym krokiem było pobranie danych. Na szczęście Strava ma swoje API i z niego postanowiliśmy skorzystać. Aby Tableau mogło pobrać dane z API, potrzebuje „tłumacza” jakim jest Web Data Connector, w skrócie WDC. Ponieważ nikt nie miał czasu na odkrywanie koła na nowo, rozpoczęły się poszukiwania w Internecie gotowego konektora. Po sprawdzeniu kilku gotowych rozwiązań, udało się znaleźć działający WDC takashibinns.

Niestety po dokładniejszych testach okazało się, że nie wszystkie dane są pobierane, lub przy większej ilości danych konektor się zawiesza i nie zwraca informacji. Postanowiliśmy skorzystać z tego, iż Takashi udostępnił kod swojego WDC i zezwolił na jego modyfikację. Wprowadziliśmy trochę swoich usprawnień. Listę zmian, które zastosowaliśmy znajdziesz poniżej:

  • pobieranie danych ROUTS,
  • pobieranie danych STAR SEGMENTS,
  • dodany filtr dat dla ACTIVITIES, oraz STREAM ACTIVITIES, co pozwala zmniejszyć ilość pobieranych danych, tak by nie przekroczyć restrykcyjnych ograniczeń API Stravy,
  • w chwili przekroczenia ograniczeń API, WDC zwraca komunikat informujący o przyczynie błędu, a nie jak było wcześniej, w nieskończoność „pobierał” i zawieszał Tableau Desktop,
  • wyeliminowany został problem przepełnienia pamięci przy pobieraniu większej ilości danych (najczęściej problem pojawiał się przy pobieraniu streamów i skutkował całkowitym brakiem danych).

Zmodyfikowany przez nas WDC udostępniamy całej społeczności Tableau i Strava do wykorzystania na potrzeby własnych analiz. Znajduje się on pod tym adresem: https://t.astrafox.pl:8444/StravaWDC/index.html

Co zrobić, aby móc skorzystać z tego WDC?

Najpierw konieczne jest dodanie w Stravie własnej API aplikacji. Aby to zrobić należy kliknąć w prawym górnym rogu w swoje zdjęcie i wybrać „Settings”. Następnie z menu po lewo wybrać „My API Application”. Niestety opcja ta nie jest dostępna dla kont darmowych, konieczne jest posiadanie subskrypcji.

Z tego miejsca pozyskujemy potrzebne potem do zalogowania dane: Client ID, oraz Client Secret (widoczny po kliknięciu show).

Poniżej znajduje się formatka związana z aplikacją:

W pole „Authorization Callback Domain” należy wpisać: t.astrafox.pl

Zapisać zmiany klikając przycisk „Update”.

W pole „Authorization Callback Domain” należy wpisać: t.astrafox.pl Zapisać zmiany klikając przycisk „Update”.

W Tableau desktop, aby skorzystać WDC należy: Przy podłączaniu do źródła danych wybrać Web Data Connector, a w nowym oknie wkleić adres do konektora: https://t.astrafox.pl:8444/StravaWDC/index.html

Wczyta się formularz logowania i filtrowania wyników:

Następnie wkleić skopiowane wcześniej w Strawie pola Client ID i Client secret. Opcjonalnie chcąc ograniczyć ilość pobieranych Activities czy związanych z nimi Streams, można podać przedział czasu, dla którego pobrane zostaną dane (po dacie dodania Activity). Klikając „Authorize Tableau” zostaniemy przenawigowani do strony Stravy, gdzie trzeba się zalogować, a następnie udzielić pozwolenia na dostęp do danych. Zakres dostępu jest związany z wymaganymi przez API Stravy, uprawnieniami, potrzebnymi do pobrania obsługiwanych danych. Więcej informacji można znaleźć na stronie opisującej API: https://developers.strava.com/docs/reference

Jeśli wszystko przebiegło poprawnie, to powinniśmy wrócić do TD i tak jak przy podłączeniu do innych źródeł, zobaczyć z lewej strony listę „tabel” z danymi, które można pobrać ze Stravy.

Aby możliwe było odświeżanie na Tableau serwerze źródeł korzystających z tego WDC konieczne jest najpierw włączenie obsługi WDC (o ile wcześniej nie było to zrobione):

tsm data-access web-data-connectors allow  --refreshes true  --type all

A następnie dodanie tego WDC do listy zaufanych konektorów, wraz z listą adresów do których ten WDC może się łączyć.

tsm data-access web-data-connectors add --name “STRAVA_WDC” --url https://t.astrafox.pl:8444/StravaWDC/index.html --secondary https://t.astrafox.pl:8444/ StravaWDC/(.*),https://www.strava.com/api/(.*)
tsm pending-changes apply 

Tyle w zakresie pierwszego kroku, czyli pozyskania danych ze Stravy. Kolejne etapy, jak i efekt końcowy analiz już niedługo na naszej stronie.

Share This