블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Notice

2011.05.27 08:30 Microsft Azure/SQL Databases

SQL Azure 데이터 이용(3)

 

이번에는 SQL Azure의 데이터를 Windows Azure 프로젝트의 ASP.NET MVC 응용프로그램에서 데이터를 이용하는 내용을 알아보도록 하겠습니다.

앞에서 살펴보았듯이 기존 ASP.NET MVC 응용 프로그램과 별 차이가 없는 것을 확인 가능합니다.

Cloud 폴더의 Windows Azure 프로젝트를 생성합니다. 프로젝트 이름은 SQLAzureMVC 으로 지정합니다.

Windows Azure 프로젝트에서는 ASP.NET MVC 웹 역할을 추가합니다.

ASP.NET MVC 웹 역할의 이름은 SQLAZMVCWeb 로 아래와 같이 지정합니다.

 

Models 폴더에 View에서 나타낼 Product 클래스를 아래와 같이 선언합니다. 필요하다면 ProductSubCategory 클래스나 ModelView 클래스를 추가해야 합니다.

 

 

SQL Azure에 있는 데이터를 호출하기 위해 clsProduct에서 Enterprise Library Data Access Block을 이용해서 web.config 에 있는 연결 문자열을 통해 액세스합니다.

 

Controller를 생성하기 위해 Controllers 폴더를 오른쪽 클릭, 추가에서 컨트롤러를 선택하고 이름은 ProductController로 지정합니다.

 

ProductController Index에서는 아래와 같은 형태로 DropDownlist의 데이터는 ViewData로 처리하고 Product List View로 보내주는 내용을 구성합니다. 그리고 DropDownList Change 했을 경우 POST 방식으로 처리되는 Index 메서드를 정의합니다.

public ActionResult Index()

        {

 

clsProduct product = new clsProduct();

 

var d = from p in product.GetProductSubCategory().Tables[0].AsEnumerable()

select new ProductSubCategoryModel

{

Name = p.Field<string>("Name"), 
ProductCategoryID = p.Field<int>("ProductCategoryID")

};

 

ViewData["SubCategories"] = new SelectList(d.ToList(),"ProductCategoryID", "Name");

string  ddlCategory = d.ToList().First().ProductCategoryID.ToString();

           

 

var products = from g in product.GetProducts(ddlCategory).Tables[0].AsEnumerable()

 select new ProductModel

{

Name = g.Field<string>("Name"),

ProductID = g.Field<int>("ProductID"),

ProductNumber = g.Field<string>("ProductNumber"),

Size = g.Field<string>("Size"),

Color = g.Field<string>("Color"),

StandardCost = g.Field<decimal>("StandardCost"),

ListPrice = g.Field<decimal>("ListPrice")

}; 

return View(products.ToList());

}

 

Views 폴더에 View를 생성해보도록 하겠습니다. Index 메서드에서 오른쪽 클릭하여 뷰 추가 메뉴를 클릭합니다.

강력한 형식의 뷰 만들기에서 ProductModel를 선택하고 뷰 콘텐츠에서는 List 를 선택합니다.

 

 Views 폴더의 Product 폴더의 Index.aspx의 코드를 살펴보고 DropDownList 관련 내용을 추가합니다.

<% Html.BeginForm();  %>

   <p><%=Html.DropDownList("ddlCategory",(IEnumerable<SelectListItem>)ViewData["SubCategories"], new { onchange = "this.form.submit()" })  %></p>

 

 

 

로컬에서 실행해서 결과를 확인합니다.

 

자 이제 Windows Azure ASP.NET MVC Web Role에 대한 내용을 배포해봅니다.

배포에 대한 일반적인 내용은 아래 블로그를 참조하면 됩니다.
http://redju.tistory.com/56
ServiceConfiguration.cscfg
파일에서 인스턴스를 2로 수정하고 솔루션 탐색기의 SQLAzureMVC 프로젝트를 오른쪽 클릭하고 게시를 클릭하여 패키지를 생성합니다.

 

