查詢數(shù)據(jù)
創(chuàng)建表或多元索引的映射關(guān)系后,您可以通過select語句查詢與分析表中數(shù)據(jù)。
關(guān)于select語句的更多信息,請(qǐng)參見查詢數(shù)據(jù)。
前提條件
已初始化Client.。具體操作,請(qǐng)參見初始化OTSClient。
已創(chuàng)建映射關(guān)系。具體操作,請(qǐng)參見創(chuàng)建映射關(guān)系。
注意事項(xiàng)
表格存儲(chǔ).NET SDK從5.0.0版本開始支持SQL查詢功能。使用SQL查詢功能時(shí),請(qǐng)確保獲取了最新的.NET SDK版本。關(guān)于.NET SDK歷史迭代版本的更多信息,請(qǐng)參見.NET SDK歷史迭代版本。
示例
以下示例用于使用select pk0,pk1,col0,col1,date_col,geo_col from test_table limit 20
語句查詢test_table表中數(shù)據(jù)且最多返回20行數(shù)據(jù)。系統(tǒng)會(huì)返回查詢語句的請(qǐng)求類型、返回值Schema、返回結(jié)果等信息。
/// <summary>
/// 查詢數(shù)據(jù)。
/// </summary>
/// <param name="otsClient"></param>
public static void QueryData(OTSClient otsClient)
{
SQLQueryRequest sqlQueryRequest = new SQLQueryRequest("select pk0,pk1,col0,col1,date_col,geo_col from test_table limit 20");
SQLQueryResponse sqlQueryResponse = otsClient.SQLQuery(sqlQueryRequest);
SQLTableMeta sqlTableMeta = sqlQueryResponse.GetSQLResultSet().GetSQLTableMeta();
Console.WriteLine(JsonConvert.SerializeObject(sqlTableMeta.GetSchema()));
ISQLResultSet resultSet = sqlQueryResponse.GetSQLResultSet();
while (resultSet.HasNext())
{
ISQLRow row = resultSet.Next();
Console.WriteLine(row.GetString("pk0") + " , " + row.GetLong("pk1") + " , " + row.GetString("col0") + " , " +
row.GetLong("col1") + " , " + row.GetString("date_col") + " , " + row.GetString("geo_col"));
}
}
常見問題
相關(guān)文檔
如果要加速SQL數(shù)據(jù)查詢和計(jì)算,您可以通過創(chuàng)建二級(jí)索引或者多元索引實(shí)現(xiàn)。更多信息,請(qǐng)參見索引選擇策略和計(jì)算下推。
如果數(shù)據(jù)表的屬性列有增加或刪除,您可以通過
ALTER TABLE
語句同步修改映射表。更多信息,請(qǐng)參見更新映射表屬性列。如果需要查詢表的描述信息,您可以通過
DESCRIBE
語句實(shí)現(xiàn)。更多信息,請(qǐng)參見查詢表的描述信息。如果不再需要使用表或者多元索引的映射關(guān)系,您可以通過
DROP MAPPING TABLE
語句刪除映射關(guān)系。更多信息,請(qǐng)參見刪除映射關(guān)系。如果需要查看表的索引信息,您可以通過
SHOW INDEX
語句實(shí)現(xiàn)。更多信息,請(qǐng)參見查詢索引描述信息。如果需要列出當(dāng)前數(shù)據(jù)庫(kù)中的表名稱列表,您可以通過
SHOW TABLES
語句實(shí)現(xiàn)。更多信息,請(qǐng)參見列出映射表名稱列表。您還可以通過MaxCompute、Spark、Hive或者HadoopMR、函數(shù)計(jì)算、Flink、PrestoDB等計(jì)算引擎實(shí)現(xiàn)表中數(shù)據(jù)的計(jì)算與分析。具體操作,請(qǐng)參見計(jì)算與分析。