Soo celinta xogta baaxadda leh ee API

Horudhac

Amplitude ayaa si aad u wanaagsan isu cadeeysay inay tahay aalad lafo-gureedka alaabada ay ugu wacan tahay habaynteeda fudud ee dhacdada iyo dabacsanaanta aragga. Badana waxa jirta baahi loo qabo in aad samaysato moodal u gaar ah, isticmaalayaasha kooxda, ama aad ku dhisto dashboard nidaam kale oo BI. Waxa kaliya oo suurtagal ah in lagu sameeyo khiyaanadan oo kale xogta dhacdada cayriin ee Amplitude. Maqaalkani wuxuu kuu sheegi doonaa sida loo helo xogtan iyada oo leh aqoonta barnaamijyada ugu yar.

Shuruudaha

  1. Mashruuc ku yaal Amplitude kaas oo dhacdooyinka mar horeba si sax ah loo habeeyey oo tirokoob lagu ururiyey iyaga
  2. Python waa la rakibay (waxaan ku shaqeynayaa nooca 3.8.3), kaas oo akhristaha suurtagalka ah uu mar horeba la shaqeyn karo ugu yaraan heerka aasaasiga ah

Tilmaamaha

Tallaabada 1. Helitaanka API-key iyo furaha sirta ah

Si aad xogta u geliso, marka hore waxaad u baahan tahay inaad hesho furaha API iyo furaha sirta ah.

Waxaad ku heli kartaa adigoo raacaya dariiqa soo socda:

  1. "Maamul xogta" (waxay ku taal dhinaca bidix ee hoose ee shaashadda)
  2. Dooro mashruuca la rabo oo xogta laga soo dejin doono oo u tag
  3. Liiska mashruuca ee furmay, dooro "Project settings"
  4. Waxaan helnaa xargaha furaha API-key iyo sirta-furaha, nuqul ka samee oo ku keydi meel nabdoon.

Adigoon gujin, waxaad raaci kartaa xiriirka, kaasoo guud ahaan u eg sidan:
analytics.amplitude.com/$$$$$$/maamul/mashruuc/*****/settings,
halka $$$$$$ uu yahay gelitaanka baaxadda ururkaaga, ****** waa lambarka mashruuca

Tallaabada 2: Hubinta joogitaanka maktabadaha loo baahan yahay

Akhbaarta wanaagsani waxay tahay in hubaal ahaan aad horeba ugu haysatey maktabadahaan si caadi ah ama loo soo dejiyey, laakiin waxaad u baahan tahay inaad hubiso. Liistada dhamaystiran ee maktabadaha aan isticmaalay wakhtiga qoritaanka

  1. codsiyada (2.10.0) - u dirida codsi iyada oo loo marayo api si loo helo xogta
  2. pandas (1.0.1) - akhrinta json, abuurista xog-frame ka dibna wax ku qora fayl
  3. zipfile - ka soo saar faylasha kaydka lagu helo API-ga
  4. gzip - ka soo dejinta json faylasha .gz
  5. os - ka helida liiska faylasha kaydka aan baakadaysan
  6. waqti - ikhtiyaari ah, qiyaas wakhtiga socodsiinta qoraalka
  7. tqdm - ikhtiyaari, si loo kormeero fudud ee horumarka habaynta faylka

Talaabada 3. Qoritaanka qoraalka xogta rarida

Tilmaam: qoraalka buuxa ee soo dejinta waa dhamaadka maqaalka; haddii aad rabto, waxaad isla markiiba qaadan kartaa oo tixraac sharraxaad-tallaabo haddii loo baahdo.

Tallaabada 3.1. Soo dejinta maktabadaha

Waxaan soo dejineynaa dhammaan maktabadaha ku qoran tallaabada labaad.

# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm

Tallaabada 3.2. U gudbinta codsi ku saabsan Amplitude

Aynu ogaano bilawga fulinta qoraalka oo u qor variable a.

startdate iyo enddate ayaa mas'uul ka ah muddada soo dejinta xogta waxaana lagu dhisay qoraalka codsiga loo diray server-ka Amplitude; marka lagu daro taariikhda, waxaad sidoo kale qeexi kartaa saacadda adigoo bedelaya qiimaha 'T' ka dib codsiga.

