I applied through a recruiter. I interviewed at Meta (Menlo Park, CA) in Jun 2017
Interview
The first rounds was a phone interview (~ 1 hour) and it involved questions on SQL and Python. Questions are similar to the ones asked on other reviews here. Just focus on solving it - they are pretty easy and usually require just a simple join or group-by.
The next round was on-site. The process will be described by your recruiter and it is exactly the way they explain it to you. They will also give plenty of materials to study and those are usually enough. For the on-site, I would suggest focus on your SQL and get all the parts done. I had a bad experience here with one of the interviewers being really rude. Hopefully, you are lucky enough to not have someone like that.
Overall, think of the on-site has a data design question (similar to how you are asked system design questions). Think about scale and daily vs batch solutions
I applied online. I interviewed at Meta (New York, NY)
Interview
Prepare technical concepts, and practice previously asked questions as much as you can find online. 4 rounds in the total process. It's easy as long as you just practice a LOT.
I had Python and SQL round for 30 minutes each. The interview was for 1 hour 30 minutes for SQL and 30 mins for python coding.
Completed 5 questions each but still got rejection email the next day.