当前位置: 首页 > news >正文

广州网站建设建航如何优化网页

广州网站建设建航,如何优化网页,wordpress怎么安装仿复制代码,怎么做购物网站系统文本Doris 在数据导入时提供了强大的数据转换能力,可以简化部分数据处理流程,减少对额外 ETL 工具的依赖。主要支持以下四种转换方式: 列映射:将源数据列映射到目标表的不同列。 列变换:使用函数和表达式对源数据进行实时…

Doris 在数据导入时提供了强大的数据转换能力,可以简化部分数据处理流程,减少对额外 ETL 工具的依赖。主要支持以下四种转换方式:

  • 列映射:将源数据列映射到目标表的不同列。

  • 列变换:使用函数和表达式对源数据进行实时转换。

  • 前置过滤:在列映射和列变换前过滤掉不需要的原始数据。

  • 后置过滤:在列映射和列变换后数据对最终结果进行过滤。

通过这些内置的数据转换功能,可以提高导入效率,并确保数据处理逻辑的一致性。

导入语法​

Stream Load​

通过在 HTTP header 中设置以下参数实现数据转换:

参数说明
columns指定列映射和列变换
where指定后置过滤

注意: Stream Load 不支持前置过滤。

示例:

curl --location-trusted -u user:passwd \-H "columns: k1, k2, tmp_k3, k3 = tmp_k3 + 1" \-H "where: k1 > 1" \-T data.csv \http://<fe_ip>:<fe_http_port>/api/example_db/example_table/_stream_load

Broker Load​

在 SQL 语句中通过以下子句实现数据转换:

子句说明
column list指定列映射,格式为 (k1, k2, tmp_k3)
SET指定列变换
PRECEDING FILTER指定前置过滤
WHERE指定后置过滤

示例:

LOAD LABEL test_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE `test_tbl`(k1, k2, tmp_k3)PRECEDING FILTER k1 = 1SET (k3 = tmp_k3 + 1)WHERE k1 > 1
)
WITH S3 (...);

Routine Load​

在 SQL 语句中通过以下子句实现数据转换:

子句说明
COLUMNS指定列映射和列变换
PRECEDING FILTER指定前置过滤
WHERE指定后置过滤

示例:

CREATE ROUTINE LOAD test_db.label1 ON test_tblCOLUMNS(k1, k2, tmp_k3, k3 = tmp_k3 + 1),PRECEDING FILTER k1 = 1,WHERE k1 > 1...

Insert Into​

Insert Into 可以直接在 SELECT 语句中完成数据转换,使用 WHERE 子句实现数据过滤。

列映射​

列映射用于定义源数据列与目标表列之间的对应关系,能够处理以下场景:

  • 源数据与目标表的列顺序不一致
  • 源数据与目标表的列数量不匹配

调整列顺序​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

目标表有 k1, k2, k3, k4 四列,要实现如下映射:

列1 -> k1
列2 -> k3
列3 -> k2
列4 -> k4

创建目标表​
CREATE TABLE example_table
(k1 INT,k2 STRING,k3 INT,k4 DOUBLE
) ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1,k3,k2,k4" \-T data.csv \-X PUT \http://<fe_ip>:<fe_http_port>/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label_broker
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k3, k2, k4)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k3, k2, k4),
COLUMNS TERMINATED BY ","
FROM KAFKA (...);

查询结果​
mysql> select * from example_table;
+------+-----------+------+------+
| k1   | k2        | k3   | k4   |
+------+-----------+------+------+
|    2 | shanghai  |  200 |  1.2 |
|    4 | chongqing | NULL |  1.4 |
|    3 | guangzhou |  300 |  1.3 |
|    1 | beijing   |  100 |  1.1 |
+------+-----------+------+------+

源文件列数量多于表列数​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

目标表有 k1, k2, k3 三列,而源文件包含四列数据。我们只需要源文件的第1、第2、第4列,映射关系如下:

列1 -> k1
列2 -> k2
列4 -> k3

