API வழியாக வீச்சு தரவை மீட்டெடுக்கிறது

அறிமுகம்

அதன் எளிதான நிகழ்வு அமைப்பு மற்றும் காட்சிப்படுத்தல் நெகிழ்வுத்தன்மை காரணமாக அலைவீச்சு ஒரு தயாரிப்பு பகுப்பாய்வு கருவியாக தன்னை நன்றாக நிரூபித்துள்ளது. உங்கள் சொந்த பண்புக்கூறு மாதிரி, கிளஸ்டர் பயனர்களை அமைக்க அல்லது மற்றொரு BI அமைப்பில் டாஷ்போர்டை உருவாக்க வேண்டிய அவசியம் உள்ளது. Amplitude இலிருந்து மூல நிகழ்வுத் தரவுகளைக் கொண்டு மட்டுமே இதுபோன்ற மோசடியைச் செய்ய முடியும். குறைந்தபட்ச நிரலாக்க அறிவுடன் இந்தத் தரவை எவ்வாறு பெறுவது என்பதை இந்தக் கட்டுரை உங்களுக்குச் சொல்லும்.

முன்நிபந்தனைகள்

  1. நிகழ்வுகள் ஏற்கனவே சரியாக உள்ளமைக்கப்பட்ட மற்றும் புள்ளி விவரங்கள் சேகரிக்கப்படும் வீச்சில் ஒரு திட்டம்
  2. பைதான் நிறுவப்பட்டுள்ளது (நான் பதிப்பு 3.8.3 இல் பணிபுரிகிறேன்), இது சாத்தியமான வாசகர் ஏற்கனவே குறைந்தபட்சம் ஒரு அடிப்படை மட்டத்தில் வேலை செய்ய முடியும்.

அறிவுறுத்தல்

படி 1. API-கீ மற்றும் ரகசிய விசையைப் பெறுதல்

தரவைப் பதிவேற்ற, நீங்கள் முதலில் API விசை மற்றும் ரகசிய விசையைப் பெற வேண்டும்.

பின்வரும் பாதையைப் பின்பற்றுவதன் மூலம் அவற்றைக் கண்டறியலாம்:

  1. "தரவை நிர்வகி" (திரையின் கீழ் இடதுபுறத்தில் அமைந்துள்ளது)
  2. தரவு பதிவிறக்கப்படும் விரும்பிய திட்டத்தைத் தேர்ந்தெடுத்து அதற்குச் செல்லவும்
  3. திறக்கும் திட்ட மெனுவில், "திட்ட அமைப்புகள்" என்பதைத் தேர்ந்தெடுக்கவும்.
  4. ஏபிஐ-விசை மற்றும் ரகசிய-விசை சரங்களை நாங்கள் கண்டறிந்து, அவற்றை நகலெடுத்து பாதுகாப்பான இடத்தில் சேமிக்கிறோம்.

கிளிக் செய்யாமல், நீங்கள் இணைப்பைப் பின்தொடரலாம், இது பொதுவாக இதுபோல் தெரிகிறது:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
$$$$$$ என்பது உங்கள் நிறுவனத்தின் வீச்சு உள்நுழைவு, ****** என்பது திட்ட எண்

படி 2: தேவையான நூலகங்கள் உள்ளனவா என்பதைச் சரிபார்த்தல்

நல்ல செய்தி என்னவென்றால், நீங்கள் ஏற்கனவே இந்த நூலகங்களை இயல்பாக நிறுவியிருக்கிறீர்கள் அல்லது பதிவிறக்கம் செய்திருக்கிறீர்கள், ஆனால் நீங்கள் சரிபார்க்க வேண்டும். எழுதும் போது நான் பயன்படுத்திய நூலகங்களின் முழுமையான பட்டியல் (அடைப்புக்குறிக்குள் உள்ள பதிப்புகள் பொருத்தமான இடங்களில் குறிப்பிடப்படுகின்றன):

  1. கோரிக்கைகள் (2.10.0) - தரவைப் பெற api வழியாக கோரிக்கையை அனுப்புதல்
  2. pandas (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. வீச்சுக்கு ஒரு கோரிக்கையை சமர்ப்பித்தல்

ஸ்கிரிப்ட் எக்ஸிகியூஷனின் தொடக்கத்தைக் கண்டறிந்து அதை a மாறிக்கு எழுதுவோம்.

தொடக்கத் தேதி மற்றும் முடிவு தேதி ஆகியவை தரவைப் பதிவிறக்குவதற்கான காலத்திற்குப் பொறுப்பாகும், மேலும் அவை அலைவீச்சு சேவையகத்திற்கு அனுப்பப்பட்ட கோரிக்கையின் உரையில் கட்டமைக்கப்பட்டுள்ளன; தேதிக்கு கூடுதலாக, கோரிக்கையில் '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 ஐப் படித்து நிரப்ப உடனடியாக pandas ஐப் பயன்படுத்துகிறோம். கொடுக்கப்பட்ட தரவுச்சட்டம்.

# Преобразование 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 மாறியில் பதிவுசெய்தல், வித்தியாசம் மற்றும் நிமிடங்களின் எண்ணிக்கையைக் கணக்கிடுதல், மொத்த நிமிடங்களைக் காட்டுதல். இதுதான் கடைசி படி.

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

முடிவுக்கு

தரவு எழுதப்பட்ட amplitude_dataframe மாறியை அழைப்பதன் மூலம் நீங்கள் அட்டவணையை அழைத்து அதனுடன் வேலை செய்யத் தொடங்கலாம். இது சுமார் 50 நெடுவரிசைகளைக் கொண்டிருக்கும், அவற்றில் 80% வழக்குகளில் நீங்கள் பயன்படுத்துவீர்கள்: event_type - நிகழ்வு பெயர், நிகழ்வு_பண்புகள் - நிகழ்வு அளவுருக்கள், நிகழ்வு_நேரம் - நிகழ்வு நேரம், uuid - கிளையன்ட் ஐடி, பயனர்_பண்புகள் - கிளையன்ட் அளவுருக்கள், நீங்கள் முதலில் அவர்களுடன் வேலை செய்யத் தொடங்க வேண்டும். . உங்கள் சொந்த கணக்கீடுகளின் புள்ளிவிவரங்களை வீச்சு டாஷ்போர்டுகளின் குறிகாட்டிகளுடன் ஒப்பிடும்போது, ​​​​கணினி தனித்துவமான கிளையன்ட்கள் / புனல்கள் போன்றவற்றைக் கணக்கிடுவதற்கு அதன் சொந்த முறையைப் பயன்படுத்துகிறது என்பதை நீங்கள் மறந்துவிடக் கூடாது, இதைச் செய்வதற்கு முன், நீங்கள் நிச்சயமாக வீச்சு ஆவணத்தைப் படிக்க வேண்டும்.

உங்கள் கவனத்திற்கு நன்றி! இப்போது நீங்கள் மூல நிகழ்வுத் தரவை வீச்சுக்கு பதிவேற்றலாம் மற்றும் அதை உங்கள் வேலையில் முழுமையாகப் பயன்படுத்தலாம்.

முழு ஸ்கிரிப்ட்:

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

கருத்தைச் சேர்