public static void GetIterator()
        {
            Console.WriteLine("Start get iterator...");

            PrepareTable();
            PrepareData();

            OTSClient otsClient = Config.GetClient();
            // 读取 (0, "a")到(1000, "xyz")这个范围内的所有行
            PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey
            {
                { "pk0", new ColumnValue(0) },
                { "pk1", new ColumnValue("a") }
            };

            PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey
            {
                { "pk0", new ColumnValue(1000) },
                { "pk1", new ColumnValue("xyz") }
            };

            var cu      = new CapacityUnit(0, 0);
            var request = new GetIteratorRequest(TableName, GetRangeDirection.Forward, inclusiveStartPrimaryKey,
                                                 exclusiveEndPrimaryKey, cu);

            var iterator = otsClient.GetRangeIterator(request);

            foreach (var row in iterator)
            {
                PrintRow(row);
            }

            Console.WriteLine("Consumed CapacityUnit Counter:{0}", cu.Read);
        }
コード例 #2
0
 public GetRowResponse(CapacityUnit consumedCapacityUnit, IRow row)
 {
     ConsumedCapacityUnit = consumedCapacityUnit;
     Row        = row as Row;
     PrimaryKey = Row.GetPrimaryKey();
     Columns    = Row.GetColumns();
 }
コード例 #3
0
 public CreateTableRequest(TableMeta tableMeta, CapacityUnit reservedThroughput, List <IndexMeta> indexMetas)
 {
     TableMeta          = tableMeta;
     ReservedThroughput = reservedThroughput;
     TableOptions       = new TableOptions();
     IndexMetas         = indexMetas;
 }
コード例 #4
0
        public void CreateMultiAutoIncrementColumnTableTest_ShouldFailed()
        {
            var schema = new PrimaryKeySchema
            {
                { "PK0", ColumnValueType.String },
                { "PK1", ColumnValueType.Integer, PrimaryKeyOption.AUTO_INCREMENT },
                { "PK2", ColumnValueType.Integer, PrimaryKeyOption.AUTO_INCREMENT }
            };
            var tableMeta = new TableMeta(TestTableName, schema);

            var tableOptions = new TableOptions
            {
                MaxVersions = 10,
                TimeToLive  = -1
            };
            var reservedThroughput = new CapacityUnit(0, 0);

            var request = new CreateTableRequest(tableMeta, reservedThroughput)
            {
                TableOptions = tableOptions
            };

            try{
                OTSClient.CreateTable(request);
                WaitForTableReady();
            }catch (Exception e) {
                Assert.IsTrue(e.Message.Contains("AUTO_INCREMENT primary key count must <= 1"));
            }
        }
コード例 #5
0
        public void GetRangeTest()
        {
            CreateTable();
            var otsClient = OTSClient;
            // 指定范围读取数据
            var startPrimaryKey = new PrimaryKey();

            startPrimaryKey.Add("PK0", new ColumnValue("TestData"));
            startPrimaryKey.Add("PK1", ColumnValue.INF_MIN);

            var endPrimaryKey = new PrimaryKey();

            endPrimaryKey.Add("PK0", new ColumnValue("TestData"));
            endPrimaryKey.Add("PK1", ColumnValue.INF_MAX);

            var consumed = new CapacityUnit(0, 0);

            var request = new GetIteratorRequest("SampleTable", GetRangeDirection.Forward,
                                                 startPrimaryKey, endPrimaryKey,
                                                 consumed);
            var iterator = OTSClient.GetRangeIterator(request);

            foreach (var rowData in iterator)
            {
                // 处理每一行数据
            }
            DeleteTable();
        }
コード例 #6
0
 public BatchWriteRowResponseItem(CapacityUnit consumed, string tableName, int index)
 {
     IsOK      = true;
     Consumed  = consumed;
     TableName = tableName;
     Index     = index;
 }
