Iweghachite data njupụta site na API

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ọ

  1. Ihe oru ngo dị n'Amplitude nke ahaziri mmemme nke ọma yana anakọtara ọnụ ọgụgụ na ha.
  2. 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:

  1. "Jikwaa data" (dị na ala aka ekpe nke ihuenyo)
  2. Họrọ ọrụ achọrọ nke a ga-ebudata data wee gaa na ya
  3. Na menu nke mepere emepe, họrọ “Ntọala Project”
  4. 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):

  1. arịrịọ (2.10.0) - izipu arịrịọ site na api iji nweta data
  2. pandas (1.0.1) - ịgụ json, ịmepụta dataframe wee dee faịlụ
  3. zipfile - wepụ faịlụ site na ebe nchekwa enwetara site na API
  4. gzip - na-ebupụ faịlụ json site na .gz
  5. os - nweta ndepụta faịlụ site na ebe nchekwa enweghị ngwugwu
  6. oge - nhọrọ, tụọ oge ịgba ọsọ nke edemede ahụ
  7. 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

Tinye a comment