(BTW, I've also worked with petabyte-scale social media data, and the author's suggestion that we often don't ask clear questions or use clearly discriminate methods is spot on. Too often we imagine that deeper dives into higher resolution data will yield more and better information. But we very rarely test that assumption.)
I think the core problem is, we seldom take the effort to understand the limits of our big data or its sources. And that's because, in the end, nobody really cares if our datamined conclusions are real or imaginary, just as long as the graphs look cool.
Although telling people you have giant big data infrastructure that performed deep learning to power your AI and cognitive automation sounds a lot sexier.
After that, you just do everything on a single beefy multicore box.
Unfortunately most databases do not support efficient stratified sampling, although it would be trivial to add as far as I can see. It needs to be hooked into the same place as GROUP BY.
----
As an example, pick 1000 URLs from every domain, 1000 clicks to every URL, 1000 web pages in every language, 1000 people from every country, etc. All of these things have a "long tail", so you need stratified sampling over the categories, not just straight sampling.
But if you have that, you can answer almost any question with 1 GB of data IMO.
I think there are two kinds of big data:
1) Production Services like Maps and search, which have to touch every byte
2) Decision making. This can always be done with something like 1 GB of data, or often 1 MB or 10 KB. You never need 1 TB of data to make a decision about anything.
Also, comparing IBM PS/2 disk transfer rates to a 10PB cluster in a cloud makes absolutely no sense.
Big data is about processing large amounts of data in a fashion that can get your results. This is typically where distributed/clustered systems lies and often deals with system optimization.
If your data requires fast enough results and you need answers quickly sampling is done. Now he does have merit in his argument that considerations about sampling or approaches to sampling needs to be considered. Big data can get his accurate results on the population of the data. (I worked with a company with 35 PB of images, they did get analyzed via ML and image processing algorithms. There was very little "sampling" involved.)
My bone to pick with "big data" is that it tends to be ambiguously thrown around to have cookie cutter systems such as Hadoop/spark or a large db (i.e. redshift) that don't work for the needs of the business. (Hadoop is horrible for everything except for 1-time batch ops, or image stitching)
While that's valid, I think the author's concern is that authors frequently do not demonstrate that the subsampling is representative. So the conclusions from the sampled data my not be as accurate as is claimed.
(edit: minor phrasing change)
And have a happy client that finally gets the results he wanted when the other analysts said it was impossible.
This is about industry trends, and you CAN get a representative sample in reasonable time, for some definition of reasonable. The takeaway from this article is that what someone in the data space may think is reasonable isn't what someone who just paid for an army of data scientists and a data lake solution because those things are sexy thinks is reasonable.
"Then explain this black swan"
For example, an answer to your question could be: "you asked us to find the average wing span to beak size ratio for male and female swans. Including the black swan doesn't change it at all, and the massively larger sample set doesn't improve our accuracy".
It's not black, it is a very dark white, and you might be looking at it with the wrong lighting.
> My IBM PS/2 Model 55SX desktop in 1990 had a 16Mhz CPU, 2MB of RAM and a 30MB hard drive. That’s roughly one Hz of processor power for every 1.87 bytes of hard drive space.
Yes, yes he is. I just... that seems like such an absurd comparison to be making.
See it this way: for an O(n) algorithm to continue being usable, GhZ/GB ratio needs to stay constant over time.
The author "controls" for the increase in cores, though.
This really is a pretty simple point. A modern x86-64 CPU is not just a 386SX running at a higher clock speed. You cannot compare CPUs across decades only on clock speeds. Nothing works like that.
Sure. Thrown in another order of magnitude in to account for that. Heck, throw in two! Why not say that a single 4GhZ CPU core today has a processing power of 100 4GhZ CPU's of yore.
You're still orders of magnitude behind the growth of disk space.
And that only makes sense for very simple and fast algorithms. Anything super-linear is still very hard with the amounts of data we are able to collect. Which is the author's point.
If your Hz/byte ratio is too high. you're wasting compute capability. If too low, you're wasting memory/memory bandwidth.
Background: though my pseudonymity precludes giving specifics, I've worked in and around data analytics for much of three decades, across various fields. What was "big data" at the onset of my career -- when multiple departments of over thirty analysts shared access to a few GB of storage distributed over multiple cluster systems -- is now something I can trivially tackle on a modest and decade-and-a-half-old desktop system. Newer boxen, with yet more memory and SSD or hybrid drives are even more capable.
Under my present 'nym, I've done analysis especially of Google+ since 2015 (largely out of personal interest and realising methods were available to me). Much of that has been based on sampling methods, some has relied on more comprehensive analysis, though again, with an eye to limiting total data processing.
In the case of Google+, the questions of how many actively-posting users and how many active Communities exist have come up. Sampling methods have been reasonably useful in assessing these.
Google's sitemaps files (from https://plus.google.com/robots.txt) supplied total counts of profiles, communities, and several other categories. This itself takes some work -- there are 50,000 Profile sitemap files, and 100 Communities files, containing 3.4 billion and 8.1 million entries, respectively. Even downloading just the Profile sitemaps itself is roughly 37 GB of data.
For a rough estimate of active profiles, it only took about 100 randomly sampled observations to come up with pretty solid value: about 9% of profiles had posted publicly ever (a ratio which remains true). Finer-level detail for more frequently posting accounts takes a far larger sample because those highly-active profiles are so much rarer. I'd done my first analysis based on about 50,000 records, while Stone Temple Consulting independently confirmed and extended my analysis to find an estimate of profiles posting 100+ times per month (about 50,000 across the full site). That is, 0.0015625% of all G+ profiles extant at the time (about 3.2 billion).
When I first tackled the G+ Communities question, I was trying to get a sense of:
1. How many there were.
2. What typical membership was.
3. How many were "reasonably active", based on ... somewhat contrived measures.
I adopted a sampling approach -- it was easy to pull a full listing of Communities, but web-scraping these would take time (at about 1.5s per URL). So my first approach utilised a 12,000 record sample. That gave a good overall view, but turned out to be thin on the very largest communities, so I ran a second pull based on 36,000 records, also randomly sampled. (A test of sampling: how many communities should be in both samples. The expected and actual result matched: 53.)
Even then, representation from the very largest communities was thin. Fortunately, I found someone able to sample all 8.1 million communities rapidly, and from this compiled a list of 105,000 communities, with 100+ members and posting activity within the 31 previous days (based on Jan 5-6, 2019).
Note that this highlights another aspect of media: of all 8.1 million communities, only 1.3% fell into the active list. That is media and community activity tend to focus most ACTIVITY on a VANISHINGLY small subset of total members, groups, posts, or other entities. That is, attention is highly rivalrous, and is exceedingly unequally distributed.
The challenge is in finding the active entities. Given my approach, via sitemaps, this was difficult (though a few options may have been available).
The upshot is that in the case of both users and communities, the really active and interesting set is, by modern standards, small data. There are 50,000 to a few million active users, a few thousands (and far fewer than 100,000) truely active communities. Even the total post volume of G+ communities is, by modern standards, strikingly small -- from January 2013 to January 2019, about 300 GB of post text was submitted. Image content and the surrounding Web payload (800 kiB per post) inflate that considerably, but yes, over half a decade of a reasonably large social media's community discussions could sit comfortably on most modern hard drives, or even much mobile storage.
I'll skip over the questions of truly social analysis of such data, with connections between users and other entities, though I'll note that even for very large systems, managing these at scale is difficult and the results may not be particularly usefully interpreted. Combinatorial maths remains challenging, even with beefy iron.
________________________________
Notes:
1. See: https://news.ycombinator.com/item?id=19294024 and https://news.ycombinator.com/item?id=19294004, on the often surprisingly small scale of "big data" and the value of sampling, respectively.