• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Uniform Query Framework for Relational and NoSQL Databases

    2017-03-13 05:47:03KaranjekarandChandak

    J.B. Karanjekar and M.B. Chandak

    1 Introduction

    The rise of cloud computing and Web 2.0 has opened an ongoing debate regarding the pros and cons of using traditional Relational Database Management Systems or document and key-value based NoSQL (Not- Only SQL) implementations. While the NoSQL databases are being embraced at rapid pace, no one is rejecting the relational databases just yet. What has helped NoSQL databases gain the popularity is its ability to scale out horizontally which would not have been possible without cloud computing. Amazon’s Elastic Compute Cloud (EC2) on the AWS platform was released in 2006 and took advantage of low-cost servers and high-bandwidth networks first offered by Grid and Utility computing methods [Foote, (2017)]. The merits of reliability, scalability and accessibility of data quickly led the public to see the values of using Infrastructure-as-a-Service over dedicated or shared hosting solutions, and several copycat companies have sprung up in recent years as a result.

    For database administrators, the challenge has become choosing which among a wide variety of emerging database types to implement when hosting in the cloud. The relational model has its advantages in documentation, simplicity, familiarity, data integrity and reliability. SQL implementations in the cloud are capable of far more complex queries and aggregates than other solutions [Cattell, (2010)]. They support transactions to ensure only atomic changes are made to your data while keeping a single master copy by which all other copies replicate. The drawbacks come when a developer needs to scale outward across multiple servers. Standard RDBMS’s have trouble with efficiently expanding a database due to their inherent complexity of organization [DeWitt;Floratou; Patel; Teletia; Zhang (2012)].

    On the other hand, SQL implementations are either key-value based, columnar or document-based and have grown in popularity because of their ease of scalability.NoSQL implementations are based on entities and support many of the functions of RDBMS such as sorting, indexing, projecting and querying but are not as reliable or effective when using complex database models. Transactions that guarantee atomic consistency are not supported and updating the database across multiple entities is an eventual process. Joins and ACID guarantees are traded off in favour of transaction speed.Scalability is where NoSQL earns its edge wherein quick ability to scale out or shrink the database allows administrators to have flexibility to meet their requirements [Chi; Pierre;Wei (2012)].

    One of the challenges faced by NoSQL database family is lack of standards in NoSQL space. For so many years before NoSQL gained momentum, there was just one query language that was good enough for all the databases. Now there are many flavours trying to establish their own standards. Through this paper we are presenting a framework with which traditional SQL style of query mechanism can be implemented for RDBMS and NoSQL database systems. This framework also allows users to query different databases through a single query and perform operations such as joins, aggregation, nested queries and filters.

    In this paper we are focusing on providing a uniform query framework for four data storage implementations which are MySQL, MongoDB, Cassandra and CSV files.MySQL has become one of the most popular open-source implementations of RDBMS for online applications. MySQL is highly efficient with complex structured data models and queries. MongoDB is currently the most popular NoSQL solution largely because of its simplicity of use and efficiency in clustering data. Unstructured data such as that gathered by social media websites is presumed to be best handled by NoSQL implementations. Cassandra is a massively scalable columnar NoSQL database which provides users the ability to store large amounts structured and semi-structured data.Cassandra’s ability to scale out across multiple data centers is what make companies turn to Cassandra to store their data in the cloud.

    2 Related work

    The comparison between traditional RDBMS and NoSQL database has been widely studied in the distributed systems and database communities. While RDBMS has SQL,there are many different mechanisms developed to retrieve data from NoSQL databases.For instance, Cassandra provides a python based cqlsh utility [Cqlsh] as well as libraries and modules for different languages such as Python, JAVA, Go, C++, etc. [Cassandra Client Drivers]. Similarly, MongoDB has the mongo shell to query data and also drivers and client libraries for almost all popular programming languages [MongoDB Drivers].MongoDB also provides connectors for Hadoop.

    However, the query language used by these databases is different. MySQL uses SQL,Cassandra uses Cassandra Query Language (CQL) and MongoDB uses its own JSON query syntax (representing queries as JSON). No doubt there are tremendous advantages and convincing reasons why these databases use these different query languages but one question does come up again and again why there is no native support for a standard query language.

    Couchbase community has developed a database query language called N1QL [N1QL]which extends the SQL for JSON objects. However, it does not support columnar database like Cassandra. As a result, there is a need for a uniform framework for a standard query mechanism for RDBMS as well as NoSQL databases.

    3 Architecture

    The main component of the architecture (Fig. 1) is the framework layer that provides the management framework for the entire setup. The various database systems should be connected to the framework layer. The nodes of any particular database systems can be added and removed from the setup without impacting other database systems.

    Figure 1: System architecture

    The framework layer is a dynamic data management system. It contains many of the components that comprise a typical database management system but it deliberately omits components like storage of data and algorithms to process the data from storage. It is intentionally kept out of the business of storing data as it is only meant for mediating between different data storage and processing engines. It is responsible for maintaining metadata, accepting requests from clients, processing the queries, and sending the results back to the client.

    To understand the architecture in detail we will discuss about connections adapters,schema discovery, query parsing and optimization in following sections.

    3.1 Connection adapters

    The framework layer maintains the connection configuration for all the databases in the setup as shown in Fig. 2. It is stored in the form of JSON document which contains connection details for the database, relevant schemas/keyspaces and the schema factory for Apache Calcite [Apache Calcite]. A schema factory for a given database system initializes a schema for that system in the framework. At the initialization of the framework, these adapters are used for database connections and schema initializations.

    Figure 2: Sample configuration file for MySQL

    3.2 Schema discovery

    The framework uses Apache Calcite for schema discovery [Apache Calcite]. When we define the connection adapters, the schema factory and connection details are used to scan the tables available in that data source. When a query is parsed and it is planned to use certain tables, Calcite reads those tables and performs required operations.

    We are using connection adapters and schema factories for Cassandra, CSV, MongoDB and MySQL. MySQL adapter uses JDBC schema factory which is powered by Apache Avatica [Apache Avatica].

    To elaborate how schema discovery takes place let’s take an example of CSV schema factory. When the schema factory is initialized with details of CSV model, it initializes a schema object using the path of the directory where CSV files are located. The jobs of this schema object is to produce a list of tables. The schema scans the directory and finds all files whose name ends with “.csv” and creates tables for them. The table objects in turn implement Calcite’s “Table” interface. This interfaces reads the data from CSV files when a query is parsed and data is to be fetched from these files.

    3.3 Query flow

    A big advantage of the framework is its support for the industry-standard SQL query language. It does not matter what query retrieval mechanism the underlying data source supports. The SQL query is first received by the framework layer as shown in Fig. 3 which then parses it, optimizes it, and identifies the downstream databases that are required to process the query. Once the databases are identified, the “Table” interface in Calcite corresponding to those databases read the portion of the data that is required to fulfil the query. When the data is read from individual nodes, the framework layer performs final processing on the data and streams the result back to the client.

    Figure 3: Query flow

    3.4 Query parsing and optimization

    The framework layer uses Calcite, an open source framework, to parse incoming queries[Apache Calcite]. When the query first comes to Calcite, it parses the query and converts into relational algebra. The output of the parser component is a language agnostic,computer-friendly logical plan that represents the query.

    When it comes to reading a table, the “Table” interface we talked about in sessions 3.2 and 3.3 would work fine for small and moderate sized tables. However, if a table has a hundred columns and a million rows, we would not like to fetch all the data for every query. We would want to optimize the operation by finding an efficient way to access the required data. The optimization is achieved by applying planner rules that transform the query based on its relational algebra. Calcite applies the rules on the relational algebra of the query in order to transform it into a form that has low cost.

    To elaborate query optimization with an example, consider the following query which exhibits federated join of a table named “weekly_sales” from MySQL and another named“stores” from Cassandra.

    SELECT c a."st or e_t ype", SUM(my."weekl y_sal es")

    FROM "mysql"."weekl y_sal es" my, "c assandr a"."st or es" c a

    WHERE my."st or e_number" = c a."st or e_number"

    AND my."week_dat e" = '2011-11-25'

    GROUP BY ca."st or e_t ype";

    After parsing, the query plan would look like as shown in Fig. 4 where the data from both the sources would be joined and Filter operation would be performed on the combined data.

    Figure 4: Execution plan before optimization

    Above query plan produces the result as expected but the challenge that Calcite helps in overcoming when joining two different data sources is the optimization using transformation rules or the planner rules. We want to achieve optimization wherein the query produces the correct result and does it as efficiently as possible with lower cost.

    When the query transformation rules are applied, the plan changes as shown in Fig 5. In this example the filter is pushed to MySQL database before the join. There are two transformation rules that come into play here. One is you can push a filter into an input of an inner join if the filter does not reference columns from the other input. And the second is you can push the filter down to the data source if the data source is independently able to execute the filters.

    Figure 5: Execution plan after optimization

    Calcite optimizes queries by repeatedly applying planner rules to a relational expression.A cost model guides the process, and the planner engine generates an alternative expression that has the same semantics as the original but a lower cost.

    4 Data model

    Keeping in view the strengths and weaknesses of relational and NoSQL databases, we are using both highly structured data model and also semi-unstructured data model. For structured data we are using historical sales data released by Walmart for 45 of their stores located in different regions [Walmart Store Sales Data] as shown in Fig. 6 and for unstructured data we are using a dataset containing user comments released by Reddit[Reddit Comments May 2015 Data]. We are using a separate AWS EC2 instance for each of the databases (MySQL, Cassandra and MongoDB) and identical sample data is uploaded to each one of them.

    Figure 6: Entity relation model for structured data

    5 Query execution

    In this paper we discuss the core ideas in the context of read-only database operations using SELECT queries with joins, aggregates, filters and nested queries. These operations are passed through Calcite's algebra builder in which every query is translated to relational algebra and represented as a tree of relational operators [Apache Calcite]. The query planner rules transform the expression trees using mathematical identities that preserve semantics. For example, it is valid to push a filter into an input of an inner join if the filter does not reference columns from the other input.

    Optimization of queries take place as mentioned in Section 3.4 by repeatedly applying planner rules to a relational expression. As mentioned in the Schema Discovery section,once the query is parsed and it decides which tables to use from each database, Calcite invokes the table objects to read the data and performs required operations.

    6 Database operations and results

    In the following sections we will see the SQL queries that are used to operate upon the dataset we have uploaded to our databases. The SQL queries would fetch the data from all the databases mentioned earlier namely MySQL, Cassandra, MongoDB and CSV.These queries are similar to real-world queries used to solve practical problems. With this framework, they would perform inter database joins, filters, aggregates and nested queries to get required data.

    6.1 Inter-database join

    To demonstrate inter-database join, we use following query to find out store_number,store_type and the size of the store where sale has gone beyond USD 500,000 in any of the given weeks. In this query, an equijoin is performed between a collection named weekly_sales from MongoDB and a table named stores in MySQL database.

    SELECT my."st or e_number", my."st or e_t ype", my."si ze"

    FROM "mongo"."weekl y_sal es" mo, "mysql"."st or es" my

    WHERE mo."weekl y_sal es" > 500000

    AND mo."st or e_number" = my."st or e_number";

    This query took 286 milliseconds. The schema names mongo and mysql mentioned in the query refer to the schema names with which MongoDB and MySQL databases were configured in the connection adapters respectively.

    6.2 Aggregates

    Aggregate functions such as SUM, AVG, COUNT, MIN, MAX are supported by the framework. In the following example we try to find out the SUM of weekly_sales grouped by store_type on the week ending on 2011-11-25 (a day after Thanksgiving). For this example, we use the combination of Cassandra and MySQL database.

    SELECT c a."st or e_t ype", SUM(my."weekl y_sal es")

    FROM "mysql"."weekl y_sal es" my, "c assandr a"."st or es" c a

    WHERE my."st or e_number" = c a."st or e_number"

    AND my."week_dat e" = '2011-11-25'

    GROUP BY ca."st or e_t ype";

    This query took 363 milliseconds. The schema names cassandra and mysql mentioned in the query refer to the schema names with which Cassandra and MySQL databases were configured in the connection adapters respectively.

    6.3 Filters

    Filter is a relatively simple operation however; we are documenting it in this paper to demonstrate how it can be applied even to CSV files. Almost all database systems support filters but with this framework, it can be applied to CSV files too with the WHERE clause.

    SELECT *

    FROM "csv"."weekl y_sal es"

    WHERE "weekl y_sal es" > 500000.0;

    In this example we are filtering weekly_sales greater than USD 500,000. This query took 433 milliseconds. The schema name csv refers to the schema name with which CSV file is configured in the connection adapter.

    6.4 Nested queries

    The nested queried are supported as shown below. In this example we try to find out the difference of weekly_sales between type A and type B stores on the special holiday weeks.

    SELECT a - b

    FROM (SELECT SUM(CAST(csv."weekl y_sal es" AS FLOAT)) AS a

    FROM "csv"."weekl y_sal es" csv,

    "mongo"."st or es" mo

    WHERE mo."st or e_number" = CAST(csv."st or e_number" AS INT)

    AND c sv."hol i day" = 'TRUE'

    AND mo."st or e_t ype" = 'A') AS x,

    (SELECT SUM(CAST(csv."weekl y_sal es" AS FLOAT)) AS b

    FROM "csv"."weekl y_sal es" csv,

    "mongo"."st or es" mo

    WHERE mo."st or e_number" = CAST(csv."st or e_number" AS INT)

    AND c sv."hol i day" = 'TRUE'

    AND mo."st or e_t ype" = 'B') AS y;

    This query took 2242 milliseconds. In this query, the sub-queries find out the sum of weekly_sales for a given store_type on special holiday weeks. The output of the subqueries is used to find the difference in sales. The two tables used in this query come from two different databases. The holiday data comes from CSV whereas store_type comes from MongoDB.

    You may also notice that we are using CAST function to convert store_number and weekly_sales into INT and FLOAT respectively. This is because these columns come from CSV where the data type is not explicitly defined and every column is considered TEXT by default. Thus, casting them to required data type is necessary for joins and aggregate functions.

    6.5 Queries on semi-structured data

    A mentioned earlier, we are using the dataset containing user comments released by Reddit as semi structured data. It is a single database table containing information about the user and the comment that he has logged. This data is loaded in all four database systems in question namely MongoDB, Cassandra, MySQL and CSV.To demonstrate a query on this semi structured data, we will try to find out comments where the string ‘happy people’ is mentioned.

    SELECT *

    FROM ."r eddi t_comment s"

    WHERE "body" LIKE '%happy peopl e%';

    This query works on all the database sources in question when appropriate schema is specified in the query.

    7 Conclusions

    Considering above data operations using SQL queries it has been demonstrated that a uniform query framework has been developed to fetch data from multiple heterogeneous database systems. These systems can be traditional relational databases, or NoSQL systems or even flat files such as CSV. With this framework, a layer of abstraction is provided and the user does not have to worry about the complexities of the underlying database system and the query mechanism used natively on that system. The user can directly use the SQL statements to fetch data from various sources.

    Database operations such as filtering, aggregates, joins and nested queries are easily and seamlessly possible with this framework across database systems. It should also be noted in all the above examples that some of the operations which are not natively allowed in NoSQL databases can be carried out in this framework. For instance, Cassandra does not allow filtering by default. However, with this framework filtering can be performed without any issue. Similarly, MongoDB does not allow joins. However, when we query MongoDB collections using this framework, we can easily join them not only with other collections but also with objects from other databases.

    There is a scope for analysis and research on the performance aspect of the framework and a comparative study against the individual database systems is needed.

    Apache Avatica Documentation: https://calcite.apache.org/avatica/docs/

    Apache Calcite Documentation: https://calcite.apache.org/docs/

    Cassandra Client Drivers. Cassandra Documentation:http://cassandra.apache.org/doc/latest/getting_started/drivers.html

    Cattell, R. (2010). Scalable SQL and NoSQL Data Stores. SIGMOD Record 39, 16 pages. DOI:10.1145/1978915.1978919

    Chi, C.; Pierre, G.; Wei, Z. (2012) Scalable Join Queries in Cloud Data Stores. 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (2012),Pages 547-555. DOI:10.1109/CCGrid.2012.28

    Cqlsh: CQL shell. Cassandra Documentation:http://cassandra.apache.org/doc/latest/tools/cqlsh.html

    DeWitt, D.; Floratou, A.; Patel, J.; Teletia, N.; Zhang, D. (2012) Can the Elephants Handle the NoSQL Onslaught? Proceedings of the VLDB Endowment 5, 12 pages.

    Foote, K. D. (2017). A Brief History of Cloud Computing:http://www.dataversity.net/brief-history-cloud-computing/

    MongoDB Drivers and Client Libraries. MongoDB Documentation:https://docs.mongodb.com/manual/applications/drivers/

    N1QL: What is N1QL? Couchbase: https://www.couchbase.com/products/n1ql

    Reddit Comments May 2015 Data: https://www.kaggle.com/reddit/reddit-commentsmay-2015

    Walmart Store Sales Data: https://www.kaggle.com/c/walmart-recruiting-store-salesforecasting/data

    欧美97在线视频| 亚洲色图综合在线观看| 男女边吃奶边做爰视频| 亚洲av福利一区| 777米奇影视久久| 久久久精品94久久精品| 久久久精品94久久精品| 天堂8中文在线网| 国产日韩一区二区三区精品不卡 | 一级,二级,三级黄色视频| 久久久久久伊人网av| 免费观看性生交大片5| 麻豆精品久久久久久蜜桃| av专区在线播放| 亚洲成色77777| 国产熟女午夜一区二区三区 | 日韩一区二区三区影片| 18+在线观看网站| 美女大奶头黄色视频| 国产男人的电影天堂91| 91精品国产国语对白视频| 精品少妇内射三级| 夜夜骑夜夜射夜夜干| 女性被躁到高潮视频| 国产伦精品一区二区三区四那| 欧美激情国产日韩精品一区| 五月开心婷婷网| 国产黄色免费在线视频| 色吧在线观看| 天堂8中文在线网| 热99国产精品久久久久久7| 国产精品蜜桃在线观看| 人人妻人人看人人澡| 国产有黄有色有爽视频| 午夜av观看不卡| 一本色道久久久久久精品综合| 久久99热这里只频精品6学生| 亚洲人与动物交配视频| 妹子高潮喷水视频| 日韩视频在线欧美| 亚洲精华国产精华液的使用体验| 又黄又爽又刺激的免费视频.| 大又大粗又爽又黄少妇毛片口| 国产伦精品一区二区三区四那| 久久久久国产网址| 免费观看av网站的网址| 男的添女的下面高潮视频| 欧美日韩在线观看h| 亚洲国产精品专区欧美| 亚洲内射少妇av| av国产精品久久久久影院| av不卡在线播放| 三级国产精品片| 伊人久久国产一区二区| 80岁老熟妇乱子伦牲交| 看十八女毛片水多多多| 男女免费视频国产| 国产午夜精品久久久久久一区二区三区| 久久久久久久久大av| 日本爱情动作片www.在线观看| 狂野欧美激情性bbbbbb| 99久久人妻综合| 少妇的逼水好多| 天天躁夜夜躁狠狠久久av| 欧美少妇被猛烈插入视频| 乱系列少妇在线播放| 人妻 亚洲 视频| kizo精华| 2022亚洲国产成人精品| 亚洲,一卡二卡三卡| 亚洲精品国产av蜜桃| 国产成人freesex在线| 69精品国产乱码久久久| 亚洲国产最新在线播放| 日韩欧美一区视频在线观看 | 免费观看的影片在线观看| 99热这里只有是精品50| 亚洲av国产av综合av卡| 9色porny在线观看| 婷婷色av中文字幕| 国产av精品麻豆| 亚洲一级一片aⅴ在线观看| 春色校园在线视频观看| 少妇被粗大的猛进出69影院 | av视频免费观看在线观看| 日韩av不卡免费在线播放| 国产精品一区二区在线不卡| 中文字幕亚洲精品专区| 夫妻性生交免费视频一级片| 亚洲内射少妇av| 免费黄色在线免费观看| 尾随美女入室| 亚洲伊人久久精品综合| 国产精品久久久久成人av| 99热这里只有是精品50| 亚洲精品,欧美精品| 久久99热这里只频精品6学生| 亚洲精品国产av蜜桃| 亚洲成人av在线免费| 我的女老师完整版在线观看| 久久精品夜色国产| 国产成人一区二区在线| 国产成人91sexporn| 中文字幕精品免费在线观看视频 | 亚洲,一卡二卡三卡| 欧美成人午夜免费资源| 亚洲欧美一区二区三区黑人 | 欧美激情极品国产一区二区三区 | 在线观看免费日韩欧美大片 | 精品99又大又爽又粗少妇毛片| 色94色欧美一区二区| 亚洲综合色惰| 熟女人妻精品中文字幕| 大香蕉久久网| 成人国产av品久久久| 久久久久久人妻| 欧美日韩综合久久久久久| 国产一区亚洲一区在线观看| 在线观看www视频免费| 大香蕉久久网| 国产男女内射视频| 狠狠精品人妻久久久久久综合| 国产精品一区二区在线观看99| 丰满人妻一区二区三区视频av| 水蜜桃什么品种好| 国产欧美亚洲国产| 少妇的逼好多水| 久久人人爽人人片av| 99re6热这里在线精品视频| 久久久久精品久久久久真实原创| 99久久综合免费| 国产日韩欧美在线精品| 久久99蜜桃精品久久| 91久久精品国产一区二区成人| 欧美成人午夜免费资源| 男女啪啪激烈高潮av片| 久久 成人 亚洲| 老女人水多毛片| 在线看a的网站| 97在线视频观看| 在线观看www视频免费| 女性生殖器流出的白浆| 亚洲自偷自拍三级| 欧美3d第一页| 插逼视频在线观看| 亚洲欧洲精品一区二区精品久久久 | 成人特级av手机在线观看| 另类精品久久| 久久久久久久久久人人人人人人| 欧美国产精品一级二级三级 | 女人精品久久久久毛片| 51国产日韩欧美| 免费看光身美女| 成人国产av品久久久| 欧美一级a爱片免费观看看| 91午夜精品亚洲一区二区三区| 偷拍熟女少妇极品色| 久久精品国产亚洲av天美| 亚洲av日韩在线播放| 噜噜噜噜噜久久久久久91| 亚洲国产成人一精品久久久| 在线天堂最新版资源| a级毛片免费高清观看在线播放| 亚洲精品456在线播放app| 国产精品一区二区在线观看99| 久久久国产一区二区| 天堂俺去俺来也www色官网| 精品酒店卫生间| 精品午夜福利在线看| 国产日韩欧美视频二区| 最近中文字幕2019免费版| 国产精品免费大片| 国产爽快片一区二区三区| 久久99一区二区三区| 97在线视频观看| 在线亚洲精品国产二区图片欧美 | 一级a做视频免费观看| 在现免费观看毛片| 十八禁网站网址无遮挡 | 人妻 亚洲 视频| 69精品国产乱码久久久| 丝袜脚勾引网站| 内射极品少妇av片p| 99久久中文字幕三级久久日本| 狂野欧美白嫩少妇大欣赏| 黄色一级大片看看| 欧美另类一区| av在线app专区| 午夜日本视频在线| 人妻人人澡人人爽人人| 精品少妇黑人巨大在线播放| 亚洲一级一片aⅴ在线观看| 国产视频内射| 日本黄大片高清| 国产视频首页在线观看| 自线自在国产av| 成年美女黄网站色视频大全免费 | 亚洲国产欧美日韩在线播放 | 99热这里只有是精品在线观看| 老司机影院毛片| 一级毛片电影观看| 亚洲av成人精品一区久久| 国产黄频视频在线观看| 一级毛片我不卡| 18+在线观看网站| 亚洲国产精品专区欧美| 嘟嘟电影网在线观看| 欧美xxⅹ黑人| 好男人视频免费观看在线| 午夜免费男女啪啪视频观看| 大码成人一级视频| 亚洲精品乱码久久久v下载方式| 美女大奶头黄色视频| 91久久精品国产一区二区成人| 国产欧美日韩精品一区二区| 女人精品久久久久毛片| 中文字幕制服av| 91久久精品电影网| 王馨瑶露胸无遮挡在线观看| 亚洲无线观看免费| 高清av免费在线| 亚洲人成网站在线播| 久久久久久久久久久久大奶| 99九九在线精品视频 | 国产精品久久久久久av不卡| 熟女av电影| 久久久久久久久大av| 啦啦啦啦在线视频资源| 伊人亚洲综合成人网| 美女福利国产在线| 一个人看视频在线观看www免费| 女人精品久久久久毛片| 亚洲精品国产av蜜桃| a级毛片在线看网站| 王馨瑶露胸无遮挡在线观看| 啦啦啦中文免费视频观看日本| 国产色爽女视频免费观看| 欧美日韩在线观看h| 色婷婷久久久亚洲欧美| 国产高清不卡午夜福利| av在线播放精品| 久久精品熟女亚洲av麻豆精品| 看非洲黑人一级黄片| 51国产日韩欧美| 人体艺术视频欧美日本| 91久久精品国产一区二区成人| 另类亚洲欧美激情| 一本色道久久久久久精品综合| 极品教师在线视频| 免费高清在线观看视频在线观看| 中文乱码字字幕精品一区二区三区| 亚洲中文av在线| 久久ye,这里只有精品| 精品亚洲成国产av| 久久热精品热| 中文乱码字字幕精品一区二区三区| 五月开心婷婷网| 国产精品一区二区在线不卡| 男人添女人高潮全过程视频| 亚洲精品乱久久久久久| 国产日韩欧美亚洲二区| 精品国产一区二区久久| 久久精品国产亚洲网站| av网站免费在线观看视频| 18禁在线无遮挡免费观看视频| 国产日韩欧美在线精品| 最近最新中文字幕免费大全7| 如何舔出高潮| 日韩一本色道免费dvd| 日韩免费高清中文字幕av| 伊人久久精品亚洲午夜| av一本久久久久| videos熟女内射| 日韩中字成人| 欧美xxxx性猛交bbbb| 国产有黄有色有爽视频| 亚洲国产最新在线播放| .国产精品久久| 观看美女的网站| 精品久久久噜噜| 亚洲美女视频黄频| 日本黄色片子视频| 91午夜精品亚洲一区二区三区| 春色校园在线视频观看| 最近中文字幕2019免费版| av国产精品久久久久影院| 国产午夜精品一二区理论片| 2018国产大陆天天弄谢| 丁香六月天网| 桃花免费在线播放| 中文字幕亚洲精品专区| 欧美日韩精品成人综合77777| 久久人人爽人人片av| 男女免费视频国产| 亚洲av免费高清在线观看| 成人亚洲精品一区在线观看| 久久国产亚洲av麻豆专区| 久久久久久久大尺度免费视频| a级毛片在线看网站| 国内精品宾馆在线| 肉色欧美久久久久久久蜜桃| 美女xxoo啪啪120秒动态图| 国产淫语在线视频| 少妇的逼好多水| 老女人水多毛片| 精品国产一区二区久久| 久久精品国产亚洲av天美| 亚洲熟女精品中文字幕| 国产精品伦人一区二区| 久久99精品国语久久久| 免费在线观看成人毛片| 永久免费av网站大全| 一区二区三区乱码不卡18| 少妇高潮的动态图| 黄色毛片三级朝国网站 | 人妻人人澡人人爽人人| 成人免费观看视频高清| 一级毛片久久久久久久久女| 国产成人一区二区在线| 亚洲精品国产色婷婷电影| 又黄又爽又刺激的免费视频.| av福利片在线| 欧美成人精品欧美一级黄| 国产成人精品久久久久久| 99久久综合免费| 黄色一级大片看看| 久久97久久精品| 亚洲国产精品999| 伦理电影免费视频| 大又大粗又爽又黄少妇毛片口| 国产精品国产三级国产av玫瑰| 国产深夜福利视频在线观看| 精品一区二区免费观看| 中文在线观看免费www的网站| 草草在线视频免费看| 如何舔出高潮| 少妇丰满av| 极品教师在线视频| 精品国产乱码久久久久久小说| 超碰97精品在线观看| 亚洲精品久久久久久婷婷小说| a 毛片基地| 男女免费视频国产| 曰老女人黄片| 在线观看av片永久免费下载| 亚洲四区av| 一级毛片黄色毛片免费观看视频| av国产久精品久网站免费入址| 国产精品.久久久| 嫩草影院新地址| 久久av网站| 亚洲av电影在线观看一区二区三区| 午夜视频国产福利| 伦理电影免费视频| 亚洲国产精品999| 成人漫画全彩无遮挡| 97超碰精品成人国产| 国产男女内射视频| 人人妻人人看人人澡| 激情五月婷婷亚洲| 日韩成人伦理影院| 久久综合国产亚洲精品| 99re6热这里在线精品视频| 在线观看国产h片| 赤兔流量卡办理| 国产亚洲欧美精品永久| 欧美97在线视频| 黑人高潮一二区| 久久久国产欧美日韩av| 亚洲精品色激情综合| 国产乱人偷精品视频| 99热国产这里只有精品6| 国产精品伦人一区二区| 大话2 男鬼变身卡| 国产成人免费无遮挡视频| 80岁老熟妇乱子伦牲交| 只有这里有精品99| 成人无遮挡网站| 欧美激情国产日韩精品一区| 国产亚洲91精品色在线| 亚洲精品中文字幕在线视频 | 啦啦啦在线观看免费高清www| 高清毛片免费看| 日本与韩国留学比较| 在现免费观看毛片| 国产成人freesex在线| 777米奇影视久久| 久久久久久久大尺度免费视频| 伊人亚洲综合成人网| 最后的刺客免费高清国语| 内射极品少妇av片p| 又粗又硬又长又爽又黄的视频| 99热这里只有精品一区| 伊人亚洲综合成人网| 最后的刺客免费高清国语| 久久亚洲国产成人精品v| 爱豆传媒免费全集在线观看| 亚洲国产成人一精品久久久| 亚洲一区二区三区欧美精品| 春色校园在线视频观看| 亚洲欧美日韩东京热| 亚洲av福利一区| 中文字幕免费在线视频6| 国产女主播在线喷水免费视频网站| 日日摸夜夜添夜夜爱| 国产在线男女| 一级片'在线观看视频| 中文字幕人妻熟人妻熟丝袜美| 日本午夜av视频| 水蜜桃什么品种好| 一级毛片黄色毛片免费观看视频| 成年人午夜在线观看视频| a级毛片在线看网站| 久久精品国产亚洲网站| 精品久久久久久久久亚洲| 亚洲精品中文字幕在线视频 | 少妇熟女欧美另类| 亚洲美女黄色视频免费看| 国产精品伦人一区二区| 国产一区二区在线观看av| 亚洲精品一区蜜桃| 亚洲欧洲国产日韩| 男人狂女人下面高潮的视频| 亚洲,欧美,日韩| 精品人妻熟女毛片av久久网站| 精品久久久久久电影网| 国产中年淑女户外野战色| 久久女婷五月综合色啪小说| 精品久久国产蜜桃| 日本91视频免费播放| 3wmmmm亚洲av在线观看| 亚洲人与动物交配视频| 成年美女黄网站色视频大全免费 | 国模一区二区三区四区视频| 大香蕉久久网| 卡戴珊不雅视频在线播放| 日日摸夜夜添夜夜添av毛片| 日本猛色少妇xxxxx猛交久久| 一级爰片在线观看| 一本—道久久a久久精品蜜桃钙片| 中文在线观看免费www的网站| 久久久久精品久久久久真实原创| 丝袜在线中文字幕| 国产黄频视频在线观看| 欧美日韩av久久| 午夜福利在线观看免费完整高清在| 少妇猛男粗大的猛烈进出视频| 免费大片黄手机在线观看| 校园人妻丝袜中文字幕| 蜜桃在线观看..| 国产一区二区在线观看av| 国产在线一区二区三区精| 美女主播在线视频| 国产精品一二三区在线看| 成人毛片a级毛片在线播放| 亚洲综合精品二区| 在线天堂最新版资源| 2021少妇久久久久久久久久久| 亚洲电影在线观看av| 啦啦啦视频在线资源免费观看| 国产伦在线观看视频一区| 久久综合国产亚洲精品| 欧美激情国产日韩精品一区| 国产高清国产精品国产三级| 97超碰精品成人国产| 久久影院123| 青春草视频在线免费观看| 日韩三级伦理在线观看| videos熟女内射| 国产一区二区在线观看av| 国产精品国产三级国产专区5o| 一级毛片我不卡| 国产av码专区亚洲av| 日日摸夜夜添夜夜爱| 人人妻人人爽人人添夜夜欢视频 | 天堂俺去俺来也www色官网| 日产精品乱码卡一卡2卡三| 97精品久久久久久久久久精品| 亚洲欧美一区二区三区黑人 | 在线亚洲精品国产二区图片欧美 | 十分钟在线观看高清视频www | 午夜福利网站1000一区二区三区| 最近手机中文字幕大全| www.av在线官网国产| a级毛片免费高清观看在线播放| 久久精品国产a三级三级三级| 又大又黄又爽视频免费| 亚洲成人一二三区av| 国产极品天堂在线| 亚洲欧美一区二区三区国产| 日韩欧美 国产精品| 亚洲国产精品成人久久小说| 国产熟女欧美一区二区| 亚洲婷婷狠狠爱综合网| 黑丝袜美女国产一区| 国产免费视频播放在线视频| 中文资源天堂在线| a级毛片免费高清观看在线播放| h视频一区二区三区| 少妇的逼好多水| 免费人成在线观看视频色| 大码成人一级视频| 一个人免费看片子| 亚洲精品乱久久久久久| 亚洲av成人精品一区久久| 亚洲自偷自拍三级| 国产成人精品一,二区| 亚洲怡红院男人天堂| av线在线观看网站| www.色视频.com| 新久久久久国产一级毛片| 一级毛片 在线播放| 丁香六月天网| 久久影院123| 亚洲成人av在线免费| 亚洲人与动物交配视频| 一区二区av电影网| 80岁老熟妇乱子伦牲交| 毛片一级片免费看久久久久| 天天操日日干夜夜撸| 女的被弄到高潮叫床怎么办| 亚州av有码| 日韩成人伦理影院| 最近手机中文字幕大全| 亚洲美女黄色视频免费看| 久久久a久久爽久久v久久| 丰满迷人的少妇在线观看| 亚洲成人av在线免费| 99热全是精品| 黄片无遮挡物在线观看| 国产精品麻豆人妻色哟哟久久| 国产亚洲午夜精品一区二区久久| 看十八女毛片水多多多| 欧美xxxx性猛交bbbb| 搡女人真爽免费视频火全软件| 黄色欧美视频在线观看| 中文字幕av电影在线播放| 两个人的视频大全免费| 国产欧美日韩一区二区三区在线 | a 毛片基地| 久久精品久久久久久噜噜老黄| 精品一品国产午夜福利视频| 啦啦啦视频在线资源免费观看| 91久久精品电影网| 自线自在国产av| a级毛片免费高清观看在线播放| 黄色日韩在线| 午夜激情福利司机影院| 女人精品久久久久毛片| 高清视频免费观看一区二区| 2021少妇久久久久久久久久久| 亚洲熟女精品中文字幕| 日韩电影二区| 国产成人a∨麻豆精品| 精品人妻偷拍中文字幕| 高清在线视频一区二区三区| 成人18禁高潮啪啪吃奶动态图 | 免费人妻精品一区二区三区视频| 91成人精品电影| 成人漫画全彩无遮挡| 天堂中文最新版在线下载| 久热久热在线精品观看| 精品久久国产蜜桃| .国产精品久久| 国产乱来视频区| 久久久久视频综合| 免费大片黄手机在线观看| 精品人妻熟女av久视频| 99久久精品热视频| 亚洲国产精品999| 亚洲av免费高清在线观看| 少妇被粗大猛烈的视频| 欧美变态另类bdsm刘玥| 成人无遮挡网站| 国产一区二区三区av在线| 日韩电影二区| 好男人视频免费观看在线| 在线观看免费日韩欧美大片 | 精品人妻偷拍中文字幕| 97在线人人人人妻| 中国国产av一级| 国产熟女欧美一区二区| 久热久热在线精品观看| 国产精品欧美亚洲77777| 成人亚洲欧美一区二区av| 日韩 亚洲 欧美在线| 国产一区二区在线观看av| 国产成人一区二区在线| 曰老女人黄片| 国产成人91sexporn| 精品少妇黑人巨大在线播放| 黄色视频在线播放观看不卡| 少妇人妻久久综合中文| 亚洲在久久综合| 欧美精品亚洲一区二区| 女人精品久久久久毛片| 亚洲国产日韩一区二区| 少妇 在线观看| 日韩三级伦理在线观看| 五月开心婷婷网| 青春草国产在线视频| 免费播放大片免费观看视频在线观看| 男的添女的下面高潮视频| 国产精品久久久久久久久免| 国产精品欧美亚洲77777| 在线天堂最新版资源| 中文字幕制服av| 在线观看国产h片| 我的老师免费观看完整版| 久久精品国产亚洲av天美| 国产综合精华液| 亚洲av欧美aⅴ国产| 极品少妇高潮喷水抽搐| 亚洲精品久久午夜乱码| 亚洲精品自拍成人|