コード例 #7
0
        /// <summary>
        /// 获取文件大小显示字符串
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="length_type">单位</param>
        /// <param name="decimal_place">有效数字(Byte此值无效)</param>
        /// <param name="seperator">分隔符</param>
        /// <returns></returns>
        public static string lengthString(string path, CapacityUnit capacity_unit, int decimal_place, string seperator)
        {
            if (capacity_unit == CapacityUnit.Byte)
            {
                return(length(path) + seperator + "B");
            }
            double dl  = length(path, capacity_unit);
            string res = Math.Round(dl, decimal_place) + seperator;

            switch (capacity_unit)
            {
            case CapacityUnit.Byte:
                res += "B";
                break;

            case CapacityUnit.KiloByte:
                res += "KB";
                break;

            case CapacityUnit.MebiByte:
                res += "MB";
                break;

            case CapacityUnit.GigaByte:
                res += "GB";
                break;
            }
            return(res);
        }
コード例 #8
0
        /// <summary>
        /// 获取文件大小, 不同单位返回不同值
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="length_type">单位类型</param>
        /// <returns></returns>
        public static double length(string path, CapacityUnit length_type)
        {
            long   llength = length(path);
            double dlength = llength / Convert.ToDouble((int)length_type);

            return(dlength);
        }
コード例 #9
0
 public BatchGetRowSuccessResponseItem(
     CapacityUnit consumedCapacityUnit,
     PrimaryKey primaryKey,
     AttributeColumns attribute)
     : base(consumedCapacityUnit, primaryKey, attribute)
 {
 }
        private static void PrepareTable()
        {
            // 创建表
            OTSClient otsClient = Config.GetClient();

            IList <string> tables = otsClient.ListTable(new ListTableRequest()).TableNames;

            if (tables.Contains(TableName))
            {
                return;
            }


            PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
            {
                { "pk0", ColumnValueType.Integer },
                { "pk1", ColumnValueType.String }
            };

            TableMeta tableMeta = new TableMeta(TableName, primaryKeySchema);

            CapacityUnit       reservedThroughput = new CapacityUnit(0, 0);
            CreateTableRequest request            = new CreateTableRequest(tableMeta, reservedThroughput);

            otsClient.CreateTable(request);
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: Michael446-github/Kettle
        static void Main(string[] args)
        {
            var liquids = new List <ILiquid>()
            {
                new Liquid("Water"), new Liquid("Fuel")
            };
            var liquidProvider = new LiquidProvider(liquids);

            var energies = new List <IEnergy>()
            {
                new Energy("Electricity"), new Energy("SomethingElse")
            };
            var energyProvider = new EnergyProvider(energies);

            var regularKettle  = new RegularKettle();
            var electricKettle = new ElectricKettle();

            var capacity = new CapacityUnit(100);
            var utensil  = new Utensil("Kettle", capacity);
            var boiler   = new Boiler("Кипятильник");

            regularKettle.Utensil = utensil;
            regularKettle.Boiler  = boiler;
            regularKettle.WorksOn = energies;

            electricKettle.Utensil = utensil;
            electricKettle.Boiler  = boiler;
            electricKettle.WorksOn = energies;

            var regularKettleRunner  = new Runner.Runner(liquidProvider, energyProvider, regularKettle);
            var electricKettleRunner = new Runner.Runner(liquidProvider, energyProvider, electricKettle);
        }
コード例 #12
0
 public BatchGetRowResponseItem(CapacityUnit consumed, PrimaryKey primaryKey, AttributeColumns attribute)
 {
     IsOK       = true;
     Consumed   = consumed;
     PrimaryKey = primaryKey;
     Attribute  = attribute;
 }
コード例 #13
0
        /// <summary>
        /// 单独在表上再创建一个索引表2
        /// </summary>
        public static void CreateGlobalIndex()
        {
            OTSClient otsClient = Config.GetClient();

            Console.WriteLine("Start create globalIndex...");

            IndexMeta indexMeta = new IndexMeta(IndexName2);

            indexMeta.PrimaryKey = new List <string>()
            {
                Col2
            };
            indexMeta.DefinedColumns = new List <string>()
            {
                Pk1
            };


            CapacityUnit             reservedThroughput = new CapacityUnit(0, 0);
            CreateGlobalIndexRequest request            = new CreateGlobalIndexRequest(TableName, indexMeta);

            otsClient.CreateGlobalIndex(request);

            Console.WriteLine("Global Index is created,tableName: " + TableName + ",IndexName:" + IndexName2);
        }
コード例 #14
0
        public static void TableOperations()
        {
            // 创建表
            OTSClient otsClient = Config.GetClient();

            {
                Console.WriteLine("Start create table...");
                PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
                {
                    { "pk0", ColumnValueType.Integer },
                    { "pk1", ColumnValueType.String }
                };
                TableMeta tableMeta = new TableMeta(TableName, primaryKeySchema);

                CapacityUnit       reservedThroughput = new CapacityUnit(0, 0);
                CreateTableRequest request            = new CreateTableRequest(tableMeta, reservedThroughput);
                otsClient.CreateTable(request);

                Console.WriteLine("Table is created: " + TableName);
            }

            //// 更新表
            //{
            //    Thread.Sleep(60 * 1000); // 每次更新表需要至少间隔1分钟
            //    Console.WriteLine("Start update table...");
            //    CapacityUnit reservedThroughput = new CapacityUnit(0, 0); // 将预留CU调整为0,0
            //    UpdateTableRequest request = new UpdateTableRequest(TableName, reservedThroughput);
            //    UpdateTableResponse response = otsClient.UpdateTable(request);
            //    Console.WriteLine("LastIncreaseTime: " + response.ReservedThroughputDetails.LastIncreaseTime);
            //    Console.WriteLine("LastDecreaseTime: " + response.ReservedThroughputDetails.LastDecreaseTime);
            //    Console.WriteLine("NumberOfDecreaseToday: " + response.ReservedThroughputDetails.LastIncreaseTime);
            //    Console.WriteLine("ReadCapacity: " + response.ReservedThroughputDetails.CapacityUnit.Read);
            //    Console.WriteLine("WriteCapacity: " + response.ReservedThroughputDetails.CapacityUnit.Write);
            //}

            // 描述表
            {
                Console.WriteLine("Start describe table...");
                DescribeTableRequest  request  = new DescribeTableRequest(TableName);
                DescribeTableResponse response = otsClient.DescribeTable(request);
                Console.WriteLine("LastIncreaseTime: " + response.ReservedThroughputDetails.LastIncreaseTime);
                Console.WriteLine("LastDecreaseTime: " + response.ReservedThroughputDetails.LastDecreaseTime);
                Console.WriteLine("NumberOfDecreaseToday: " + response.ReservedThroughputDetails.LastIncreaseTime);
                Console.WriteLine("ReadCapacity: " + response.ReservedThroughputDetails.CapacityUnit.Read);
                Console.WriteLine("WriteCapacity: " + response.ReservedThroughputDetails.CapacityUnit.Write);
            }

            //// 删除表
            //{
            //    Console.WriteLine("Start delete table...");
            //    DeleteTableRequest request = new DeleteTableRequest(TableName);
            //    otsClient.DeleteTable(request);
            //    Console.WriteLine("Table is deleted.");
            //}
        }
コード例 #15
0
        public void UpdateTableTest()
        {
            CreateTable();
            var otsClient = OTSClient;

            var reservedThroughput = new CapacityUnit(0, 0);
            var request            = new UpdateTableRequest("SampleTable", reservedThroughput);
            var response           = otsClient.UpdateTable(request);

            DeleteTable();
        }
コード例 #16
0
        public void CreateTestTable(string tableName, PrimaryKeySchema schema, CapacityUnit reservedThroughput, bool waitFlag = true)
        {
            var tableMeta = new TableMeta(tableName, schema);
            var request   = new CreateTableRequest(tableMeta, reservedThroughput);

            OTSClient.CreateTable(request);

            if (waitFlag)
            {
                WaitForTableReady();
            }
        }
コード例 #17
0
 /// <summary>
 /// 通过多个参数构造一个新的<see cref="GetRangeRequest"/>
 /// </summary>
 /// <param name="tableName">表名称</param>
 /// <param name="direction">前向还是后向</param>
 /// <param name="inclusiveStartPrimaryKey">区间开始位置,包含</param>
 /// <param name="exclusiveEndPrimaryKey">区间结束位置,不包含</param>
 /// <param name="consumedCapacityUnitCounter">用户传入的CapacityUnit消耗计数器。</param>
 /// <param name="columnsToGet">返回的列名称的列表</param>
 /// <param name="limit">最大返回数</param>
 public GetIteratorRequest(string tableName,
                           GetRangeDirection direction,
                           PrimaryKey inclusiveStartPrimaryKey,
                           PrimaryKey exclusiveEndPrimaryKey,
                           CapacityUnit consumedCapacityUnitCounter,
                           HashSet <string> columnsToGet = null,
                           int?limit = null,
                           ColumnCondition condition = null)
     : base(tableName, direction, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey,
            columnsToGet, limit, condition)
 {
     ConsumedCapacityUnitCounter = consumedCapacityUnitCounter;
 }
コード例 #18
0
        public void CheckSingleRow(string tableName, PrimaryKey primaryKey,
                                   AttributeColumns attribute,
                                   CapacityUnit expectCapacityUnitConsumed = null,
                                   HashSet <string> columnsToGet           = null,
                                   bool isEmpty = false,
                                   ColumnCondition condition = null)
        {
            var request = new GetRowRequest(tableName, primaryKey, columnsToGet, condition);

            var response = OTSClient.GetRow(request);

            PrimaryKey       primaryKeyToExpect;
            AttributeColumns attributeToExpect;

            if (isEmpty)
            {
                primaryKeyToExpect = new PrimaryKey();
                attributeToExpect  = new AttributeColumns();
            }
            else if (columnsToGet == null || columnsToGet.Count == 0)
            {
                primaryKeyToExpect = primaryKey;
                attributeToExpect  = attribute;
            }
            else
            {
                primaryKeyToExpect = new PrimaryKey();
                attributeToExpect  = new AttributeColumns();
                foreach (var columnName in columnsToGet)
                {
                    if (primaryKey.ContainsKey(columnName))
                    {
                        primaryKeyToExpect.Add(columnName, primaryKey[columnName]);
                    }

                    if (attribute.ContainsKey(columnName))
                    {
                        attributeToExpect.Add(columnName, attribute[columnName]);
                    }
                }
            }

            AssertColumns(primaryKeyToExpect, response.PrimaryKey);
            AssertColumns(attributeToExpect, response.Attribute);

            if (expectCapacityUnitConsumed != null)
            {
                AssertCapacityUnit(expectCapacityUnitConsumed, response.ConsumedCapacityUnit);
            }
        }
コード例 #19
0
        public void CreateTestTable()
        {
            var primaryKeys = new PrimaryKeySchema();

            primaryKeys.Add("PK0", ColumnValueType.String);
            primaryKeys.Add("PK1", ColumnValueType.Integer);

            var tableMeta          = new TableMeta("SampleTableName", primaryKeys);
            var reservedThroughput = new CapacityUnit(0, 0);
            var request            = new CreateTableRequest(tableMeta, reservedThroughput);

            OTSClient.CreateTable(request);

            WaitForTableReady();
        }
コード例 #20
0
        public static void AssertCapacityUnit(CapacityUnit expect, CapacityUnit actual)
        {
            if (expect == null && actual == null)
            {
                return;
            }

            if (expect == null || actual == null)
            {
                Assert.Fail();
            }

            Assert.AreEqual(expect.Read, actual.Read);
            Assert.AreEqual(expect.Write, actual.Write);
        }
コード例 #21
0
        private void CreateTable(String tableName)
        {
            foreach (var tableItem in OTSClient.ListTable(new ListTableRequest()).TableNames)
            {
                OTSClient.DeleteTable(new DeleteTableRequest(tableItem));
            }
            var primaryKeySchema = new PrimaryKeySchema();

            primaryKeySchema.Add("PK0", ColumnValueType.Integer);
            var tableMeta          = new TableMeta(tableName, primaryKeySchema);
            var reservedThroughput = new CapacityUnit(0, 0);
            var request            = new CreateTableRequest(tableMeta, reservedThroughput);
            var response           = OTSClient.CreateTable(request);

            WaitForTableReady();
        }
コード例 #22
0
        private void CreateTable()
        {
            var otsClient        = OTSClient;
            var primaryKeySchema = new PrimaryKeySchema();

            primaryKeySchema.Add("PK0", ColumnValueType.String);
            primaryKeySchema.Add("PK1", ColumnValueType.Integer);

            var tableMeta = new TableMeta("SampleTable", primaryKeySchema);

            var reservedThroughput = new CapacityUnit(0, 0);
            var request            = new CreateTableRequest(tableMeta, reservedThroughput);
            var response           = otsClient.CreateTable(request);

            WaitForTableReady();
        }
コード例 #23
0
        public void CreateTableAndDelete()
        {
            string tableName = "SampleTableName";

            var primaryKeys = new PrimaryKeySchema
            {
                { "PK0", ColumnValueType.String },
                { "PK1", ColumnValueType.Integer }
            };

            var tableOption = new TableOptions
            {
                MaxVersions = 1,
                TimeToLive  = -1
            };

            var tableMeta          = new TableMeta(tableName, primaryKeys);
            var reservedThroughput = new CapacityUnit(0, 0);
            var request1           = new CreateTableRequest(tableMeta, reservedThroughput)
            {
                TableOptions = tableOption
            };

            var response1 = OTSClient.CreateTable(request1);

            var request2  = new ListTableRequest();
            var response2 = OTSClient.ListTable(request2);

            Assert.IsTrue(response2.TableNames.Contains(tableName));

            Thread.Sleep(1000);
            var request3  = new DescribeTableRequest(tableName);
            var response3 = OTSClient.DescribeTable(request3);

            Assert.AreEqual(tableName, response3.TableMeta.TableName);
            Assert.AreEqual(primaryKeys, response3.TableMeta.PrimaryKeySchema);
            Assert.AreEqual(reservedThroughput.Read, response3.ReservedThroughputDetails.CapacityUnit.Read);
            Assert.AreEqual(reservedThroughput.Write, response3.ReservedThroughputDetails.CapacityUnit.Write);


            OTSClient.DeleteTable(new DeleteTableRequest(tableName));

            var request4  = new ListTableRequest();
            var response4 = OTSClient.ListTable(request4);

            Assert.IsFalse(response4.TableNames.Contains(tableName));
        }
コード例 #24
0
        //static void Main(string[] args)
        //{
        //    OTSClient otsClient = Config.GetClient();
        //    //DeleteSearchIndex(otsClient);
        //    //DeleteTable(otsClient);

        //    //创建一张TableStore表
        //    CreateTable(otsClient);
        //    //在TableStore表上创建一个索引表
        //    CreateSearchIndex(otsClient);

        //    //Wait searchIndex load success
        //    Console.WriteLine("wait searchIndex load success");
        //    Thread.Sleep(3 * 1000);

        //    ListSearchIndex(otsClient);
        //    CreateSearchIndexWithIndexSort(otsClient);
        //    DescribeSearchIndex(otsClient);
        //    PutRow(otsClient);

        //    //等待索引数据同步成功
        //    WaiteAllDataSyncSuccess(otsClient, 7);

        //    //MatchAll Query
        //    MatchAllQuery(otsClient);

        //    //MatchQuery
        //    MatchQuery(otsClient);

        //    //MatchPhraseQuery
        //    MatchPhraseQuery(otsClient);

        //    //RangeQuery
        //    RangeQuery(otsClient);

        //    //PrefixQuery
        //    PrefixQuery(otsClient);

        //    //TermQuery
        //    TermQuery(otsClient);

        //    //WildcardQuery
        //    WildcardQuery(otsClient);

        //    //BoolQuery
        //    BoolQuery(otsClient);

        //    Console.ReadLine();
        //}

        public static void CreateTable(OTSClient otsClient)
        {
            Console.WriteLine("\n Start create table...");
            PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
            {
                { Pk0, ColumnValueType.Integer },
                { Pk1, ColumnValueType.String }
            };
            TableMeta tableMeta = new TableMeta(TableName, primaryKeySchema);

            CapacityUnit       reservedThroughput = new CapacityUnit(0, 0);
            CreateTableRequest request            = new CreateTableRequest(tableMeta, reservedThroughput);

            otsClient.CreateTable(request);

            Console.WriteLine("Table is created: " + TableName);
        }
コード例 #25
0
        //static void Main(string[] args)
        //{
        //    Console.WriteLine("GlobalIndexSample");

        //    CreateTableWithGlobalIndex();

        //    CreateGlobalIndex();

        //    PutRow();

        //    GetRangeFromIndexTable();

        //    DeleteGlobalIndex();

        //    DeleteTable();

        //    Console.ReadLine();

        //}

        /// <summary>
        /// 创建一个带二级索引的表
        /// </summary>
        public static void CreateTableWithGlobalIndex()
        {
            //建主表,两列Pk:Pk1、Pk2。 预定义列:Col1、Col2。
            //建索引表,索引表中Col1放Pk0
            OTSClient otsClient = Config.GetClient();

            Console.WriteLine("Start create table with globalIndex...");
            PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
            {
                { Pk1, ColumnValueType.String },
                { Pk2, ColumnValueType.String }
            };
            TableMeta tableMeta = new TableMeta(TableName, primaryKeySchema);

            tableMeta.DefinedColumnSchema = new DefinedColumnSchema {
                { Col1, DefinedColumnType.STRING },
                { Col2, DefinedColumnType.STRING }
            };

            IndexMeta indexMeta = new IndexMeta(IndexName);

            indexMeta.PrimaryKey = new List <string>()
            {
                Col1
            };
            indexMeta.DefinedColumns = new List <string>()
            {
                Col2
            };
            //indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
            //indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;

            List <IndexMeta> indexMetas = new List <IndexMeta>()
            {
            };

            indexMetas.Add(indexMeta);

            CapacityUnit       reservedThroughput = new CapacityUnit(0, 0);
            CreateTableRequest request            = new CreateTableRequest(tableMeta, reservedThroughput, indexMetas);

            otsClient.CreateTable(request);

            Console.WriteLine("Table is created: " + TableName);
        }
コード例 #26
0
        public BatchGetRowResponseItem(string tableName, IRow row, CapacityUnit consumed, int index)
        {
            TableName = tableName;
            Row       = row;
            Consumed  = consumed;
            Index     = index;

            if (row != null)
            {
                PrimaryKey = row.GetPrimaryKey();
                Attribute  = (row as Row).AttributeColumns;
            }
            else
            {
                PrimaryKey = new PrimaryKey();
                Attribute  = new AttributeColumns();
            }
        }
コード例 #27
0
        private void CreateTable(OTSClient client, String tableName)
        {
            foreach (var tableItem in client.ListTable(new ListTableRequest()).TableNames)
            {
                client.DeleteTable(new DeleteTableRequest(tableItem));
            }
            var primaryKeySchema = new PrimaryKeySchema();

            primaryKeySchema.Add(COLUMN_GID_NAME, ColumnValueType.Integer);
            primaryKeySchema.Add(COLUMN_UID_NAME, ColumnValueType.Integer);
            var tableMeta          = new TableMeta(tableName, primaryKeySchema);
            var reservedThroughput = new CapacityUnit(0, 0);
            var request            = new CreateTableRequest(tableMeta, reservedThroughput);
            var response           = OTSClient.CreateTable(request);

            // 创建表只是提交请求,OTS创建表需要一段时间,这里是简单的sleep,请根据实际逻辑修改
            WaitForTableReady();
        }
コード例 #28
0
        public IEnumerable <Row> GetRangeIterator(
            string tableName,
            GetRangeDirection direction,
            PrimaryKey inclusiveStartPrimaryKey,
            PrimaryKey exclusiveEndPrimaryKey,
            CapacityUnit consumedCapacityUnitCounter,
            HashSet <string> columnsToGet = null,
            int?count = null,
            IColumnCondition condition = null)
        {
            int?leftCount = count;

            if (leftCount != null && leftCount < 0)
            {
                throw new OTSClientException("the value of count must be larger than 0");
            }

            PrimaryKey nextStartPrimaryKey = inclusiveStartPrimaryKey;

            while (nextStartPrimaryKey != null)
            {
                var request = new GetRangeRequest(
                    tableName, direction, nextStartPrimaryKey, exclusiveEndPrimaryKey,
                    columnsToGet, leftCount, condition);

                var response = GetRange(request);
                consumedCapacityUnitCounter.Read += response.ConsumedCapacityUnit.Read;
                nextStartPrimaryKey = response.NextPrimaryKey;

                foreach (var rowData in response.RowDataList)
                {
                    yield return(rowData);
                }

                if (leftCount != null)
                {
                    leftCount -= response.RowDataList.Count;
                    if (leftCount <= 0)
                    {
                        break;
                    }
                }
            }
        }
コード例 #29
0
        private void CreateAutoIncrementColumnTable(PrimaryKeySchema schema)
        {
            var tableMeta = new TableMeta(TestTableName, schema);

            var tableOptions = new TableOptions
            {
                MaxVersions = 10,
                TimeToLive  = -1
            };
            var reservedThroughput = new CapacityUnit(0, 0);

            var request = new CreateTableRequest(tableMeta, reservedThroughput)
            {
                TableOptions = tableOptions
            };

            OTSClient.CreateTable(request);

            WaitForTableReady();
        }
コード例 #30
0
        public void UpdateTableAndThenDescribe()
        {
            string tableName   = "update_table_and_then_describe";
            var    primaryKeys = new PrimaryKeySchema
            {
                { "PK0", ColumnValueType.String },
                { "PK1", ColumnValueType.Integer }
            };

            var tableMeta          = new TableMeta(tableName, primaryKeys);
            var reservedThroughput = new CapacityUnit(0, 0);

            var tableOption = new TableOptions
            {
                MaxVersions = 1,
                TimeToLive  = -1
            };


            var request1 = new CreateTableRequest(tableMeta, reservedThroughput)
            {
                TableOptions = tableOption
            };

            var response1 = OTSClient.CreateTable(request1);

            WaitBeforeUpdateTable();

            var request2 = new UpdateTableRequest(tableName)
            {
                TableOptions = tableOption
            };

            var response2 = OTSClient.UpdateTable(request2);

            OTSClient.DeleteTable(new DeleteTableRequest(tableName));

            Assert.AreEqual(0, response2.ReservedThroughputDetails.NumberOfDecreasesToday);
            Assert.AreEqual(0, response2.ReservedThroughputDetails.CapacityUnit.Read);
            Assert.AreEqual(0, response2.ReservedThroughputDetails.CapacityUnit.Write);
        }
コード例 #31
0
 public decimal CheckAvailableCapacity(string customer, DateTime validFrom, DateTime validTo, decimal quantity,
     CapacityUnit unit)
 {
     return quantity/2;
 }