Maido da Amplitude bayanai ta API

Gabatarwar

Amplitude ya tabbatar da kansa sosai azaman kayan aikin bincike na samfur saboda sauƙin saitin taron sa da sassauƙar gani. Kuma sau da yawa akwai buƙatar saita samfurin sifa na ku, masu amfani da tari, ko gina dashboard a cikin wani tsarin BI. Yana yiwuwa kawai a yi irin wannan zamba tare da ɗanyen bayanan taron daga Amplitude. Wannan labarin zai gaya muku yadda ake samun wannan bayanan tare da ƙarancin ilimin shirye-shirye.

Abubuwan da ake bukata

  1. Wani aiki a cikin Amplitude wanda aka riga aka tsara abubuwan da suka faru daidai kuma an tattara ƙididdiga akan su
  2. An shigar da Python (Ina aiki a cikin sigar 3.8.3), wanda mai karatu mai yuwuwa zai iya yin aiki tare da aƙalla a matakin asali.

Umurnai

Mataki 1. Samun API-key da maɓallin sirri

Don loda bayanai, da farko kuna buƙatar samun maɓallin API da maɓallin sirri.

Kuna iya samun su ta hanyar bin hanya mai zuwa:

  1. "Sarrafa bayanai" (wanda yake a ƙasan hagu na allon)
  2. Zaɓi aikin da ake so daga wanda za a sauke bayanan kuma je wurinsa
  3. A cikin menu na aikin da ya buɗe, zaɓi "Settings settings"
  4. Muna samun maɓallin API-maɓalli da kirtani na sirri, kwafi da adana su a wuri mai aminci.

Ba tare da dannawa ba, zaku iya bin hanyar haɗin yanar gizon, wanda gabaɗaya yayi kama da haka:
analytics.amplitude.com/$$$$$$$/manage/project/*****/settings,
inda $$$$$$ shine girman shiga ƙungiyar ku, ****** shine lambar aikin

Mataki na 2: Duba kasancewar dakunan karatu da ake buƙata

Labari mai dadi shine cewa kusan an riga an shigar da waɗannan ɗakunan karatu ta tsohuwa ko zazzage su, amma kuna buƙatar bincika. Cikakken jerin ɗakunan karatu da na yi amfani da su a lokacin rubutawa (ana nuna nau'o'i a cikin baka a inda ya dace):

  1. buƙatun (2.10.0) - aika buƙatun ta hanyar api don karɓar bayanai
  2. pandas (1.0.1) - karanta json, ƙirƙirar daftarin bayanai sannan rubuta zuwa fayil
  3. zipfile - cire fayiloli daga rumbun ajiyar da aka karɓa ta API
  4. gzip - zazzage fayilolin json daga .gz
  5. os - samun jerin fayiloli daga rumbun adana kayan tarihi
  6. lokaci - na zaɓi, auna lokacin tafiyar da rubutun
  7. tqdm - na zaɓi, don sauƙin saka idanu akan ci gaban sarrafa fayil

Mataki 3. Rubuta rubutun loda bayanai

Alamomi: cikakken rubutun zazzagewa yana a ƙarshen labarin; idan kuna so, zaku iya ɗauka nan da nan kuma ku koma ga bayanin mataki-mataki idan ya cancanta.

Mataki 3.1. Ana shigo da dakunan karatu

Muna shigo da duk ɗakunan karatu da aka jera a mataki na biyu.

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

Mataki 3.2. Gabatar da buƙatu zuwa Amplitude

Bari mu gano farkon aiwatar da rubutun kuma mu rubuta shi zuwa mai canzawa a.

ranar farawa da ƙarshen suna da alhakin lokacin zazzage bayanai kuma an gina su a cikin rubutun buƙatun da aka aika zuwa uwar garken Amplitude; ban da kwanan wata, zaku iya ƙididdige sa'a ta canza ƙimar bayan 'T' a cikin buƙatar.

api_key da secret_key sun dace da ƙimar da aka samu a matakin farko; saboda dalilai na tsaro, na ƙididdige jerin bazuwar a nan maimakon nawa.

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

Mataki 3.3. Zazzage rumbun adana bayanai

Mun fito da suna don tarihin kuma mu rubuta shi zuwa madaidaicin sunan fayil. Don jin daɗi na, na nuna lokacin + yana nuna cewa wannan bayanan girma ne. Bayan haka, muna yin rikodin amsa da aka karɓa daga Amplitude cikin ma'ajiyar bayanai.

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

Mataki 3.4. Maido da fayiloli daga babban fayil akan kwamfutarka

Laburaren zipfile ya shigo cikin wasa don taimakawa cire fayiloli. A layi na uku, kuyi hankali kuma ku rubuta hanyarku inda ya fi dacewa ku cirewa.

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

Mataki 3.5. json tuba

Bayan cire fayilolin daga ma'ajiyar, kuna buƙatar canza fayilolin json a cikin tsarin .gz kuma rubuta su cikin tsarin bayanai don ƙarin aiki.

Lura cewa a nan kuna buƙatar sake canza hanyar zuwa naku, kuma maimakon 000000 rubuta lambar aikinku daga Amplitude (ko buɗe hanyar da aka ciro da hannu kuma duba sunan babban fayil ɗin ciki).

Domin:

Rubutun directory zuwa m, samun jerin fayiloli daga directory, ƙirƙirar bayanan da ba komai, time.sleep(1) don tqdm yayi aiki daidai, a cikin madauki muna buɗe fayilolin .gz kuma nan da nan muna amfani da pandas don karanta json kuma mu cika. dataframe da aka bayar.

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

Mataki 3.6. Rubutun bayanai a cikin Excel

Loda zuwa Excel misali ne kawai a nan. A yawancin lokuta, ya fi dacewa a yi aiki tare da firam ɗin bayanan da aka samu a cikin Python ko sanya bayanan a cikin ma'ajiya.

Hakanan dole ne ku maye gurbin hanyar loda bayanai anan da naku.

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

Mataki 3.7. Muna ƙidaya lokacin gudu na rubutun

Yin rikodin lokacin halin yanzu a cikin m b, ƙididdige bambanci da adadin mintuna, nuna jimlar mintuna. Wannan shine mataki na karshe.

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

ƙarshe

Kuna iya kiran tebur kuma fara aiki tare da shi ta hanyar kiran amplitude_dataframe m wanda aka rubuta bayanan a ciki. Yana da kusan ginshiƙai 50, wanda a cikin 80% na lokuta za ku yi amfani da: event_type - sunan taron, event_properties - sigogin taron, taron_time - lokacin taron, uuid - id abokin ciniki, mai amfani_properties - sigogin abokin ciniki, yakamata ku fara aiki tare da su da farko. . Kuma lokacin kwatanta adadi daga lissafin ku tare da masu nuna alama daga dashboards na Amplitude, kar ku manta cewa tsarin yana amfani da tsarin kansa don ƙididdige abokan ciniki na musamman / funnels, da sauransu, kuma kafin yin wannan, tabbas yakamata ku karanta takaddun Amplitude.

Na gode da kulawar ku! Yanzu zaku iya loda danyen bayanan taron zuwa Amplitude kuma ku yi amfani da shi gabaɗaya a cikin aikinku.

Cikakken rubutun:

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