Ho fumana lintlha tsa Amplitude ka API

Selelekela

Amplitude e ipakile e le sesebelisoa sa tlhahlobo ea lihlahisoa ka lebaka la ho hlophisoa ha eona habonolo le ho feto-fetoha ha pono. 'Me hangata ho hlokahala hore u iketsetse mohlala oa hau, basebelisi ba lihlopha, kapa u hahe dashboard tsamaisong e' ngoe ea BI. Hoa khoneha feela ho etsa bomenemene bo joalo ka data e tala ea ketsahalo e tsoang ho Amplitude. Sengoliloeng sena se tla u bolella mokhoa oa ho fumana data ena ka tsebo e fokolang ea lenaneo.

Lintho tse hlokahalang

  1. Morero o ho Amplitude oo liketsahalo li seng li hlophisitsoe ka nepo 'me lipalo-palo li bokelloa ho tsona
  2. Python e kentsoe (ke sebetsa phetolelong ea 3.8.3), eo motho ea ka khonang ho e bala a ka se a ntse a sebetsa le eona bonyane boemong ba motheo.

Litaelo

Mohato oa 1. Ho fumana senotlolo sa API le senotlolo sa lekunutu

Ho kenya data, o hloka pele ho fumana senotlolo sa API le senotlolo sa lekunutu.

U ka li fumana ka ho latela tsela e latelang:

  1. "Laola data" (e ka tlase letsohong le letšehali la skrini)
  2. Khetha morero oo u o batlang oo data e tla kopitsoa ho oona ebe u ea ho oona
  3. Ho menu ea projeke e bulang, khetha "Litlhophiso tsa projeke"
  4. Re fumana API-key le likhoele tsa senotlolo sa lekunutu, li kopitse le ho li boloka sebakeng se sireletsehileng.

Ntle le ho tobetsa, o ka latela sehokelo, seo ka kakaretso se shebahalang tjena:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
moo $$$$$$ e leng sebaka sa ho kena sa amplitude sa mokhatlo oa hau, ****** ke nomoro ea morero

Mohato oa 2: Ho hlahloba boteng ba lilaebrari tse hlokahalang

Litaba tse monate ke hore ehlile u se u ntse u e-na le lilaebrari tsena tse kentsoeng ka boiketsetso kapa tse jarollotsoeng, empa u hloka ho li hlahloba. Lenane le felletseng la lilaebrari tseo ke li sebelisitseng nakong ea ho ngola (liphetolelo tse masakaneng li bontšitsoe moo ho loketseng):

  1. likopo (2.10.0) - ho romela kopo ka api ho fumana data
  2. pandas (1.0.1) - ho bala json, ho theha dataframe ebe o ngolla faele
  3. zipfile - ntša lifaele ho tsoa polokelong e fumanoeng ka API
  4. gzip - ho manolla lifaele tsa json ho tsoa ho .gz
  5. os - ho fumana lethathamo la lifaele ho tsoa polokelong e sa koaloang
  6. nako - boikhethelo, lekanya nako ea ho sebetsa ea script
  7. tqdm - boikhethelo, bakeng sa ho lekola tsoelo-pele ea ts'ebetso ea lifaele habonolo

Mohato oa 3. Ho ngola mongolo oa ho kenya data

Keletso: mongolo o felletseng oa ho jarolla o qetellong ea sengoloa; haeba u lakatsa, u ka e nka hang-hang 'me u shebane le litlhaloso tsa mohato ka mohato ha ho hlokahala.

Mohato oa 3.1. Ho kenya lilaeborari

Re kenya lilaebrari tsohle tse thathamisitsoeng mohatong oa bobeli.

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

Mohato oa 3.2. Ho kenya kopo ho Amplitude

Ha re boneng qalo ea ts'ebetso ea script mme re e ngolle ho feto-fetoha a.

Startdate le enddate li ikarabella bakeng sa nako ea ho kenya data mme li hahiloe ka har'a mongolo oa kopo e rometsoeng ho seva sa Amplitude; ntle le letsatsi, o ka boela oa bolela hora ka ho fetola boleng kamora 'T' kopong.

