Okwu Mmalite
Amplitude egosila onwe ya nke ọma dị ka ngwá ọrụ nyocha ngwaahịa n'ihi ntọlite emume dị mfe yana mgbanwe nhụta. Ọtụtụ mgbe ọ na-adịkwa mkpa ịtọlite ụdị njirimara nke gị, ndị ọrụ ụyọkọ, ma ọ bụ wuo dashboard na sistemụ BI ọzọ. Ọ ga-ekwe omume naanị iji data mmemme sitere na Amplitude mee ụdị aghụghọ a. Edemede a ga-agwa gị otu esi enweta data a na obere ihe ọmụma mmemme.
Ihe achọrọ
- Ihe oru ngo dị n'Amplitude nke ahaziri mmemme nke ọma yana anakọtara ọnụ ọgụgụ na ha.
- Awụnyere Python (M na-arụ ọrụ na ụdị 3.8.3), nke onye nwere ike ịgụ nwere ike ịrụ ọrụ ma ọ dịkarịa ala na ọkwa dị mkpa.
Ntuziaka
Nzọụkwụ 1. Inweta API-igodo na igodo nzuzo
Iji bulite data, ị ga-ebu ụzọ nweta igodo API na igodo nzuzo.
Ị nwere ike ịchọta ha site na isoro ụzọ ndị a:
- "Jikwaa data" (dị na ala aka ekpe nke ihuenyo)
- Họrọ ọrụ achọrọ nke a ga-ebudata data wee gaa na ya
- Na menu nke mepere emepe, họrọ “Ntọala Project”
- Anyị na-ahụ igodo igodo API na eriri nzuzo, detuo ma chekwaa ha na ebe nchekwa.
Na-enweghị ịpị, ị nwere ike soro njikọ ahụ, nke n'ozuzu ya dị ka nke a:
analytics.amplitude.com/$$$$$$$/manage/project/*****/settings,
ebe $$$$$$ bụ nbanye njupụta nke nzukọ gị, ****** bụ nọmba ọrụ
Nzọụkwụ 2: Nyochaa ọnụnọ nke ụlọ akwụkwọ achọrọ
Ozi ọma ahụ bụ na ọ fọrọ nke nta ka ọ bụrụ na ị nwetalarị ọba akwụkwọ ndị a na ndabara ma ọ bụ budata ya, mana ịkwesịrị ịlele. Ndepụta ọba akwụkwọ zuru oke nke m ji mee ihe n'oge edere (a na-egosi ụdị dị na mbikọ ebe ọ dabara):
- arịrịọ (2.10.0) - izipu arịrịọ site na api iji nweta data
- pandas (1.0.1) - ịgụ json, ịmepụta dataframe wee dee faịlụ
- zipfile - wepụ faịlụ site na ebe nchekwa enwetara site na API
- gzip - na-ebupụ faịlụ json site na .gz
- os - nweta ndepụta faịlụ site na ebe nchekwa enweghị ngwugwu
- oge - nhọrọ, tụọ oge ịgba ọsọ nke edemede ahụ
- tqdm - nhọrọ, maka nlebanya dị mfe nke ọganihu nhazi faịlụ
Nzọụkwụ 3. Ide a data loading script
Ndụmọdụ: ederede nbudata zuru ezu na njedebe nke akụkọ ahụ; ọ bụrụ na ịchọrọ, ị nwere ike were ya ozugbo wee rụtụ aka na nkọwa nke nzọụkwụ site na nzọụkwụ ma ọ bụrụ na ọ dị mkpa.
Nzọụkwụ 3.1. Na-ebubata ọba akwụkwọ
Anyị na-ebubata ọba akwụkwọ niile edepụtara na nzọụkwụ nke abụọ.
# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
Nzọụkwụ 3.2. Na-enyefe arịrịọ na Amplitude
Ka anyị chọpụta mmalite ogbugbu nke edemede wee dee ya na agbanwe agbanwe a.
mmalite ụbọchị na njedebe na-ahụ maka oge maka nbudata data ma wuo ya n'ime ederede nke arịrịọ ezigara na ihe nkesa Amplitude; na mgbakwunye na ụbọchị, ị nwekwara ike ịkọwapụta oge site na ịgbanwe uru mgbe 'T' na arịrịọ ahụ.
api_key na secret_key kwekọrọ na ụkpụrụ enwetara na nzọụkwụ mbụ; maka nchekwa, ana m akọwapụta usoro enweghị usoro ebe a kama nke m.
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'
api_key = 'kldfg844203rkwekfjs9234'
secret_key = '094tfjdsfmw93mxwfek'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')
Nzọụkwụ 3.3. Iji data na-ebudata ebe nchekwa
Anyị na-ewepụta aha maka ebe nchekwa wee dee ya na mgbanwe faịlụ aha. Maka ịdị mma m, m na-egosi oge + na-egosi na nke a bụ data njupụta. Na-esote, anyị na-edekọ nzaghachi natara site na Amplitude n'ime ebe nchekwa.
# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. Архив с файлами успешно скачан')
Nzọụkwụ 3.4. Iweghachite faịlụ na nchekwa na kọmputa gị
Ọbá akwụkwọ zipfile na-abata n'ime egwuregwu iji nyere aka wepụ faịlụ. N'ahịrị nke atọ, kpachara anya wee detuo ụzọ gị ebe ọ dị gị mma ịwepụta.
# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)
Nzọụkwụ 3.5. ntughari json
Mgbe ị wepụsịrị faịlụ ndị ahụ na ebe nchekwa, ịkwesịrị ịgbanwe faịlụ json na usoro .gz wee dee ha n'ime ebe nchekwa data maka ọrụ ọzọ.
Biko mara na ebe a ịkwesịrị ịgbanwe ụzọ ahụ ọzọ na nke gị, kama 000000 dee nọmba ọrụ gị site na Amplitude (ma ọ bụ jiri aka meghee ụzọ ebe ewepụtara ebe nchekwa wee lelee aha folda n'ime).
Ka ewere:
Ide ndekọ na mgbanwe, nweta ndepụta faịlụ site na ndekọ aha, ịmepụta dataframe efu, time.sleep(1) maka tqdm ka ọ rụọ ọrụ nke ọma, n'ime loop anyị mepee faịlụ .gz wee jiri pandas gụọ json wee jupụta. dataframe enyere.
# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
0000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
Nzọụkwụ 3.6. Na-ede dataframe na excel
Nbulite na excel bụ naanị ọmụmaatụ ebe a. N'ọtụtụ ọnọdụ, ọ na-adaba adaba iji usoro data pụta n'ime Python ma ọ bụ tinye data na nchekwa.
Ị ga-ejikwa nke gị dochie ụzọ nbudata data ebe a.
# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)
Nzọụkwụ 3.7. Anyị na-agụ oge ịgba ọsọ nke edemede ahụ
Ịdekọ oge dị ugbu a na mgbanwe b, na-agbakọ ọdịiche na ọnụ ọgụgụ nke nkeji, na-egosipụta ngụkọta nkeji. Nke a bụ nzọụkwụ ikpeazụ.
b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))
nkwubi
Ị nwere ike ịkpọ tebụl wee malite ịrụ ọrụ na ya site n'ịkpọ amplitude_dataframe variable nke edere data n'ime ya. Ọ ga-enwe ihe dị ka ogidi 50, nke n'ime 80% nke ikpe ị ga-eji: event_type - aha mmemme, event_properties - ihe omume, ihe omume_time - oge ihe omume, uuid - id client, user_properties - ndị ahịa, ị kwesịrị ịmalite ịrụ ọrụ na ha na mbụ. . Ma mgbe ị na-atụnyere ọnụ ọgụgụ sitere na ngụkọ nke gị na ihe ngosi sitere na dashboards amplitude, ị gaghị echefu na sistemụ ahụ na-eji usoro nke ya maka ịgbakọ ndị ahịa / funnels pụrụ iche, wdg, na tupu ime nke a, ị ga-agụrịrị akwụkwọ Amplitude.
Daalụ maka itinye uche gị! Ugbu a ị nwere ike bulite data mmemme raw na Amplitude wee jiri ya rụọ ọrụ nke ọma.
Ederede dum:
# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')
# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. Архив с файлами успешно скачан')
# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)
# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')
# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. Архив с файлами успешно скачан')
# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)
# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))
0000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))
isi: www.habr.com