د API له لارې د امپلیټیو ډیټا ترلاسه کول

پېژندنه

طول د دې د اسانه پیښې تنظیم کولو او لید انعطاف له امله د محصول تحلیلي وسیلې په توګه ځان خورا ښه ثابت کړی. او ډیری وختونه د خپل ځان د منسوب کولو ماډل، کلستر کاروونکي، یا په بل BI سیسټم کې د ډشبورډ جوړولو ته اړتیا وي. دا یوازې ممکنه ده چې دا ډول درغلۍ د امپلیټیډ څخه د خام پیښې ډیټا سره ترسره کړئ. دا مقاله به تاسو ته ووایي چې دا معلومات څنګه د لږترلږه برنامه پوهه سره ترلاسه کړئ.

شرطونه

  1. په طول البلد کې یوه پروژه چې پکې پیښې دمخه په سمه توګه تنظیم شوي او په دوی باندې احصایې راټول شوي
  2. پایتون نصب شوی (زه په 3.8.3 نسخه کې کار کوم)، کوم چې احتمالي لوستونکی کولی شي دمخه لږترلږه په لومړني کچه کار وکړي

لارښوونې

مرحله 1. د API کلید او پټ کیلي ترلاسه کول

د معلوماتو اپلوډ کولو لپاره، تاسو باید لومړی د API کیلي او پټ کیلي ترلاسه کړئ.

تاسو کولی شئ دوی د لاندې لارې په تعقیب ومومئ:

  1. "ډیټا اداره کړئ" (د سکرین په ښکته کیڼ اړخ کې موقعیت لري)
  2. مطلوب پروژه غوره کړئ چې له هغې څخه به ډاټا ډاونلوډ شي او هغې ته لاړشئ
  3. د پروژې مینو کې چې خلاصیږي ، د "پروژې تنظیمات" غوره کړئ
  4. موږ د API کلیدي او پټ کلیدي تارونه ومومئ، کاپي یې کړئ او په خوندي ځای کې یې وساتئ.

د کلیک کولو پرته، تاسو کولی شئ لینک تعقیب کړئ، کوم چې په عمومي توګه داسې ښکاري:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
چیرته چې $$$$$$ ستاسو د سازمان د پراخوالي ننوت دی، ****** د پروژې شمیره ده

2 ګام: د اړتیا وړ کتابتونونو شتون چک کول

ښه خبر دا دی چې تاسو نږدې یقینا دمخه دا کتابتونونه په ډیفالټ یا ډاونلوډ شوي نصب شوي ، مګر تاسو اړتیا لرئ چیک کړئ. د کتابتونونو بشپړ لیست چې ما د لیکلو په وخت کې کارولی دی (په قوس کې نسخې په ګوته شوي چیرې چې مناسب وي):

  1. غوښتنې (2.10.0) - د معلوماتو ترلاسه کولو لپاره د API له لارې غوښتنه لیږل
  2. پانډا (1.0.1) - د json لوستل ، د ډیټا فریم رامینځته کول او بیا فایل ته لیکل
  3. zipfile - د API له لارې ترلاسه شوي آرشیف څخه فایلونه استخراج کړئ
  4. gzip - د .gz څخه د json فایلونه خلاصول
  5. os - د غیر پیک شوي آرشیف څخه د فایلونو لیست ترلاسه کول
  6. وخت - اختیاري، د سکریپټ چلولو وخت اندازه کړئ
  7. tqdm - اختیاري، د فایل پروسس کولو پرمختګ اسانه څارنې لپاره

3 ګام. د ډیټا بارولو سکریپټ لیکل

اشاره: بشپړ ډاونلوډ سکریپټ د مقالې په پای کې دی؛ که تاسو وغواړئ ، تاسو کولی شئ سمدلاسه یې واخلئ او د اړتیا په صورت کې ګام په ګام توضیحاتو ته مراجعه وکړئ.

مرحله 3.1. د کتابتونونو واردول

موږ ټول کتابتونونه واردوو چې په دویمه مرحله کې لیست شوي.

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

ګام 3.2. امپلیټ ته د غوښتنې سپارل

راځئ چې د سکریپټ اجرا کولو پیل کشف کړو او په متغیر الف کې یې ولیکئ.

د پیل نیټه او پای نیټه د ډیټا ډاونلوډ کولو مودې لپاره مسؤل دي او د امپلیټ سرور ته د لیږل شوي غوښتنې متن کې رامینځته شوي؛ د نیټې سربیره ، تاسو کولی شئ په غوښتنې کې د 'T' وروسته ارزښت بدلولو سره ساعت هم مشخص کړئ.

