Bug fixes. Refactored of scripts & README content.

This commit is contained in:
Umachandar Jayachandran
2018-11-06 21:55:36 -08:00
parent 8b7658d7e4
commit 17695fb7ad
21 changed files with 157 additions and 117 deletions
@@ -1,10 +1,10 @@
# Data virtualization in SQL Server 2019 big data cluster
In SQL Server 2019 big data clusters, the SQL Server engine has gained the ability to natively read HDFS files, such as CSV and parquet files, by using SQL Server instances collocated on each of the HDFS data nodes to filter and aggregate data locally in parallel across all of the HDFS data nodes. SQL Server 2019 introduces new ODBC connectors to data sources like SQL Server, Oracle, MongoDB and Teradata.
In SQL Server 2019 big data clusters, the SQL Server engine has gained the ability to natively read HDFS files, such as CSV and parquet files, by using SQL Server instances collocated on each of the HDFS data nodes to filter and aggregate data locally in parallel across all of the HDFS data nodes.
## Query data in HDFS from SQL Server master
**Applies to: SQL Server 2019 big data cluster**
**Applies to:** SQL Server 2019 big data cluster
In SQL Server 2019 big data cluster, the storage pool consists of HDFS data node with SQL Server & Spark endpoints. In this example, you are going to create an external table in the SQL Server Master instance that points to data in HDFS within the SQL Server Big data cluster. You will then join the data in the external table with high value data in SQL Master instance.
@@ -21,3 +21,5 @@ In SQL Server 2019 big data cluster, the storage pool consists of HDFS data node
1. Execute the [web-clickstreams-parquet.sql](web-clickstreams-hdfs-parquet.sql). This script demonstrates how to read parquet file(s) stored in HDFS.
1. Execute the [product-reviews-hdfs-csv.sql](product-reviews-hdfs-csv.sql). This script demonstrates how to read CSV file(s) stored in HDFS.
1. Execute the [product-reviews-hdfs-parquet.sql](product-reviews-hdfs-parquet.sql). This script demonstrates how to read parquet file(s) stored in HDFS.
@@ -19,14 +19,15 @@ IF NOT EXISTS(SELECT * FROM sys.external_file_formats WHERE name = 'csv_file')
-- is a special data source that is available in any new database in
-- SQL Master instance.
--
CREATE EXTERNAL TABLE [product_reviews_hdfs_csv]
("pr_review_sk" BIGINT , "pr_review_content" varchar(8000))
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/product_review_data',
FILE_FORMAT = csv_file
);
IF NOT EXISTS(SELECT * FROM sys.external_tables WHERE name = 'product_reviews_hdfs_csv')
CREATE EXTERNAL TABLE [product_reviews_hdfs_csv]
("pr_review_sk" BIGINT , "pr_review_content" varchar(8000))
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/product_review_data',
FILE_FORMAT = csv_file
);
GO
-- Join external table with local tables
@@ -38,5 +39,8 @@ SELECT
ON pc.pr_review_sk = p.pr_review_sk;
GO
-- Cleanup
/*
DROP EXTERNAL TABLE [dbo].[product_reviews_hdfs_csv];
GO
GO
*/
@@ -15,14 +15,15 @@ IF NOT EXISTS(SELECT * FROM sys.external_file_formats WHERE name = 'parquet_file
-- is a special data source that is available in any new database in
-- SQL Master instance.
--
CREATE EXTERNAL TABLE [product_reviews_hdfs_parquet]
("pr_review_sk" BIGINT , "pr_review_content" varchar(8000))
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/user/hive/warehouse/product_review_data',
FILE_FORMAT = parquet_file
);
IF NOT EXISTS(SELECT * FROM sys.external_tables WHERE name = 'product_reviews_hdfs_parquet')
CREATE EXTERNAL TABLE [product_reviews_hdfs_parquet]
("pr_review_sk" BIGINT , "pr_review_content" varchar(8000))
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/user/hive/warehouse/product_reviews',
FILE_FORMAT = parquet_file
);
GO
-- Join external table with local tables
@@ -34,5 +35,8 @@ SELECT
ON pc.pr_review_sk = p.pr_review_sk;
GO
-- Cleanup
/*
DROP EXTERNAL TABLE [dbo].[product_reviews_hdfs_parquet];
GO
GO
*/
@@ -18,14 +18,15 @@ IF NOT EXISTS(SELECT * FROM sys.external_file_formats WHERE name = 'csv_file')
-- is a special data source that is available in any new database in
-- SQL Master instance.
--
CREATE EXTERNAL TABLE [web_clickstreams_hdfs_csv]
("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT)
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/clickstream_data',
FILE_FORMAT = csv_file
);
IF NOT EXISTS(SELECT * FROM sys.external_tables WHERE name = 'web_clickstreams_hdfs_csv')
CREATE EXTERNAL TABLE [web_clickstreams_hdfs_csv]
("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT)
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/clickstream_data',
FILE_FORMAT = csv_file
);
GO
-- Join external table with local tables
@@ -48,5 +49,8 @@ SELECT
GROUP BY wcs_user_sk;
GO
-- Cleanup
/*
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs_csv];
GO
GO
*/
@@ -14,14 +14,15 @@ IF NOT EXISTS(SELECT * FROM sys.external_file_formats WHERE name = 'parquet_file
-- is a special data source that is available in any new database in
-- SQL Master instance.
--
CREATE EXTERNAL TABLE [web_clickstreams_hdfs_parquet]
("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT)
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/user/hive/warehouse/web_clickstreams',
FILE_FORMAT = parquet_file
);
IF NOT EXISTS(SELECT * FROM sys.external_tables WHERE name = 'web_clickstreams_hdfs_parquet')
CREATE EXTERNAL TABLE [web_clickstreams_hdfs_parquet]
("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT)
WITH
(
DATA_SOURCE = SqlStoragePool,
LOCATION = '/user/hive/warehouse/web_clickstreams',
FILE_FORMAT = parquet_file
);
GO
-- Join external table with local tables
@@ -44,5 +45,8 @@ SELECT
GROUP BY wcs_user_sk;
GO
-- Cleanup
/*
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs_parquet];
GO
GO
*/