Windows Azure 사이트로 이동(http://windows.azure.com/) 하여 하여 New Hosted Service를 클릭하여 서비스 이름과 패키지 경로 등을 아래와 같이 지정합니다.

 

Staging에서 Ready 상태로 되었고 오른쪽 속성 창을 통해 테스트를 해볼 수 있습니다.

SWAP IP를 클릭하여 Staging에서 Production 환경으로 변경하여 결과를 확인합니다.

 

 

SQL Azure의 데이터를 이용하는 클라우드 ASP.NET MVC 웹 역할을 생성하고 배포해보았습니다.

신고
posted by 정홍주
2011.05.20 08:30 Microsft Azure/SQL Databases

SQL Azure 데이터 이용(2)

 

SQL Azure 에 데이터를 이전했고 Windows Azure 프로젝트를 통해 클라우드 웹 응용프로그램에서 데이터를 이용하는 내용을 알아보도록 하겠습니다.

VS 2010을 이용해서 Windows Azure 응용 프로그램을 생성합니다. 이를 통해 클라우드에 있는 SQL Azure 데이터를 클라우드 웹 응용프로그램에서 나타내보도록 하겠습니다.

Cloud 폴더의 Windows Azure 프로젝트를 생성합니다. 프로젝트 이름은 SQLAZWeb으로 지정합니다.



Windows Azure 프로젝트에서는 ASP.NET 웹 역할을 추가합니다.

웹 역할의 이름은 AdventureWorks로 아래와 같이 지정합니다.

 

Default.aspx 의 디자인은 ScriptManager, UpdatePanel 에 추가로 DropdownList, GridView 컨트롤을 아래와 같이 배치합니다.

 

연결 문자열과 클래스 파일 등은 SQL Azure 데이터 이용(1)과 동일합니다. 배포에 대한 내용만 다를 뿐입니다. 일반적인 내용은 생략합니다.

Default.aspx.cs로 이동하여 아래와 같이 필드를 선언하고 Page_Load에 아래와 같은 코드를 작성합니다. DropdownList SQL Azure의 데이터를 나타내는 내용입니다.

public partial class _Default : System.Web.UI.Page

    {

        clsProduct product = new clsProduct();

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!Page.IsPostBack)

            {

                ddlSubCategory.DataSource = product.GetProductSubCategory().Tables[0];

                ddlSubCategory.DataTextField = "Name";

                ddlSubCategory.DataValueField = "ProductCategoryID";

                ddlSubCategory.DataBind();

 

                GetProductData();

            }

        }

 

또한 DropdownList SelectedIndexChanged 이벤트를 발생시켜 아래와 같이 코드를 작성합니다.

protected void ddlSubCategory_SelectedIndexChanged(object sender, EventArgs e)

        {

            GetProductData();

 

        }

 

GetProductData 메서드는 Products 리스트를 얻어 오는 내용이며 아래와 같이 코드를 작성합니다.

private void GetProductData()

        {

            DataSet ds = product.GetProducts(ddlSubCategory.SelectedValue);

            GridView1.DataSource = ds.Tables[0];

            GridView1.DataBind();

        }

 

 

로컬에서 실행해서 결과를 확인합니다.

 

자 이제 Windows Azure Web Role에 대한 내용을 배포해봅니다.

배포에 대한 일반적인 내용은 아래 블로그를 참조하면 됩니다.

http://redju.tistory.com/56

솔루션 탐색기의 SQLAZWeb 프로젝트를 오른쪽 클릭하고 게시를 클릭하여 패키지를 생성합니다.

 

