Jakie koszty mogą wpływać na API danych rynkowych?
Koszty bezpośrednie i pośrednie: najpierw definicja
API danych rynkowych to interfejs programistyczny, który dostarcza informacje rynkowe (na przykład ceny lub kwotowania) do aplikacji. „Koszty” w tym kontekście to opłaty i wydatki, które ponosisz w celu uzyskania, przesyłania, przechowywania i korzystania z tych informacji rynkowych.
Koszty można podzielić na:
- Koszty bezpośrednie: kwoty naliczane przez dostawcę za dostęp i dostarczanie danych (na przykład opłata za plan, opłaty za żądanie lub dodatki za wyższe limity).
- Koszty pośrednie: wydatki, które kontrolujesz, ale które zmieniają się wraz z Twoim użyciem (na przykład czas obliczeniowy, przepustowość sieci, przechowywanie w bazie danych i nakład pracy inżynieryjnej).
Nawet jeśli cennik dostawcy pozostaje taki sam, Twoje całkowite wydatki mogą się zmienić, ponieważ zmieniają się żądania Twojej aplikacji, wolumen danych i wymagania dotyczące przetwarzania.
Jak korzystanie z API danych rynkowych tworzy czynniki kosztowe
Dostęp do danych rynkowych jest zazwyczaj napędzany przez sposób, w jaki wysyłasz zapytania i konsumujesz dane. Kluczowe zmienne czynniki obejmują:
- Liczba żądań: liczba wywołań API, subskrypcji, symboli lub instrumentów, o które prosisz. Więcej symboli lub częstsze aktualizacje zwykle zwiększają użycie.
- Szczegółowość danych i częstotliwość aktualizacji: wyższy poziom szczegółowości (na przykład częstsze aktualizacje) może zwiększyć ilość dostarczanych danych.
- Metoda dostarczania: strumieniowanie w porównaniu z odpytywaniem może przesunąć koszty między „liczbą wiadomości/wywołań” a „przepustowością”, w zależności od rozliczeń dostawcy.
- Równoczesne połączenia: niektóre systemy pobierają opłaty lub nakładają limity w oparciu o liczbę aktywnych strumieni lub sesji, które utrzymujesz.
- Potrzeby w zakresie przechowywania i odtwarzania: jeśli przechowujesz dane do późniejszej analizy, koszty przechowywania i wyszukiwania rosną wraz z długością okresu przechowywania i wolumenem danych.
- Wymagania dotyczące przetwarzania końcowego: normalizacja, filtrowanie, deduplikacja i transformacje szeregów czasowych mogą wydłużyć czas obliczeniowy.
Założenia do przykładowych obliczeń
Jeśli chcesz oszacować koszty bez polegania na rzeczywistych liczbach, uczyń założenia jawnymi:
- Średnia liczba żądań na minutę (lub wiadomości na sekundę).
- Średni rozmiar ładunku na odpowiedź (lub średnia liczba bajtów na wiadomość).
- Okres przechowywania w dniach.
- Narzut przetwarzania, wyrażony jako czas obliczeniowy na jednostkę danych.
Następnie możesz oszacować dwie kategorie:
- Koszty związane z dostawcą (z Twojego planu i jednostek pomiaru użycia dostawcy).
- Koszty Twojej infrastruktury (przepustowość, przechowywanie i obliczenia potrzebne do pobrania i wykorzystania danych).
Ponieważ te założenia są uproszczone, szacunek może być błędny, gdy rzeczywiste wzorce ruchu będą się różnić.
Dowody, weryfikacja i praktyczna lista kontrolna
Ponieważ dostawcy i rynki są różne, weryfikacja polega na dopasowaniu trzech rzeczy: Twojego zachowania, modelu rozliczeniowego dostawcy i Twojego projektu operacyjnego.
- Zidentyfikuj jednostki rozliczeniowe dostawcy: sprawdź, czy opłaty są naliczane za żądania, wiadomości, subskrypcje, przepustowość, aktywne połączenia lub pola danych. To określa, które „zmienne czynniki” są najważniejsze.
- Zmierz swoje rzeczywiste użycie: oprzyrząduj swoją aplikację, aby rejestrować liczbę żądań, rozmiary odpowiedzi, czasy trwania subskrypcji i szczytową współbieżność podczas reprezentatywnych sesji.
- Dopasuj użycie do swojego modelu kosztów: zastosuj swoje pomiary do warunków dostawcy (na przykład limitów planu i wszelkich zasad dotyczących nadwyżek). Jeśli nie możesz bezpośrednio dopasować, ponieważ warunki są niejasne, potraktuj szacunek jako niepewny.
- Sprawdź koszty zarządzania danymi: oszacuj koszty obliczeniowe potoku pozyskiwania, wzrost przechowywania w bazie danych oraz koszty tworzenia kopii zapasowych/przechowywania na podstawie zmierzonego wolumenu danych.
- Zweryfikuj wydatki w trybie awarii: sprawdź, co dzieje się podczas przerw w działaniu lub ponownych prób. Ponowne próby i buforowanie mogą zwielokrotnić żądania lub spowodować przetwarzanie zaległości, co zwiększa obliczenia i przechowywanie.
Jeśli później zmienisz zakres symboli, częstotliwość aktualizacji lub okres przechowywania, powtórz mapowanie. Historyczne wzorce nie gwarantują przyszłych sum.
Ograniczenia i istotne ryzyka
Kilka ograniczeń może znacząco wpłynąć na wyniki kosztowe:
- Ciśnienie wsteczne i pętle ponownych prób: przejściowe problemy z siecią lub dostawcą mogą wywołać ponowne próby, które zwiększają liczbę żądań i obciążenie przetwarzania.
- Ruch w szczytach: wpływ na koszty może być zdominowany przez szczytową aktywność, a nie średnie użycie.
- Wzrost wolumenu danych: dłuższe przechowywanie, dodatkowe instrumenty lub wyższa szczegółowość mogą zwiększyć przechowywanie i obliczenia szybciej, niż oczekiwano.
- Złożoność jurysdykcyjna i umowna: obowiązki regulacyjne i zapisy umowne mogą wpływać na to, co możesz przechowywać lub redystrybuować, co może zmienić całkowity koszt. Ponieważ wymagania są różne, zweryfikuj je z dokumentami prawnymi i operacyjnymi dostawcy.
Ponadto koszty nie są jedynym ograniczeniem: opóźnienie, dostępność i limity szybkości mogą pośrednio podnieść koszty, wymuszając większą infrastrukturę lub alternatywne projekty.
Kolejne pytania do weryfikacji
Aby niezależnie zweryfikować istotne fakty dla Twojej sytuacji, możesz zapytać:
- Jakich jednostek rozliczeniowych używa dostawca do dostępu do danych rynkowych? - Jak wzorzec żądań/subskrypcji Twojej aplikacji przekłada się na tę jednostkę rozliczeniową?