要跳过源文件中的某些列,只需在列映射时使用任意不存在于目标表的列名。这些列名可以自定义,不受限制,导入时会自动忽略这些列的数据。

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 STRING,k3 DOUBLE
) ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u usr:passwd \-H "column_separator:," \-H "columns: k1,k2,tmp_skip,k3" \-T data.csv \http://<fe_ip>:<fe_http_port>/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label_broker
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(tmp_k1, tmp_k2, tmp_skip, tmp_k3)SET (k1 = tmp_k1,k2 = tmp_k2,k3 = tmp_k3)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, tmp_skip, k3),
PROPERTIES
("format" = "csv","column_separator" = ","
)
FROM KAFKA (...);

注意:示例中的 tmp_skip 可以替换为任意名称,只要这些名称不在目标表的列定义中即可。

查询结果​
mysql> select * from example_table;
+------+------+------+
| k1   | k2   | k3   |
+------+------+------+
|    1 | 100  |  1.1 |
|    2 | 200  |  1.2 |
|    3 | 300  |  1.3 |
|    4 | NULL |  1.4 |
+------+------+------+

源文件列数量少于表列数​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

目标表有 k1, k2, k3, k4, k5 五列,而源文件包含四列数据。我们只需要源文件的第1、第2、第3、第4列,映射关系如下:

列1 -> k1
列2 -> k3
列3 -> k2
列4 -> k4
k5 使用默认值

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 STRING,k3 INT,k4 DOUBLE,k5 INT DEFAULT 2
) ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1,k3,k2,k4" \-T data.csv \http://<fe_ip>:<fe_http_port>/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label_broker
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(tmp_k1, tmp_k3, tmp_k2, tmp_k4)SET (k1 = tmp_k1,k3 = tmp_k3,k2 = tmp_k2,k4 = tmp_k4)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k3, k2, k4),
COLUMNS TERMINATED BY ","
FROM KAFKA (...);

说明:

  • 如果 k5 列有默认值,将使用默认值填充
  • 如果 k5 列是可空列(nullable)但没有默认值,将填充 NULL 值
  • 如果 k5 列是非空列且没有默认值,导入会失败
查询结果​
mysql> select * from example_table;
+------+-----------+------+------+------+
| k1   | k2        | k3   | k4   | k5   |
+------+-----------+------+------+------+
|    1 | beijing   |  100 |  1.1 |    2 |
|    2 | shanghai  |  200 |  1.2 |    2 |
|    3 | guangzhou |  300 |  1.3 |    2 |
|    4 | chongqing | NULL |  1.4 |    2 |
+------+-----------+------+------+------+

列变换​

列变换功能允许用户对源文件中列值进行变换,支持使用绝大部分内置函数。列变换操作通常是和列映射一起定义的,即先对列进行映射,再进行变换。

将源文件中的列值经变换后导入表中​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列,导入映射和变换关系如下:

列1       -> k1
列2 * 100 -> k3
列3       -> k2
列4       -> k4

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 STRING,k3 INT,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, tmp_k3, k2, k4, k3 = tmp_k3 * 100" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, tmp_k3, k2, k4)SET (k3 = tmp_k3 * 100)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, tmp_k3, k2, k4, k3 = tmp_k3 * 100),
COLUMNS TERMINATED BY ","
FROM KAFKA (...);

查询结果​
mysql> select * from example_table;
+------+-----------+-------+------+
| k1   | k2        | k3    | k4   |
+------+-----------+-------+------+
|    1 | beijing   | 10000 |  1.1 |
|    2 | shanghai  | 20000 |  1.2 |
|    3 | guangzhou | 30000 |  1.3 |
|    4 | chongqing |  NULL |  1.4 |
+------+-----------+-------+------+

通过 case when 函数,有条件的进行列变换​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列。对于源数据中 beijing, shanghai, guangzhou, chongqing 分别转换为对应的地区 id 后导入:

列1                  -> k1
列2                  -> k2
列3 进行地区id转换后    -> k3
列4                  -> k4

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 INT,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, k2, tmp_k3, k4, k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k2, tmp_k3, k4)SET (k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, tmp_k3, k4, k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END),
COLUMNS TERMINATED BY ","
FROM KAFKA (...);