Windows Azure 사이트로 이동(http://windows.azure.com/) 하여 하여 New Hosted Service를 클릭하여 서비스 이름과 패키지 경로 등을 아래와 같이 지정합니다. 인스턴스의 수는 구성 파일에서 미리 지정해도 됩니다.

 

Staging에서 Ready 상태로 되었고 오른쪽 속성 창을 통해 테스트를 해볼 수 있습니다.

테스트 결과는 아래와 같습니다. 

SWAP IP를 클릭하여 Staging에서 Production 환경으로 변경하여 결과를 확인합니다. 인스턴스를 2로 수정해서 Upgrade를 했습니다. 


 

SQL Azure를 이용하여 ASP.NET 웹 역할을 생성하고 배포해보았습니다. SQL Azure라고 코드에 대한 내용이 별도 다르지 않고 ADO.NET으로 액세스 할 수 있습니다.

 

신고
posted by 정홍주
2011.01.23 22:18 Microsft Azure/SQL Databases
UPDATE 다른 곳에 썻던 내용을 이곳에 통합하기 위해 옮겼습니다.


Excel 2010 PowerPivot은 별도의 Add-in을 설치하면 Excel 2010에서 사용할 수 있는 도구입니다.

아래의 사이트에서 다음과 같은 내용을 얘기하고 있습니다.

http://www.powerpivot.co.kr/

 

PowerPivot for Excel은 많은 사용자들을 확보하고 있는 Microsoft Excel 내에서 가히 독보적인 연산 능력을 직접 발휘할 수 있도록 하는 데이터 분석 도구입니다. Office와 동일한 사용자 인터페이스, 피벗 테이블 및 피벗 차트 보기, 슬라이서 등과 같이 이미 잘 알고 있는 Excel 기능을 사용하여 손쉽게 데이터를 분석할 수 있습니다.

 

제가 말씀드릴 내용은 SQL Azure의 데이터를 Excel 2010 PowerPivot에서도 문제없이 접근할 수 있다는 것입니다.

아래 그림은 PowerPivot 창의 화면입니다.

*PowerPivot 탭은 PowerPivot을 설치해야 나옵니다.

 

[외부 데이터 가져오기] 그룹의 기타 원본을 클릭하면 아래와 같이 SQL Azure에 대한 내용을 볼 수 있습니다.



SQL Azure를 선택하고 서버이름과 인증 정보, 데이터베이스를 선택합니다.

(SQL Azure의 방화벽이 설정되어 있어야 연결할 수 있습니다.)



SQL Azure에 있는 테이블을 선택합니다. 여기서는 CategorySubCategory 를 선택합니다. 그리고 클라우드가 아닌 로컬 네트워크에 있는 Product 테이블을 선택해서 관계를 적용할 것입니다.로컬 네트워크의 테이블과 연결하는 것은 PowerPivot에서 다양한 데이터 원본을 통해(클라우드 포함해서) Self-분석이 가능하다는 것을 알아보기 위함입니다.


데이터를 가져오기 할 경우에 “XML 구문 분석에 대한 에러가 발생할 경우는 SQL Server 2008 R2 기능 팩의 Microsoft® SQL Server® 2008 R2 Microsoft® Analysis Services OLE DB 공급자를 다운로드 받아 설치하면 됩니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52


잘 가져오면 아래와 같이 성공으로 나타납니다.



데이터 가져오기 결과는 아래와 같습니다.


클라우드 환경이 아닌 로컬 데이터베이스에 있는 Product 테이블을 가져오기 했습니다.



디자인 탭의 관계 만들기를 통해 PowerPivot 테이블 간의 관계(FK)를 정의했습니다.


클라우드의 SQL Azure 를 이용해서 피벗 테이블을 구성한 결과는 아래와 같습니다. 또한 Excel 2010의 슬라이서를 이용했습니다.



이상으로 SQL Azure의 활용 측면으로 Excel 2010의 PowerPivot을 이용해서 SQL Azure의 데이터를 연결하는 내용을 알아보았습니다.

다음은 SQL Reporting Services 에서 SQL Azure 데이터를 나타내보도록 하겠습니다.







 


신고
posted by 정홍주
2011.01.23 21:58 Microsft Azure/SQL Databases

UPDATE 다른 곳에 썻던 내용을 이곳에 통합하기 위해 옮겼습니다.

SQL Azure에 대해 어느 정도 살펴보았으며 간단하게 현재 운영하고 있는 SQL Server와 비교를 나열해보려고 합니다. 현재 CTP를 살펴본 내용으로 저와 생각이 상이할 수 있습니다.

그리고 실제 운영한다면 많이 차이점을 구체적으로 느낄 것 같습니다.


먼저 SQL Azure의 이점을 아래에서 살펴봅니다.

 

1.     관리적 요소와 확장성

패치 등등 많은 관리적 오버헤드 없이 손쉽게 엔터프라이즈의 데이터 서비스 응용프로그램 기능을 제공할 수 있습니다. 그리고 저장소 증가로 인한 비용은 현재 사용하고 있는 저장소에 대한 비용만을 지불하면 됩니다. 초기 비용에 대한 감소가 매력적으로도 보입니다. 데이터 센터인데 관리적으로 별 신경 안써도 된다는 것이라고 생각됩니다.

 

2.     고 가용성

SQL Azure 는 물리적으로 여러 복사본이 생성되어 비즈니스 연속성과 고 가용성을 제공해주고 있습니다. 하드웨어 고장시 자동 Failover를 제공합니다. 이 또한 관리적 요소와 초기 비용의 감소를 제공합니다.

 

3.     개발 및 관계형 데이터 모델

SQL Azure TDS를 통해 Client Server 사이 통신을 지원함으로 익숙한 개발 모델로 접근할 수 있습니다. Visual Studio 2010을 통해 ADO.NET으로 접근한다면 거의 동일한 코드를 사용하게 됩니다. 개발 모델에서는 별 차이를 느끼지 못합니다. 그리고 SSIS를 통해서도 SQL Azure를 접근할 수 있습니다.
SQL Azure
를 개체 탐색기에 연결하면 관리하고 있는 여러 인스턴스 중의 하나로 보입니다. 또한 로컬의 데이터베이스와 유사하게 테이블, , 저장 프로시저, 인덱스 등을 생성할 수 있습니다. 하지만 조금 차이점이 있으며 아래에서 T-SQL 의 지원 내용을 알아봅니다.

 

지원되는 T-SQL 기능

지원되지 않는 T-SQL 기능

  • Constants
  • Constraints
  • Cursors
  • Index management and rebuilding indexes
  • Local temporary tables
  • Reserved keywords
  • Stored procedures
  • Statistics management
  • Transactions
  • Triggers
  • Tables, joins, and table variables
  • Transact-SQL language elements such as
    • Create/drop databases
    • Create/alter/drop tables
    • Create/alter/drop users and logins
    • and so on.
  • User-defined functions
  • Views, including sys.synonyms view
  • Common Language Runtime (CLR)
  • Database file placement
  • Database mirroring
  • Distributed queries
  • Distributed transactions
  • Filegroup management
  • Global temporary tables
  • Spatial data and indexes
  • SQL Server configuration options
  • SQL Server Service Broker
  • System tables
  • Trace Flags







아래 주소에서 보다 더 구체적으로 T-SQL 지원 내용에 대해서 알아볼 수 있습니다.

http://msdn.microsoft.com/en-us/library/ee336281(lightweight).aspx




신고
posted by 정홍주
2011.01.23 21:57 Microsft Azure/SQL Databases

UPDATE 다른 곳에 썻던 내용을 이곳에 통합하기 위해 옮겼습니다.

앞에서 SQL Azure Data Platform에 대한 내용을 살펴보았고 이제는

SQL Azure에 데이터베이스와 데이터가 있으므로 응용 프로그램에서 액세스 해보도록 하겠습니다.

 

응용 프로그램이 Cloud 환경이 아닌 모습이라면 Far Application 이라고 말하며

SQL Azure 와 응용 프로그램이 같은 Cloud 환경이라면 Near Application 이라고 말합니다.

 

Visual Studio 2010으로 ASP.NET Web Role Application을 생성하여 Far, Near 응용 프로그램을 처리해보도록 하겠습니다.

 

먼저 등록된 SQL Azure의 데이터 쿼리 결과입니다.



위의 데이터를 Cloud Service ASP.NET Web Role 에서 액세스하고 Cloud로 게시해봅니다.

 

먼저 Visual Studio 2010에서 Cloud Service > Windows Cloud Azure Service 에서 ASP.NET Web Role 프로젝트를 생성합니다.




Web Role Default.aspx 에 대한 페이지는 많은 내용 없이 SQL Azure를 연결하여 Category 데이터와 SubCategory 데이터를 표시해주는 것으로 구성해보겠습니다.

 

Default.aspx의 화면 디자인은 DropDownList GridView 컨트롤을 배치합니다.




아래처럼 간단한 ADO.NET 프로그래밍을 통해 저장 프로시저를 호출하여 DropDownList1 GridView1에 데이터를 바인딩 합니다. 연결 문자열은 Web.ConfigconnectionStrings 섹션에 위치시킵니다. 로컬 데이터베이스에서 테스트하고 SQL Azure 의 연결 문자열로 변경하도록 합니다.


로컬 데이터베이스에서 테스트하고 SQL Azure로 결과를 테스트하면 아래와 같은 결과를 볼 수 있으며 아래 형태가 Cloud와 코드가 멀리 있는 Far Application 형태가 됩니다. 웹뿐만 아니라 Cloud의 여러 서비스가 있다면 Windows Form에서도 액세스 가능하다는 것을 알 수 있습니다.



이제 Near Application으로 Windows Azure로 게시해봅니다. 솔루션 탐색기에서 게시를 선택해서 Windows Azure 사이트의 서비스에 cspkg 확장자 파일과 cscfg 확장자 파일을 업로드하고 게시합니다.



Production에도 게시를 하여 Azure URL로 접속하면 아래와 같은 결과를 얻을 수 있습니다.
물론 SQL Azure에 대한 방화벽 설정을 해주어야 합니다.~




요약하면 데이터베이스와 데이터가 게시된 SQL Azure를 이용하는 Cloud Application을 생성해보았습니다.



신고
posted by 정홍주
prev 1 next

티스토리 툴바