Cyflwyniad
Mae Amplitude wedi profi ei hun yn dda iawn fel offeryn dadansoddi cynnyrch oherwydd ei hyblygrwydd gosod digwyddiadau a delweddu hawdd. Ac yn aml mae angen sefydlu eich model priodoli eich hun, defnyddwyr clwstwr, neu adeiladu dangosfwrdd mewn system BI arall. Dim ond gyda data digwyddiad amrwd o Amplitude y mae'n bosibl cyflawni twyll o'r fath. Bydd yr erthygl hon yn dweud wrthych sut i gael y data hwn heb fawr o wybodaeth raglennu.
Rhagofynion
- Prosiect mewn Osgled lle mae digwyddiadau eisoes wedi'u ffurfweddu'n gywir ac ystadegau'n cael eu casglu arnynt
- Mae Python wedi'i osod (rwy'n gweithio yn fersiwn 3.8.3), y gall y darpar ddarllenydd weithio ag ef eisoes ar lefel sylfaenol o leiaf
Cyfarwyddyd
Cam 1. Cael API-allweddol a chyfrinach-allweddol
I uwchlwytho data, yn gyntaf mae angen i chi gael allwedd API ac allwedd gyfrinachol.
Gallwch ddod o hyd iddynt trwy ddilyn y llwybr canlynol:
- “Rheoli data” (wedi'i leoli ar waelod chwith y sgrin)
- Dewiswch y prosiect a ddymunir y bydd data'n cael ei lawrlwytho ohono ac ewch iddo
- Yn newislen y prosiect sy'n agor, dewiswch "Gosodiadau prosiect"
- Rydyn ni'n dod o hyd i'r llinynnau API-allwedd a chyfrinach, yn eu copïo a'u cadw mewn man diogel.
Heb glicio, gallwch ddilyn y ddolen, sydd yn gyffredinol yn edrych fel hyn:
analytics.amplitude.com/$$$$$$/manage/project/******/settings,
lle $$$$$$ yw mewngofnodi osgled eich sefydliad, ****** yw rhif y prosiect
Cam 2: Gwirio presenoldeb y llyfrgelloedd gofynnol
Y newyddion da yw eich bod bron yn sicr eisoes wedi gosod y llyfrgelloedd hyn yn ddiofyn neu eu llwytho i lawr, ond mae angen i chi wirio. Y rhestr gyflawn o lyfrgelloedd a ddefnyddiais ar adeg ysgrifennu hwn (nodir fersiynau mewn cromfachau lle bo’n briodol):
- ceisiadau (2.10.0) - anfon cais trwy api i dderbyn data
- pandas (1.0.1) - darllen json, creu ffrâm data ac yna ysgrifennu i ffeil
- zipfile - echdynnu ffeiliau o archif a dderbyniwyd trwy'r API
- gzip - dadbacio ffeiliau json o .gz
- os - cael rhestr o ffeiliau o archif heb ei bacio
- amser - dewisol, mesurwch amser rhedeg y sgript
- tqdm - dewisol, ar gyfer monitro cynnydd prosesu ffeiliau yn hawdd
Cam 3. Ysgrifennu sgript llwytho data
Awgrym: mae'r sgript lawrlwytho lawn ar ddiwedd yr erthygl; os dymunwch, gallwch ei chymryd ar unwaith a chyfeirio at yr esboniadau cam wrth gam os oes angen.
Cam 3.1. Mewnforio llyfrgelloedd
Rydym yn mewnforio'r holl lyfrgelloedd a restrir yn yr ail gam.
# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
Cam 3.2. Cyflwyno cais i Amplitude
Gadewch i ni ganfod dechrau gweithredu sgript a'i ysgrifennu i newidyn a.
dyddiad cychwyn a dyddiad gorffen sy'n gyfrifol am y cyfnod ar gyfer lawrlwytho data ac maent wedi'u cynnwys yn nhestun y cais a anfonwyd i'r gweinydd Amplitude; yn ogystal â'r dyddiad, gallwch hefyd nodi'r awr trwy newid y gwerth ar ôl 'T' yn y cais.
api_key a secret_key yn cyfateb i'r gwerthoedd a gafwyd yn y cam cyntaf; am resymau diogelwch, rwy'n nodi dilyniannau ar hap yma yn lle fy rhai fy hun.
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. Запрос отправлен')
Cam 3.3. Lawrlwytho archif gyda data
Rydyn ni'n creu enw ar gyfer yr archif ac yn ei ysgrifennu i'r newidyn enw ffeil. Er hwylustod i mi, rwy'n nodi'r cyfnod + yn nodi mai data amplitude yw hwn. Nesaf, rydym yn cofnodi'r ymateb a dderbyniwyd gan Amplitude i'r archif.
# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. Архив с файлами успешно скачан')
Cam 3.4. Nôl ffeiliau o ffolder ar eich cyfrifiadur
Daw'r llyfrgell zipfile i mewn i helpu i echdynnu ffeiliau. Yn y drydedd linell, byddwch yn ofalus ac ysgrifennwch eich llwybr lle mae'n fwy cyfleus i chi ei dynnu.
# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)
Cam 3.5. trosiad json
Ar ôl echdynnu'r ffeiliau o'r archif, mae angen i chi drosi ffeiliau json mewn fformat .gz a'u hysgrifennu i ffrâm data ar gyfer gwaith pellach.
Sylwch fod angen i chi newid y llwybr eto i'ch un chi, ac yn lle 000000 ysgrifennwch rif eich prosiect o Amplitude (neu agorwch y llwybr lle cafodd yr archif ei dynnu ac edrychwch ar enw'r ffolder y tu mewn).
Mewn trefn:
Ysgrifennu cyfeiriadur i newidyn, cael rhestr o ffeiliau o gyfeiriadur, creu ffrâm data gwag, time.sleep(1) i tqdm weithio'n gywir, tu fewn i'r ddolen rydym yn agor ffeiliau .gz ac yn defnyddio pandas ar unwaith i ddarllen json a llenwi y ffrâm ddata a roddwyd.
# Преобразование 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')
Cam 3.6. Ysgrifennu ffrâm ddata yn excel
Mae'r uwchlwythiad i excel yn enghraifft yn unig yma. Mewn llawer o achosion, mae'n fwy cyfleus gweithio gyda'r ffrâm ddata canlyniadol y tu mewn i python neu roi'r data mewn storfa.
Bydd yn rhaid i chi hefyd ddisodli'r llwybr llwytho data i fyny yma gyda'ch un chi.
# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)
Cam 3.7. Rydyn ni'n cyfrif amser rhedeg y sgript
Cofnodi'r amser presennol yn y newidyn b, cyfrifo'r gwahaniaeth a nifer y munudau, gan ddangos cyfanswm y cofnodion. Dyma'r cam olaf.
b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))
Casgliad
Gallwch ffonio'r tabl a dechrau gweithio gydag ef trwy ffonio'r newidyn amplitude_dataframe yr ysgrifennwyd y data iddo. Bydd ganddo tua 50 o golofnau, ac mewn 80% o achosion byddwch yn defnyddio: event_type - enw digwyddiad, event_properties - paramedrau digwyddiad, event_time - amser digwyddiad, uuid - id cleient, user_properties - paramedrau cleient, dylech ddechrau gweithio gyda nhw yn gyntaf . Ac wrth gymharu ffigurau o'ch cyfrifiadau eich hun â dangosyddion o ddangosfyrddau Osgled, rhaid i chi beidio ag anghofio bod y system yn defnyddio ei methodoleg ei hun ar gyfer cyfrifo cleientiaid / twndis unigryw, ac ati, a chyn gwneud hyn, dylech yn bendant ddarllen y ddogfennaeth Osgled.
Diolch am eich sylw! Nawr gallwch chi uwchlwytho data digwyddiad amrwd i Amplitude a'i ddefnyddio'n llawn yn eich gwaith.
Sgript gyfan:
# Импорт библиотек
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))
Ffynhonnell: hab.com