查询结果​
mysql> select * from example_table;
+------+------+------+------+
| k1   | k2   | k3   | k4   |
+------+------+------+------+
|    1 |  100 |    1 |  1.1 |
|    2 |  200 |    2 |  1.2 |
|    3 |  300 |    3 |  1.3 |
|    4 | NULL |    4 |  1.4 |
+------+------+------+------+

源文件中的 NULL 值处理​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列。在对地区 id 转换的同时,对于源数据中 k1 列的 null 值转换成 0 导入:

列1                      -> k1
列2 如果为null 则转换成0   -> k2
列3                      -> k3
列4                      -> k4

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 INT,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, tmp_k2, tmp_k3, k4, k2 = ifnull(tmp_k2, 0), k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, tmp_k2, tmp_k3, k4)SET (k2 = ifnull(tmp_k2, 0),k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END)
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, tmp_k2, tmp_k3, k4, k2 = ifnull(tmp_k2, 0), k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END),
COLUMNS TERMINATED BY ","
FROM KAFKA (...);

查询结果​
mysql> select * from example_table;
+------+------+------+------+
| k1   | k2   | k3   | k4   |
+------+------+------+------+
|    1 |  100 |    1 |  1.1 |
|    2 |  200 |    2 |  1.2 |
|    3 |  300 |    3 |  1.3 |
|    4 |    0 |    4 |  1.4 |
+------+------+------+------+

前置过滤​

前置过滤是在数据转换前对原始数据进行过滤的功能,可以提前过滤掉不需要处理的数据,减少后续处理的数据量,提高导入效率。该功能仅支持 Broker Load 和 Routine Load 两种导入方式。 前置过滤有以下应用场景:

  • 转换前做过滤

希望在列映射和转换前做过滤的场景,能够先行过滤掉部分不需要的数据。

  • 过滤列不存在于表中,仅作为过滤标识

比如源数据中存储了多张表的数据(或者多张表的数据写入了同一个 Kafka 消息队列)。数据中每行有一列表名来标识该行数据属于哪个表。用户可以通过前置过滤条件来筛选对应的表数据进行导入。

示例​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

前置过滤条件为:

列1>1,即只导入 列1>1 的数据,其他数据过滤掉。

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 STRING,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k2, k3, k4)PRECEDING FILTER k1 > 1
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, k3, k4),
COLUMNS TERMINATED BY ","
PRECEDING FILTER k1 > 1
FROM KAFKA (...)

查询结果​
mysql> select * from example_table;
+------+------+-----------+------+
| k1   | k2   | k3        | k4   |
+------+------+-----------+------+
|    2 |  200 | shanghai  |  1.2 |
|    3 |  300 | guangzhou |  1.3 |
|    4 | NULL | chongqing |  1.4 |
+------+------+-----------+------+

后置过滤​

后置过滤在数据转换后执行,可以根据转换后的结果进行过滤。

在列映射和转换缺省的情况下,直接过滤​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列,在缺省列映射和转换的情况下,只导入源文件中第 4 列为大于 1.2 的数据行。

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 STRING,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, k2, k3, k4" \-H "where: k4 > 1.2" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k2, k3, k4)where k4 > 1.2
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, k3, k4),
COLUMNS TERMINATED BY ","
WHERE k4 > 1.2;
FROM KAFKA (...)

查询结果​
mysql> select * from example_table;
+------+------+-----------+------+
| k1   | k2   | k3        | k4   |
+------+------+-----------+------+
|    3 |  300 | guangzhou |  1.3 |
|    4 | NULL | chongqing |  1.4 |
+------+------+-----------+------+

对经过列变换的数据进行过滤​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列。在列变换示例中,我们将省份名称转换成了 id。这里我们希望过滤掉 id 为 3 的数据

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 INT,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, k2, tmp_k3, k4, k3 = case tmp_k3 when 'beijing' then 1 when 'shanghai' then 2 when 'guangzhou' then 3 when 'chongqing' then 4 else null end" \-H "where: k3 != 3" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k2, tmp_k3, k4)SET (k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END)WHERE k3 != 3
)
WITH s3 (...); 

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, tmp_k3, k4),
COLUMNS TERMINATED BY ","
SET (k3 = CASE tmp_k3 WHEN 'beijing' THEN 1 WHEN 'shanghai' THEN 2 WHEN 'guangzhou' THEN 3 WHEN 'chongqing' THEN 4 ELSE NULL END
)
WHERE k3 != 3;
FROM KAFKA (...)

