/// <summary>
        /// CREATE_CUBE_PARTITION_FOR_MEASURE_GROUP
        /// </summary>
        /// <param name="sqlHelper"></param>
        /// <param name="asMeta"></param>
        /// <param name="cube"></param>
        /// <param name="is_rolap_cube"></param>
        /// <param name="mg"></param>
        /// <param name="aggregation_design"></param>
        /// <param name="is_rolap_mg"></param>
        /// <param name="depended_fact_table"></param>
        /// <param name="DSVSchemaName"></param>
        public void CREATE_CUBE_PARTITION_FOR_MEASURE_GROUP(
            DB_SQLHELPER_BASE sqlHelper
            , AS_METADATA asMeta
            , Cube cube
            , int is_rolap_cube
            , MeasureGroup mg
            , AggregationDesign aggregation_design
            , int is_rolap_mg
            , String depended_fact_table
            , String DSVSchemaName)
        {
            DataTable partition_date_filter = asMeta.GET_SSAS_PARTITION_SET(sqlHelper, mg.ID);
            String    aggregation_design_id = null;

            if (aggregation_design != null)
            {
                aggregation_design_id = aggregation_design.ID.ToString();
            }
            if (partition_date_filter != null && partition_date_filter.Rows != null && partition_date_filter.Rows.Count > 0)
            {
                String factFKDimColumnName        = partition_date_filter.Rows[0]["fact_fk_dim_column_name"].ToString();
                int    month_volumn_per_partition = Convert.ToInt32(CONFIGURATION_HELPER.GET_METADATA_PROPERTY("month_volumn_per_partition"));
                int    year_volumn_per_cube       = Convert.ToInt32(CONFIGURATION_HELPER.GET_METADATA_PROPERTY("year_volumn_per_cube"));

                int partitionCount = 0;
                partitionCount = year_volumn_per_cube * 12 / month_volumn_per_partition;

                for (int i = 1; i <= partitionCount + 1; i++)
                {
                    String partitionSelectQuery = "";// String.Format("SELECT * FROM {0} WHERE 1=1 ", DSVSchemaName);

                    //if rolap cube, and current mg is molap, then add where 1=2 filter, select * from tb_name where 1=1 and 1=2
                    if (is_rolap_cube == 1 && is_rolap_mg == 0)
                    {
                        partitionSelectQuery = partitionSelectQuery + " AND 1=2";
                    }
                    //if rolap cube, then no need additional date column filter, if molap , then need date column filter,
                    //select * from tb_name where 1=1 and dateid>=20100101 and dateid<20100201
                    if (is_rolap_cube == 0)
                    {
                        partitionSelectQuery = partitionSelectQuery + " " + asMeta.GET_SSAS_PARTITION_FILTER(factFKDimColumnName, i, month_volumn_per_partition);
                    }
                    AS_API.CREATE_MOLAP_PARTITION(
                        sqlHelper,
                        mg,
                        "DW_DataSource",
                        mg.ID.ToString() + "_" + i.ToString(),
                        DSVSchemaName,
                        partitionSelectQuery,
                        aggregation_design_id,
                        is_rolap_mg,
                        depended_fact_table
                        );
                    //if rolap cube, then only need one partition
                    if (is_rolap_cube == 1)
                    {
                        break;
                    }
                }
            }
            else
            {
                sqlHelper.ADD_MESSAGE_LOG(String.Format("Create cube partition-> No partition date column been detected for mg {0}", mg.ID), MESSAGE_TYPE.PARTITION, MESSAGE_RESULT_TYPE.Warning);
                AS_API.CREATE_MOLAP_PARTITION(
                    sqlHelper,
                    mg,
                    "DW_DataSource",
                    mg.ID.ToString() + "_1",
                    DSVSchemaName,
                    "",
                    aggregation_design_id,
                    is_rolap_mg,
                    depended_fact_table
                    );
            }
        }