How to build separate time series forecasts model for each of 3k customers? I have 3000 customers in my base and I want to forecast next 6 months revenue at a monthly level for each of these 3000 customers. Does that mean i have to build 3000 Arima models 1 for each customer?
I can build a automated process to try with different values of p,d,q for seasonal & non seasonal arima for a customer and pick the one with least MAPE etc but doing it may not give the most accurate result.
Is there any better way of approaching this problem? Or are there any better methods to tackle the scale of this problem were i don't have to build 3000 arima models instead build fewer models?
Note: Getting a customer level forecast is must I cannot group customers and forecast.   
 A: You certainly don't want to build 3,000 separate models!  Not only would that be computationally and administratively cumbersome, but it would also mean that each model only has data from one customer, and so you are ignoring data from other customers in each model.  This would effectively mean that your predictions for a customer are based solely on their individual (small) dataset, and you are not using the (large) dataset from other customers to help with any aspect of your prediction.
A much better approach than that monstrosity would be to formulate some kind of general time-series model that has an effect term for each customer.  There are many ways this could be done, and the ultimate test is to see what model fits your data well, and makes good out-of-sample predictions.  Here is an example of a simple model to get you started thinking about the possibilities.
An example model: If you let $X_{i,t}$ be the log-revenue for customer $i$ at time $t$ you could formulate a simple Gaussian ARIMA model including customer-level mean and variance effects as:
$$\phi(B) \Delta^d (X_{i,t} - \mu_i) = \theta(B) \sigma_i \varepsilon_t \quad \quad \quad \varepsilon_t \sim \text{IID N}(0,1),$$
where the AR and MA characteristic polynomials are:
$$\phi(B) = 1 - \phi_1 B - ... - \phi_p B^p \quad \quad \quad \theta(B) = 1 + \theta_1 B + ... + \theta_q B^q.$$
As you can see, this is a standard Gaussian ARIMA model, but with each series varying with a different mean and variance parameter, for each customer.  Once you have used the data to estimate the parameters you could then make predictions for an individual customer based on their estimated mean and variance in the series.  Some customers give you more revenue, so they will have a higher mean.  Some customers vary their revenue more, so they will have a higher variance.  Nevertheless, other aspects of the model are estimated using the data from all the customers.
It is important to note that there are many variations you could make to this model, such as using customer-level random effects, or a hidden-state process with another time-series process for the underlying mean for each customer.  Really, there are all sorts of variations you could make, and you will need to see what fits your data.  However, this kind of model has the advantage that all the data is used simultaneously to estimate the parameters, so the prediction for an individual customer still depends on all the data.
A: I faced very similar task at work. First I used an automated ARIMA function applied to each timeseries separately. It worked sufficiently fast for my purposes.
Then I studied the properties of timeseries by doing a big comparative analysis, using both ARIMA, and a number of simpler techniques like linear models with preprocessed inputs, random walk, random walk with a drift. 
I found that simpler models work tens times faster, but what comes to how well they work totally depends on your data. In my case, most timeseries were not distinguishable from random walk, so using the last value (or mean) as a forecast looked sane.
Try linear models, they can be surprisingly fast and accurate.
A: I had a similar project where forecasting was required for 3000 Distributors for one of my clients. I used Automated ARIMA and looped it through clusters of Distributors by their type.
I had to finally formulate a parallel package to handle multiple Distributor types in parallel in order to increase efficiency as models needed to be trained once a month. It can be easily done using Parallel packages in R and Rob Hyndsight Forecast package.
