Amplitude ውሂብን በኤፒአይ በማውጣት ላይ

መግቢያ

Amplitude በቀላል የክስተት ማዋቀር እና የእይታ ተለዋዋጭነት ምክንያት እራሱን እንደ የምርት መተንተኛ መሳሪያ አድርጎ አረጋግጧል። እና ብዙ ጊዜ የራስዎን የባለቤትነት ሞዴል ማዋቀር፣ ክላስተር ተጠቃሚዎችን ወይም ዳሽቦርድን በሌላ BI ሲስተም መገንባት ያስፈልጋል። እንዲህ ዓይነቱን ማጭበርበር ከ Amplitude ጥሬ የክስተት መረጃ ጋር ብቻ ማከናወን ይቻላል. ይህ ጽሑፍ በትንሹ የፕሮግራም እውቀት እንዴት ማግኘት እንደሚችሉ ይነግርዎታል።

ቅድመ-ሁኔታዎች

  1. ክስተቶች ቀድሞውኑ በትክክል የተዋቀሩበት እና ስታቲስቲክስ በእነሱ ላይ የሚሰበሰብበት በAmplitude ውስጥ ያለ ፕሮጀክት
  2. Python ተጭኗል (በስሪት 3.8.3 እየሰራሁ ነው)፣ ይህም አንባቢው ቢያንስ በመሠረታዊ ደረጃ ሊሰራ ይችላል

መመሪያዎች

ደረጃ 1. ኤፒአይ-ቁልፍ እና ሚስጥራዊ-ቁልፍ ማግኘት

ውሂብ ለመስቀል መጀመሪያ የኤፒአይ ቁልፍ እና ሚስጥራዊ ቁልፍ ማግኘት አለቦት።

የሚከተለውን መንገድ በመከተል ልታገኛቸው ትችላለህ።

  1. "ውሂብ አስተዳድር" (በማያ ገጹ ግርጌ በስተግራ ላይ ይገኛል)
  2. ከየትኛው ውሂብ እንደሚወርድ የሚፈለገውን ፕሮጀክት ይምረጡ እና ወደ እሱ ይሂዱ
  3. በሚከፈተው የፕሮጀክት ምናሌ ውስጥ "የፕሮጀክት ቅንብሮች" ን ይምረጡ.
  4. የኤፒአይ-ቁልፍ እና ሚስጥራዊ-ቁልፍ ገመዶችን አግኝተናል፣ ገልብጦ ደህንነቱ በተጠበቀ ቦታ እናስቀምጣለን።

ጠቅ ሳያደርጉ ሊንኩን መከተል ይችላሉ በአጠቃላይ ይህንን ይመስላል፡-
analytics.amplitude.com/$$$$$$$/ማስተዳደር/ፕሮጀክት/********/settings፣
የት $$$$$$ የድርጅትዎ ስፋት መግቢያ ሲሆን ****** የፕሮጀክት ቁጥር ነው።

ደረጃ 2፡ የሚፈለጉትን ቤተ-መጻሕፍት መኖራቸውን ማረጋገጥ

ጥሩ ዜናው በእርግጠኝነት እነዚህ ቤተ-ፍርግሞች በነባሪነት ተጭነዋል ወይም አውርደዋል፣ ነገር ግን መፈተሽ ያስፈልግዎታል። በተፃፈበት ጊዜ የተጠቀምኩበት ሙሉ የቤተ-መጻህፍት ዝርዝር (በቅንፍ ውስጥ ያሉ ስሪቶች በተገቢው ሁኔታ ይጠቁማሉ)

  1. ጥያቄዎች (2.10.0) - ውሂብ ለመቀበል ጥያቄን በኤፒአይ መላክ
  2. pandas (1.0.1) - json ን በማንበብ, የውሂብ ፍሬም መፍጠር እና ከዚያም ወደ ፋይል መጻፍ
  3. zipfile - በኤፒአይ በኩል ከደረሰው ማህደር ፋይሎችን ማውጣት
  4. gzip - የ json ፋይሎችን ከ .gz በማንሳት ላይ
  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. ለ Amplitude ጥያቄ ማቅረብ

