En veldig enkel måte å forstå hva en database er er å tenke på det en en mappe som inneholder en haug av excel-lignende bord. Mye som større eller enterprise-klasse databaser du kan koble til og få tilgang til data i databasen på en rekke måter.

ved Hjelp av Python og pandaer

I denne opplæringen, jeg bruker Python og den fantastiske pandaer-modulen for å koble til databasen, kan du utforske tabeller og data det holder, og deretter lese at data fra de aktuelle tabellene.,

vi Over koble til database og utforske hva som tabellene er i det. Jeg fant ut at det er et par tabeller i databasen, inkludert en som heter melding og andre navn chat, håndtere og vedlegg. La oss utforske melding tabellen fordi det er de som høres mest lovende til å holde våre imessage-meldinger. Jeg gjør det ved å overføre tabell i en pandaer dataframe, en type fil som er mye lettere å utforske og manipulere for data analyis prosjekter.

# get the 10 entries of the message table using pandas
messages = pd.read_sql_query("select * from message limit 10", conn)

Få melding tekst og telefonnummeret

Vi traff bingo!, Meldingen tabell faktisk ser ut til å holde alle lagrede imessage-meldinger. Det har et tekstfelt med den faktiske sendt eller mottatt melding, et dato-felt (mer om det nedenfor) og et håndtak id. Etter litt leting fant jeg at handle_id er en kode for hvert telefonnummer eller en Apple-id som du har hatt en samtale med. For å kartlegge handle_id tilbake til Apple-id-er vi kan bruke en tabell i databasen (riktig) heter håndtere og bli med på handle_id.

Legge til en chat-id

på samme måte, meldingen tabellen inneholder også en chat_id som kartlegger hver melding tilbake til unik chat., Dette kan være nyttig når du gjør analyse på samtaler med flere personer i dem. Vi kan få chat_id av hver melding ved å bli med i meldingen bordet med (igjen, passende navnet) chat_message_join bord på message_id.

Bli dato

meldingen tabellen inneholder også en dato kolonne, og dette var litt vanskelig for meg å dekode siden det ikke er nøyaktig i hvilket som helst format som er mye brukt i bransjen. Videre, slik at denne kolonnen er registrert er litt annerledes i nyere versjon av Mac OS X sammenlignet med eldre.,

Kreditt til denne stackoverflow side som hjalp meg å finne ut av dette.

I Mac OS X-versjoner før High Sierra (som er versjon 10.13 og utgitt i September 2017), dato kolonne er en epoke type, men i motsetning til standard for å telle sekunder fra 1970-01-01, det er å telle sekunder fra 2001-01-01., For å konvertere skriv inn et datafelt vi kan faktisk forstå at vi kan bruke en kommando mens spørring melding bord for å opprette et nytt felt (vi vil kalle det date_utc, siden det er noe som gir en tidssone UTC dato som et resultat) basert på dato-feltet.

I Mac OS X High Sierra og over, det er det samme, men datoformatet er nå mye mer detaljert: det er i nano-andre nivå. Så nå må vi dele av 1,000,000,000 før vi bruke den samme koden vi har brukt ovenfor.,

å Sette det hele sammen

Du kan finne notebook her med all koden i orden for deg å trekke ut imessage-meldinger fra din bærbare pc-en og start å analysere!

Det tar bare et par minutter, og ved slutten av det du bør ha en grunnleggende historie av din iMessage data som inneholder telefonnummeret (eller e-post), teksten, en unik chat for hver enkelt gruppe av personer du hadde en prat med og tidsstempel (i tidssone UTC) av hver melding som sendes.

Du kan faktisk finne mer data i databasen, slik som detaljer om meldingen ble levert og les samt vedlegg., Jeg er ikke berører disse attributtene på dette innlegget.

Articles

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *