Inarejesha data ya Amplitude kupitia API

Utangulizi

Amplitude imejidhihirisha vizuri sana kama zana ya uchanganuzi wa bidhaa kwa sababu ya usanidi wake rahisi wa hafla na kubadilika kwa taswira. Na mara nyingi kuna haja ya kusanidi muundo wako wa sifa, watumiaji wa nguzo, au kuunda dashibodi katika mfumo mwingine wa BI. Inawezekana tu kufanya ulaghai kama huo kwa data ghafi ya tukio kutoka kwa Amplitude. Nakala hii itakuambia jinsi ya kupata data hii kwa ujuzi mdogo wa programu.

Masharti

  1. Mradi katika Amplitude ambayo matukio tayari yamesanidiwa ipasavyo na takwimu hukusanywa juu yake
  2. Python imesakinishwa (ninafanya kazi katika toleo la 3.8.3), ambalo msomaji anayetarajiwa anaweza kufanya kazi nalo angalau katika kiwango cha msingi.

Maelekezo

Hatua ya 1. Kupata ufunguo wa API na ufunguo wa siri

Ili kupakia data, kwanza unahitaji kupata ufunguo wa API na ufunguo wa siri.

Unaweza kuwapata kwa kufuata njia ifuatayo:

  1. "Dhibiti data" (iko chini kushoto mwa skrini)
  2. Chagua mradi unaotaka ambao data itapakuliwa na uende kwake
  3. Katika menyu ya mradi inayofungua, chagua "Mipangilio ya mradi"
  4. Tunapata ufunguo wa API na ufunguo wa siri, unakili na uzihifadhi mahali salama.

Bila kubofya, unaweza kufuata kiunga, ambacho kwa ujumla kinaonekana kama hii:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
ambapo $$$$$$ ni kuingia kwa ukubwa wa shirika lako, ****** ndiyo nambari ya mradi

Hatua ya 2: Kuangalia uwepo wa maktaba zinazohitajika

Habari njema ni kwamba karibu tayari una maktaba hizi zilizosakinishwa kwa chaguo-msingi au kupakuliwa, lakini unahitaji kuangalia. Orodha kamili ya maktaba nilizotumia wakati wa kuandika (matoleo katika mabano yameonyeshwa inapofaa):

  1. maombi (2.10.0) - kutuma ombi kupitia api kupokea data
  2. pandas (1.0.1) - kusoma json, kuunda dataframe na kisha kuandika kwa faili
  3. zipfile - toa faili kutoka kwa kumbukumbu iliyopokelewa kupitia API
  4. gzip - kufungua faili za json kutoka .gz
  5. os - kupata orodha ya faili kutoka kwa kumbukumbu ambayo haijapakiwa
  6. wakati - hiari, pima wakati wa kufanya kazi wa hati
  7. tqdm - hiari, kwa ufuatiliaji rahisi wa maendeleo ya usindikaji wa faili

Hatua ya 3. Kuandika hati ya kupakia data

Kidokezo: hati kamili ya upakuaji iko mwishoni mwa kifungu; ikiwa unataka, unaweza kuichukua mara moja na kurejelea maelezo ya hatua kwa hatua ikiwa ni lazima.

Hatua ya 3.1. Kuagiza maktaba

Tunaagiza maktaba zote zilizoorodheshwa katika hatua ya pili.

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

Hatua ya 3.2. Kuwasilisha ombi kwa Amplitude

Wacha tugundue mwanzo wa utekelezaji wa hati na tuiandike ili kutofautisha a.

startdate na enddate zinawajibika kwa kipindi cha kupakua data na zimejengwa ndani ya maandishi ya ombi lililotumwa kwa seva ya Amplitude; pamoja na tarehe, unaweza pia kutaja saa kwa kubadilisha thamani baada ya 'T' katika ombi.

api_key na secret_key zinalingana na thamani zilizopatikana katika hatua ya kwanza; kwa sababu za usalama, ninabainisha mfuatano wa nasibu hapa badala ya yangu mwenyewe.

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

Hatua ya 3.3. Inapakua kumbukumbu iliyo na data

Tunakuja na jina la kumbukumbu na tuandike kwa kutofautiana kwa jina la faili. Kwa urahisi wangu, ninaonyesha kipindi + zinaonyesha kuwa hii ni data ya amplitude. Ifuatayo, tunarekodi jibu lililopokelewa kutoka kwa Amplitude hadi kwenye kumbukumbu.

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

Hatua ya 3.4. Inarejesha faili kutoka kwa folda kwenye kompyuta yako

Maktaba ya zipfile hutumika kusaidia kutoa faili. Katika mstari wa tatu, kuwa mwangalifu na uandike njia yako ambapo ni rahisi kwako kutoa.

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

Hatua ya 3.5. ubadilishaji wa json

Baada ya kutoa faili kutoka kwa kumbukumbu, unahitaji kubadilisha faili za json katika umbizo la .gz na kuziandika kwenye mfumo wa data kwa kazi zaidi.

Tafadhali kumbuka kuwa hapa unahitaji kubadilisha njia tena kuwa yako mwenyewe, na badala ya 000000 andika nambari yako ya mradi kutoka kwa Amplitude (au ufungue mwenyewe njia ambayo kumbukumbu ilitolewa na uangalie jina la folda ndani).

Ili:

Kuandika saraka kwa kutofautisha, kupata orodha ya faili kutoka kwa saraka, kuunda hifadhidata tupu, time.sleep(1) ili tqdm ifanye kazi kwa usahihi, ndani ya kitanzi tunafungua faili za .gz na mara moja tumia pandas kusoma json na kujaza. mfumo wa data uliotolewa.

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

Hatua ya 3.6. Kuandika mfumo wa data katika Excel

Upakiaji kwa Excel ni mfano tu hapa. Katika hali nyingi, ni rahisi zaidi kufanya kazi na sura ya data inayosababishwa ndani ya python au kuweka data kwenye hifadhi.

Pia itabidi ubadilishe njia ya upakiaji data hapa na yako mwenyewe.

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

Hatua ya 3.7. Tunahesabu muda wa uendeshaji wa script

Kurekodi wakati wa sasa katika variable b, kuhesabu tofauti na idadi ya dakika, kuonyesha jumla ya dakika. Hii ni hatua ya mwisho.

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

Hitimisho

Unaweza kupiga meza na kuanza kufanya kazi nayo kwa kupiga simu ya amplitude_dataframe ambayo data iliandikwa. Itakuwa na safu wima takriban 50, ambazo katika 80% ya kesi utatumia: tukio_aina - jina la tukio, sifa_za - vigezo vya tukio, wakati_wa tukio - wakati wa tukio, uuid - kitambulisho cha mteja, sifa_za mtumiaji - vigezo vya mteja, unapaswa kuanza kufanya kazi navyo kwanza. . Na wakati wa kulinganisha takwimu kutoka kwa mahesabu yako mwenyewe na viashiria kutoka kwa dashibodi za Amplitude, usipaswi kusahau kwamba mfumo hutumia mbinu yake ya kuhesabu wateja / funeli za kipekee, nk, na kabla ya kufanya hivyo, unapaswa kusoma nyaraka za Amplitude.

Asante kwa umakini wako! Sasa unaweza kupakia data ghafi ya tukio kwenye Amplitude na uitumie kikamilifu katika kazi yako.

Hati nzima:

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

Chanzo: mapenzi.com

Kuongeza maoni