api_key iyo secret_key waxay u dhigmaan qiyamka la helay tallaabadii ugu horreysay; sababo ammaan dartood, waxaan halkan ku caddeeyaa taxane aan kala sooc lahayn oo aan aniga iska leeyahay.

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. Запрос отправлен')

Tallaabada 3.3. Soo dejinta kayd xog leh

Waxaan la nimid magaca kaydka oo ku qor doorsoomiyaha filename. Si ay iigu raaxaysato, waxaan tilmaamay muddada + tus in tani ay tahay xogta baaxadda leh. Marka xigta, waxaan ku duubnaa jawaabta laga helay Amplitude gudaha kaydka.

# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. Архив с файлами успешно скачан')  

Tallaabada 3.4. Ka soo celinta faylasha galka kombiyuutarkaaga

Maktabadda zipfile ayaa ciyaarta soo galaysa si ay uga caawiso soo saarista faylasha. Sadarka saddexaad, taxaddar oo ku qor waddadaada meesha ay kugu habboon tahay inaad soo saarto.

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)

Tallaabada 3.5. json beddelidda

Ka dib markaad ka soo saarto faylasha kaydka, waxaad u baahan tahay inaad u beddesho faylasha json qaabka .gz oo aad ku qorto kaydinta xogta si aad u hesho shaqo dheeraad ah.

Fadlan ogow in halkan aad u baahan tahay inaad mar kale jidkaaga u beddesho, oo halkii 000000 aad ka qori lahayd nambarkaaga mashruuca Amplitude (ama gacanta ku fur waddada meesha kaydka laga soo saaray oo eeg magaca faylka gudaha).

Sida ay u kala horreeyaan:

Qorista tusaha doorsoome, ka helida liiska faylalka tusaha, abuurista xog madhan, time.sleep(1) si tqdm ay si sax ah ugu shaqeyso, gudaha loop-ka waxaanu furnaa faylasha .gz oo isla markiiba isticmaal pandas si aanu u akhrino json una buuxiyo qaab-dhismeedka xogta la siiyay.

# Преобразование 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')

Tallaabada 3.6. Qoritaanka xogta qaab-dhismeedka sare ee Excel

Upload to excel waa uun tusaale halkan. Xaalado badan, way ku habboon tahay in lala shaqeeyo qaabka xogta ee ka soo baxa gudaha Python ama la dhigo xogta kaydinta.

Waa inaad sidoo kale ku beddeshaa dariiqa soo gelinta xogta ee adiga adiga kuu gaar ah.

# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)

Tallaabada 3.7. Waxaan xisaabinnaa wakhtiga qoraalka

Ku duubida wakhtiga hadda doorsoomaha b, xisaabinta faraqa iyo tirada daqiiqadaha, muujinta wadarta daqiiqadaha. Tani waa tallaabadii ugu dambeysay.

b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))

gunaanad

Waxaad wici kartaa miiska oo aad bilaabi kartaa la shaqayntiisa adiga oo wacaya amplitude_dataframe variable kaas oo xogta lagu qoray. Waxay yeelan doontaa qiyaastii 50 tiir, kuwaas oo 80% kiisaska aad isticmaali doonto: dhacdo_type - magaca dhacdada, dhacdooyinka_properties - cabbirada dhacdooyinka, dhacdo_time - dhacdo dhacdo, uuid - macmiilka id, user_properties - xuduudaha macmiilka, waa inaad marka hore bilawdo la shaqayntooda iyaga . Oo marka la barbar dhigo tirooyinka xisaabaadkaaga iyo tilmaamayaasha ka imanaya dashboards Amplitude, waa inaadan iloobin in nidaamku isticmaalo hab u gaar ah oo lagu xisaabiyo macaamiisha gaarka ah / funnels, iwm.

Waad ku mahadsan tahay dareenkaaga! Hadda waxaad ku dhejin kartaa xogta dhacdada cayriin ee Amplitude oo si buuxda ugu isticmaali kartaa shaqadaada.

Qoraalka oo dhan:

# Импорт библиотек
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))

Source: www.habr.com

Add a comment