查询结果​
mysql> select * from example_table;
+------+------+------+------+
| k1   | k2   | k3   | k4   |
+------+------+------+------+
|    1 |  100 |    1 |  1.1 |
|    2 |  200 |    2 |  1.2 |
|    4 | NULL |    4 |  1.4 |
+------+------+------+------+

多条件过滤​

假设有以下源数据(表头列名仅为方便表述,实际并无表头):

列1,列2,列3,列4
1,100,beijing,1.1
2,200,shanghai,1.2
3,300,guangzhou,1.3
4,\N,chongqing,1.4

表中有 k1,k2,k3,k4 4 列。过滤掉 k1 列为 null 的数据,同时过滤掉 k4 列小于 1.2 的数据

创建示例表​
CREATE TABLE example_table
(k1 INT,k2 INT,k3 STRING,k4 DOUBLE
)
ENGINE = OLAP
DUPLICATE KEY(k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1;

导入数据​
  • Stream Load
curl --location-trusted -u user:passwd \-H "column_separator:," \-H "columns: k1, k2, k3, k4" \-H "where: k1 is not null and k4 > 1.2" \-T data.csv \http://host:port/api/example_db/example_table/_stream_load

  • Broker Load
LOAD LABEL example_db.label1
(DATA INFILE("s3://bucket_name/data.csv")INTO TABLE example_tableCOLUMNS TERMINATED BY ","(k1, k2, k3, k4)where k1 is not null and k4 > 1.2
)
WITH s3 (...);

  • Routine Load
CREATE ROUTINE LOAD example_db.example_routine_load ON example_table
COLUMNS(k1, k2, k3, k4),
COLUMNS TERMINATED BY ","
WHERE k1 is not null and k4 > 1.2
FROM KAFKA (...);

查询结果​
mysql> select * from example_table;
+------+------+-----------+------+
| k1   | k2   | k3        | k4   |
+------+------+-----------+------+
|    3 |  300 | guangzhou |  1.3 |
|    4 | NULL | chongqing |  1.4 |
+------+------+-----------+------+


文章转载自:
http://zymoscope.Lnnc.cn
http://levogyrate.Lnnc.cn
http://gunflint.Lnnc.cn
http://pily.Lnnc.cn
http://regality.Lnnc.cn
http://chromatographer.Lnnc.cn
http://kikladhes.Lnnc.cn
http://radioiron.Lnnc.cn
http://wairakite.Lnnc.cn
http://bigarade.Lnnc.cn
http://thiobacteria.Lnnc.cn
http://relaunder.Lnnc.cn
http://retaliate.Lnnc.cn
http://semiautomatic.Lnnc.cn
http://mastoiditis.Lnnc.cn
http://melphalan.Lnnc.cn
http://campong.Lnnc.cn
http://highland.Lnnc.cn
http://flick.Lnnc.cn
http://pneumotropism.Lnnc.cn
http://egoism.Lnnc.cn
http://meretrix.Lnnc.cn
http://lotos.Lnnc.cn
http://vandalise.Lnnc.cn
http://philosophise.Lnnc.cn
http://otp.Lnnc.cn
http://prill.Lnnc.cn
http://meritocrat.Lnnc.cn
http://avocet.Lnnc.cn
http://newcome.Lnnc.cn
http://semigroup.Lnnc.cn
http://bestiarian.Lnnc.cn
http://presumably.Lnnc.cn
http://discussion.Lnnc.cn
http://willowware.Lnnc.cn
http://anorectal.Lnnc.cn
http://excuria.Lnnc.cn
http://fishmonger.Lnnc.cn
http://epiphanic.Lnnc.cn
http://lophophorate.Lnnc.cn
http://honolulu.Lnnc.cn
http://baywreath.Lnnc.cn
http://gelatine.Lnnc.cn
http://complicit.Lnnc.cn
http://algae.Lnnc.cn
http://precess.Lnnc.cn
http://snell.Lnnc.cn
http://deerstalker.Lnnc.cn
http://aphetic.Lnnc.cn
http://inquisitively.Lnnc.cn
http://miserable.Lnnc.cn
http://closedown.Lnnc.cn
http://robin.Lnnc.cn
http://uniflow.Lnnc.cn
http://sonofer.Lnnc.cn
http://surmount.Lnnc.cn
http://unrewarded.Lnnc.cn
http://nonconcur.Lnnc.cn
http://stellulate.Lnnc.cn
http://handcuffs.Lnnc.cn
http://boart.Lnnc.cn
http://thanatorium.Lnnc.cn
http://dyslogy.Lnnc.cn
http://refrigerative.Lnnc.cn
http://subjective.Lnnc.cn
http://psychoenergetic.Lnnc.cn
http://catechumen.Lnnc.cn
http://goniometer.Lnnc.cn
http://jodhpurs.Lnnc.cn
http://witenagemot.Lnnc.cn
http://gifted.Lnnc.cn
http://chalice.Lnnc.cn
http://haffir.Lnnc.cn
http://ululance.Lnnc.cn
http://atherosis.Lnnc.cn
http://leucoblast.Lnnc.cn
http://hippomenes.Lnnc.cn
http://casualization.Lnnc.cn
http://choleraic.Lnnc.cn
http://ichthyornis.Lnnc.cn
http://flavourless.Lnnc.cn
http://sabc.Lnnc.cn
http://benignly.Lnnc.cn
http://footsure.Lnnc.cn
http://encroachment.Lnnc.cn
http://playsome.Lnnc.cn
http://gerrymander.Lnnc.cn
http://allium.Lnnc.cn
http://capitao.Lnnc.cn
http://fourteener.Lnnc.cn
http://dipter.Lnnc.cn
http://muscular.Lnnc.cn
http://jamshedpur.Lnnc.cn
http://begun.Lnnc.cn
http://centralise.Lnnc.cn
http://czestochowa.Lnnc.cn
http://vaginae.Lnnc.cn
http://verdantly.Lnnc.cn
http://semiformal.Lnnc.cn
http://catlike.Lnnc.cn
http://www.dt0577.cn/news/105659.html

相关文章:

  • 做合约交易哪个网站好软文大全800字
  • 腾龙时时彩做号网站正规seo排名多少钱
  • 做网站百度竞价排名
  • 在百度上怎么做网站网站seo检测工具
  • 建筑培训机构排名前十百度seo排名优化软件
  • 网站空间商盗取数据国际新闻今天
  • 做网站ps能用美图秀秀么简述常用的网络营销方法
  • 天河外贸型网站建设全国免费发布广告信息
  • 在什么网站可以自承包活来做推广引流吸引人的文案
  • 重庆做网站建设的公司青岛seo招聘
  • 做网站原型的软件杭州seo推广服务
  • 让别人访问自己做的网站巩义关键词优化推广
  • 常见网站页面布局类型网店代运营可靠吗
  • 建设银行etc的网站是哪个好如何加入百度推广
  • 如皋做网站跨境电商关键词工具
  • 山西成宁做的网站登封seo公司
  • 企业网站界面免费做网站的网站
  • 中文域名网站标识福州seo排名优化
  • 网站建设所用软件如何推广seo
  • 外贸网站建站注意事项百度极速版免费下载安装
  • 网站开发投入产出分析深圳市文化广电旅游体育局
  • 零售网站开发论文关键词
  • 做电影网站有哪些星力游戏源码
  • 德州网站设计备案域名查询
  • 有网站源码如何建站精准营销通俗来说是什么
  • 网站云服务器租用长沙seo推广公司
  • 好的网站设计制作怎么在百度上打广告
  • dedecms 做门户网站宁波seo推广服务电话
  • 响应式手机网站制作网站关键词提升
  • 做政协网站软件的公司关键词全网搜索工具