api_key او secret_key په لومړي ګام کې ترلاسه شوي ارزښتونو سره مطابقت لري؛ د امنیتي دلایلو لپاره، زه دلته د خپل ځان پرځای تصادفي ترتیبونه مشخصوم.

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

ګام 3.3. د معلوماتو سره آرشیف ډاونلوډ کول

موږ د آرشیف لپاره نوم راوړو او دا د فایل نوم متغیر ته لیکو. زما د اسانتیا لپاره، زه دوره په ګوته کوم + په ګوته کوي چې دا د طول البلد ډاټا ده. بیا، موږ د امپلټیوډ څخه ترلاسه شوي ځواب په آرشیف کې ثبت کوو.

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

ګام 3.4. ستاسو په کمپیوټر کې د فولډر څخه فایلونه ترلاسه کول

د زپ فایل کتابتون د فایلونو ایستلو کې د مرستې لپاره په لوبې کې راځي. په دریمه کرښه کې، محتاط اوسئ او خپله لاره ولیکئ چیرې چې دا ستاسو لپاره د استخراج لپاره خورا اسانه وي.

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

ګام 3.5. د json تبادله

د آرشیف څخه د فایلونو ایستلو وروسته، تاسو اړتیا لرئ د json فایلونه په .gz بڼه بدل کړئ او د نورو کار لپاره یې په ډیټا فریم کې ولیکئ.

مهرباني وکړئ په یاد ولرئ چې دلته تاسو اړتیا لرئ چې لاره بیا خپل ځان ته بدله کړئ، او د 000000 پرځای د Amplitude څخه خپل د پروژې شمیره ولیکئ (یا په لاسي ډول هغه لاره پرانیزئ چیرې چې آرشیف ایستل شوی و او دننه د فولډر نوم وګورئ).

منظم:

متغیر ته د ډایرکټر لیکل، له ډایرکټر څخه د فایلونو لیست ترلاسه کول، د tqdm د سم کار کولو لپاره د خالي ډیټا فریم جوړول، time.sleep(1)، د لوپ دننه موږ د .gz فایلونه خلاصوو او سمدلاسه د json لوستلو او ډکولو لپاره پانډا وکاروو. ورکړل شوی ډیټا چوکاټ.

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

مرحله 3.6. په ایکسل کې د ډیټا چوکاټ لیکل

ایکسل ته اپلوډ دلته یوازې یوه بیلګه ده. په ډیری قضیو کې ، دا خورا اسانه ده چې د پایتون دننه د پایلې شوي ډیټا چوکاټ سره کار وکړئ یا ډاټا په ذخیره کې وساتئ.

تاسو باید دلته د خپل ځان سره د ډیټا اپلوډ لاره بدله کړئ.

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

ګام 3.7. موږ د سکریپټ چلولو وخت حسابوو

په متغیر ب کې د اوسني وخت ثبتول، د توپیر او دقیقو شمیر محاسبه کول، ټول دقیقې ښودل. دا وروستی ګام دی.

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

پایلې

تاسو کولی شئ میز ته زنګ ووهئ او د amplitude_dataframe متغیر په زنګ وهلو سره کار پیل کړئ په کوم کې چې معلومات لیکل شوي. دا به شاوخوا 50 کالمونه ولري، چې له هغې څخه په 80٪ قضیو کې به تاسو وکاروئ: event_type - د پیښې نوم، event_properties - د پیښې پیرامیټونه، د پیښې وخت - د پیښې وخت، uuid - د پیرودونکي id، user_properties - د پیرودونکي پیرامیټونه، تاسو باید لومړی د دوی سره کار پیل کړئ . او کله چې ستاسو د خپل محاسبې ارقام د امپلیټیوډ ډشبورډونو شاخصونو سره پرتله کړئ ، تاسو باید هیر نکړئ چې سیسټم د ځانګړي پیرودونکو / فنلونو او داسې نورو محاسبه کولو لپاره خپل میتودولوژي کاروي ، او د دې کولو دمخه ، تاسو باید حتما د امپلیټوډ اسناد ولولئ.

له پاملرنې څخه مو مننه! اوس تاسو کولی شئ د خام پیښې ډیټا امپلټیوډ ته اپلوډ کړئ او په بشپړ ډول یې په خپل کار کې وکاروئ.

ټوله لیکنه:

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

سرچینه: www.habr.com

Add a comment