api_key le secret_key li tsamaellana le litekanyetso tse fumanoeng mohatong oa pele; ka mabaka a ts'ireletso, ke hlalosa tatellano e sa reroang mona ho fapana le ea ka.

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

Mohato oa 3.3. Ho khoasolla polokelo ea litaba ka data

Re tla le lebitso la polokelo mme re le ngolla ho feto-fetoha ha lebitso la faele. Bakeng sa boiketlo ba ka, ke bonts'a nako + e bonts'a hore ena ke data ea amplitude. Ka mor'a moo, re tlalehela karabelo e fumanoeng ho tsoa ho Amplitude sebakeng sa polokelo.

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

Mohato 3.4. Ho khutlisa lifaele ho tsoa foldareng e khomphuteng ea hau

Laeborari ea zipfile e ea sebetsa ho thusa ho ntša lifaele. Moleng oa boraro, ela hloko 'me u ngole tsela ea hau moo ho leng bonolo hore u ka e hula.

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

Mohato oa 3.5. json phetoho

Ka mor'a ho ntša lifaele ho tswa ho archive, u lokela ho fetola lifaele tsa json ka mokhoa oa .gz ebe u li ngola ho dataframe bakeng sa mosebetsi o eketsehileng.

Ka kopo hlokomela hore mona o hloka ho fetola tsela hape ho ea ho ea hau, 'me ho e-na le 000000 ngola nomoro ea hau ea morero ho tloha Amplitude (kapa u bule ka letsoho tsela eo ho eona ho nkiloeng ho eona ho sheba lebitso la foldara ka hare).

Ka tatellano:

Ho ngola bukana ho ea ho feto-fetoha, ho fumana lethathamo la lifaele ho tloha bukeng, ho theha dataframe e se nang letho, time.sleep(1) hore tqdm e sebetse ka nepo, ka hare ho loop re bula lifaele tsa .gz mme hang-hang re sebelise pandas ho bala json le ho tlatsa. dataframe e fanoeng.

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

Mohato 3.6. Ho ngola dataframe ho Excel

The upload to Excel ke mohlala feela mona. Maemong a mangata, ho bonolo haholoanyane ho sebetsa le foreimi ea data e hlahisoang ka har'a python kapa ho beha data polokelong.

Hape o tla tlameha ho fetola tsela ea ho kenya data mona ka ea hau.

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

Mohato 3.7. Re bala nako ea ho sebetsa ea script

Ho rekota nako ea hajoale ho feto-fetoha ea b, ho bala phapang le palo ea metsotso, ho bonts'a kakaretso ea metsotso. Ena ke mohato oa ho qetela.

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

fihlela qeto e

U ka letsetsa tafole 'me u qale ho sebetsa le eona ka ho bitsa phapang ea amplitude_dataframe eo data e ngotsoeng ho eona. E tla ba le litšiea tse ka bang 50, tseo ho tsona 80% ea linyeoe u tla li sebelisa: ketsahalo_mofuta - lebitso la ketsahalo, ketsahalo_properties - mekhahlelo ea ketsahalo, ketsahalo_nako - nako ea ketsahalo, uuid - id ea bareki, user_properties - li-parameter tsa bareki, u lokela ho qala ho sebetsa le bona pele. . 'Me ha u bapisa lipalo tsa lipalo tsa hau le matšoao a li-dashboards tsa Amplitude, u se ke ua lebala hore tsamaiso e sebelisa mokhoa oa eona oa ho bala bareki / li-funnel tse ikhethang, joalo-joalo,' me pele u etsa sena, ka sebele u lokela ho bala litokomane tsa Amplitude.

Kea leboha ha u mametse! Joale o ka kenya data ea ketsahalo e tala ho Amplitude mme o e sebelise ka botlalo mosebetsing oa hau.

script kaofela:

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

Eketsa ka tlhaloso