የስክሪፕት አፈጻጸም መጀመሩን እንወቅ እና ወደ ተለዋዋጭ ሀ.

startdate እና enddate ውሂብን ለማውረድ የወቅቱ ሃላፊነት አለባቸው እና ወደ Amplitude አገልጋይ በተላከው ጥያቄ ጽሑፍ ውስጥ የተገነቡ ናቸው ፣ ከቀኑ በተጨማሪ ፣ በጥያቄው ውስጥ ከ'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. ማህደርን ከውሂብ ጋር በማውረድ ላይ

ለማህደሩ ስም አውጥተን ወደ የፋይል ስም ተለዋዋጭ እንጽፋለን። ለእኔ እንዲመቸኝ ጊዜውን እጠቁማለሁ + ይህ የመጠን መጠን ያለው መረጃ መሆኑን አመልክት ። በመቀጠል፣ የተቀበለውን ምላሽ ከAmplitude ወደ ማህደሩ ውስጥ እንመዘግባለን።

# Скачивание архива с данными
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 ምትክ የፕሮጀክት ቁጥርዎን ከአምፕሊቱድ ይፃፉ (ወይም ማህደሩ የወጣበትን መንገድ እራስዎ ይክፈቱ እና በውስጡ ያለውን አቃፊ ስም ይመልከቱ)።

በስነስርአት:

ማውጫ ወደ ተለዋዋጭ መጻፍ፣ የፋይሎችን ዝርዝር ከማውጫ ማግኘት፣ ባዶ የውሂብ ፍሬም መፍጠር፣ tqdm በትክክል እንዲሰራ time.sleep(1)፣ በ loop ውስጥ የ.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 ውስጥ የውሂብ ፍሬም መፃፍ

ወደ ኤክሴል ሰቀላ እዚህ ላይ ብቻ ምሳሌ ነው። በአብዛኛዎቹ አጋጣሚዎች በፒቶን ውስጥ ካለው የውሂብ ፍሬም ጋር አብሮ ለመስራት ወይም ውሂቡን በማከማቻ ውስጥ ለማስቀመጥ የበለጠ ምቹ ነው።

እንዲሁም የውሂብ መስቀያ መንገድን በራስዎ መተካት ይኖርብዎታል።

# Записать полученной таблицы в 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% ከሚሆኑት ጉዳዮች ውስጥ የሚጠቀሙት: የክስተት_አይነት - የክስተት ስም, የክስተት_ንብረቶች - የክስተት መለኪያዎች, የክስተት ጊዜ - የክስተት ጊዜ, uid - የደንበኛ መታወቂያ, የተጠቃሚ_ንብረቶች - የደንበኛ መለኪያዎች, በመጀመሪያ ከእነሱ ጋር መስራት መጀመር አለብዎት. . እና የእራስዎን ስሌት አሃዞችን ከአምፕሊቱድ ዳሽቦርድ አመላካቾች ጋር ሲያወዳድሩ ስርዓቱ ልዩ ደንበኞችን/ፈንዶችን ወዘተ ለማስላት የራሱን ዘዴ እንደሚጠቀም መርሳት የለብዎትም እና ይህንን ከማድረግዎ በፊት በእርግጠኝነት የአምፕሊቱድ ዶክመንቶችን ማንበብ አለብዎት።

ለሰጠህው አትኩሮት እናመሰግናለን! አሁን ጥሬ የክስተት ውሂብን ወደ Amplitude መስቀል እና ሙሉ ለሙሉ በስራዎ መጠቀም ይችላሉ።

ሙሉ ስክሪፕት፡

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

ምንጭ: hab.com

አስተያየት ያክሉ