0

使用 AMO 我们如何使用 C# 代码和 Azure 函数 App Regards、Manish 创建 azure 分析服务分区

4

1 回答 1

1

您可以像添加列一样添加分区

            var ds = myDatabaseObject.Model.DataSources.Find("DW Connection");
            ds.Model.Tables.Add(new Table
            {
                Name = "tablename",
                Columns =
                {
                    new DataColumn
                    {
                        Name = "Id",
                        DataType = DataType.Int64,
                        SourceColumn = "Id",
                        SourceProviderType = "BigInt",
                        IsUnique = true,
                        IsKey = true
                    },
                    new DataColumn
                    {
                        Name = "DateId",
                        DataType = DataType.DateTime,
                        SourceColumn = "DateId",
                        FormatString = "General Date",
                        SourceProviderType = "Date"
                    }
                    [...]
                },
                Partitions =
                {
                    new Partition
                    {
                        Name = "Main",
                        DataView = DataViewType.Full,
                        Source = new QueryPartitionSource
                        {
                            DataSource = ds,
                            Query = query
                        }
                    }
                    [...]
                }
            });

添加或删除分区也不是问题。例如,这是(或多或少)我用来添加带有新数据的分区的代码

        var partitionName = $"name of partition you want to add";
        var newDataPartition = new Partition
        {
            Name = partitionName,
            DataView = DataViewType.Full,
            Source = new QueryPartitionSource
            {
                DataSource = ds,
                Query = "sql query here"
            }
        };

        if (!table.Partitions.ContainsName(partitionName))
        {
            table.Partitions.Add(newDataPartition);
        }
        db.Update(UpdateOptions.ExpandFull);
        table.Partitions[partitionName].RequestRefresh(RefreshType.Full);
        table.Partitions["Main"].RequestMerge(new List<Partition> { table.Partitions[partitionName] });
        db.Model.SaveChanges();
于 2017-07-21T04:30:53.230 回答