DevOps 및 GraphQL API를 사용하여 애플리케이션 만들기
적용 대상:✅Microsoft Fabric의 SQL 데이터베이스
자습서의 이 섹션에서는 사용자가 만든 자산을 사용하여 중단의 영향을 받는 지역을 선택한 다음 해당 지역의 다른 공급업체를 확인하여 회사에 추가 공급망 중단을 경고할 수 있는 웹 애플리케이션을 만듭니다. 데이터를 통해 GraphQL 엔드포인트를 만든 다음 로컬 또는 클라우드 공급자에 배포할 수 있는 ASP.NET 애플리케이션을 만듭니다.
소프트웨어 개발 프로젝트에는 DevOps(개발자 작업) 작업이 포함되며, 그 중 하나는 소스 제어입니다. 만든 항목을 소스 제어 아래에 배치하여 이 섹션을 시작합니다.
이 문서에서는 Fabric의 SQL 데이터베이스를 기반으로 애플리케이션을 만드는 일련의 유용한 시나리오를 제공합니다.
필수 조건
- 이 자습서의 이전 단계를 모두 완료합니다.
- Git 통합 테넌트 설정을 사용하도록 설정합니다.
- GraphQL용 API에 대한 테넌트 관리자 설정을 사용하도록 설정합니다 .
- Microsoft Azure DevOps에서 조직 및 프로젝트를 만듭니다.
Azure DevOps를 사용하는 패브릭의 CI/CD
자습서의 이 부분에서는 Azure DevOps를 사용하여 Microsoft Fabric에서 SQL 데이터베이스를 사용하는 방법을 알아봅니다.
Microsoft Fabric의 SQL 데이터베이스에는 SQL 사용자가 시간 및 팀 전체에서 데이터베이스 개체의 정의를 추적할 수 있는 소스 제어 통합이 있습니다.
팀은 구성된 소스 제어 리포지토리(Azure DevOps)의 코드로 라이브 데이터베이스를 자동으로 변환하는 원본 제어에 데이터베이스를 커밋할 수 있습니다.
팀은 데이터베이스에 차등 변경을 적용하기 전에 Azure DevOps에서 코드의 유효성을 검사하는 소스 제어 콘텐츠에서 데이터베이스 개체를 업데이트할 수 있습니다.
Microsoft Fabric의 소스 코드 제어에 익숙하지 않은 경우 권장되는 리소스는 다음과 같습니다.
소스 제어 시작
이러한 필수 구성 요소를 완료한 후에는 작업 영역을 Azure DevOps와 동기화된 상태로 유지할 수 있습니다. 이렇게 하면 작업 영역에서 변경한 내용을 Azure DevOps 분기에 커밋하고, 누구나 Azure DevOps 분기에 대한 새 커밋을 만들 때마다 작업 영역을 업데이트할 수 있습니다.
이제 리포지토리와 데이터베이스 개체를 모두 업데이트하는 Azure DevOps를 사용하여 데이터베이스의 개체 중 하나를 편집합니다. 리포지토리에서 직접 개체를 편집하거나 해당 위치에 "푸시"할 수도 있지만, 이 경우 Azure DevOps 환경에서 모든 단계를 수행합니다.
자습서 작업 영역 보기에서 작업 영역이 소스 제어 하에 있고 모든 개체가 동기화됨으로 표시되도록 설정되어 있는지 확인합니다.
작업 영역 보기에는 git 아이콘, 선택한 분기 및 작업 영역이 소스 제어와 마지막으로 동기화된 시간에 대한 메시지가 표시됩니다. 날짜 및 시간 옆에 Azure DevOps 환경의 특정 위치에 대한 식별자 링크가 표시됩니다. 계속하려면 해당 링크를 엽니다.
요청된 경우 Azure DevOps 환경에 로그인합니다.
Azure DevOps 환경 내에서 탐색기 창에서 파일 항목을 선택합니다. 패브릭 및 리포지토리의 SQL 데이터베이스와 동기화된 개체가 표시됩니다.
suppy_chain_analytics_database 확장합니다. SQLDatabase, dbo, Tables 및 Suppliers.sql 개체
개체 내용에 있는 테이블의 T-SQL 정의를 확인합니다. 프로덕션 코딩 환경에서 이 개체는 Visual Studio 또는 Visual Studio Code와 같은 개발 도구를 사용하여 변경됩니다. 어쨌든 해당 데이터베이스 개체의 정의는 데이터베이스의 현재 상태에서 미러링한 리포지토리에 복제됩니다. Azure DevOps 소스 제어를 사용하여 다음 자습서 단계에서 데이터베이스 개체를 일부 변경해 보겠습니다.
[Fax]
열 정의 줄을 찾아 편집 단추를 선택합니다. 열 정의를 편집합니다[Fax] NVARCHAR (255) NULL,
.커밋 단추를 선택합니다.
표시되는 커밋 메시지 상자를 입력하고 커밋 단추를 선택합니다. 사용자와 팀의 이익을 위해 소스 제어의 모든 변경 내용을 설명해 보세요.
커밋은 리포지토리에 변경 내용을 씁니다.
패브릭 포털에서 SQL 데이터베이스로 다시 전환한 다음 소스 제어를 선택합니다.
하나의 업데이트가 보류 중입니다. 프로덕션 환경에서는 이러한 변경 내용을 검토합니다. 모두 업데이트 단추를 선택합니다. 업데이트에 다소 시간이 걸릴 수 있습니다.
패브릭 이름에서 SQL 데이터베이스를 선택합니다. SQL 데이터베이스에서 새 쿼리 창을 엽니다.
다음 T-SQL 코드를 복사하여 붙여넣어 테이블에 대한 변경 내용을 데이터베이스에 라이브로 표시합니다.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Suppliers';
테이블에 명명된
Notes
Suppliers
열을 추가하기 위해 쿼리하는 다음 T-SQL 코드를 입력합니다. 코드의 해당 섹션만 강조 표시하고 실행 단추를 선택합니다.ALTER TABLE Suppliers ADD Notes NVARCHAR(MAX);
이제 패브릭 포털의 자습서 작업 영역으로 돌아갑니다.
소스 제어 단추를 선택하고 업데이트 대신 시스템에 변경 요청이 표시되는 것을 확인합니다. 개체 이름 옆에 있는 확인란을 선택한 다음 커밋 단추를 선택합니다.
시스템은 쿼리 편집기에서 변경한 내용을 커밋하고 Azure DevOps 포털로 돌아가 파일 영역과 스키마, 테이블
Suppliers
및dbo
개체로 이동하여 새 열을 볼 수 있습니다. (변경 내용을 보려면 페이지를 새로 고쳐야 할 수도 있습니다.)
이제 Azure DevOps의 소스 제어에서 SQL Database 개체 스키마와 상호 작용하는 방법을 살펴보았습니다. Microsoft Fabric의 소스 제어에 대한 자세한 내용은 Microsoft Fabric 및 자습서: 패브릭의 수명 주기 관리에서 SQL Database 원본 제어 통합을 참조하세요.
GraphQL API 설정 및 구성
데이터베이스 애플리케이션에 연결하려면 데이터베이스와 직접 상호 작용하는 TDS(테이블 형식 데이터 스트림) 프로토콜을 사용하는 애플리케이션용 라이브러리 집합을 설치하는 경우가 많습니다.
Microsoft Fabric에는 데이터베이스뿐만 아니라 여러 데이터 원본으로 작업하기 위한 GraphQL 인터페이스가 포함되어 있습니다. 이러한 원본을 통합 데이터 뷰에 결합할 수도 있습니다. GraphQL은 API에 대한 쿼리 언어로, 필요한 데이터를 정확하게 요청할 수 있으므로 시간이 지남에 따라 API를 더 쉽게 발전시키고 강력한 개발자 도구를 사용할 수 있습니다. API의 데이터에 대한 완전하고 이해할 수 있는 설명을 제공하여 클라이언트가 필요한 항목과 그 이상을 정확히 요청할 수 있는 권한을 제공합니다. 따라서 GraphQL을 사용하는 앱은 서버가 아니라 가져오는 데이터를 제어하기 때문에 빠르고 안정적입니다. GraphQL 인터페이스는 데이터 원본에 포함된 데이터 집합의 보기를 제공하는 것으로 생각할 수 있습니다. 데이터를 쿼리하고 변형을 사용하여 데이터를 변경할 수 있습니다. 이 참조에서 GraphQL에 대해 자세히 알아볼 수 있습니다.
패브릭 SQL 쿼리 편집기 내에서 직접 GraphQL API 빌드를 시작할 수 있습니다. Fabric은 데이터에 따라 자동으로 GraphQL 스키마를 빌드하고 애플리케이션은 몇 분 안에 연결할 준비가 됩니다.
GraphQL용 API 만들기
애플리케이션에 사용할 GraphQL용 API를 만들려면 다음을 수행합니다.
자습서 데이터베이스 포털을 엽니다.
새로 만들기 단추를 선택하고 GraphQL용 API를 선택합니다.
항목의 이름에 대한 텍스트 supplier_impact_gql 입력하고 만들기를 선택합니다.
데이터 선택 패널이 표시됩니다. 이 자습서의 앞부분에서 만든 보기인 찾을
SupplyChain.vProductsBySuppliers
때까지 스크롤합니다. 이 폴더를 선택합니다.로드 단추를 선택합니다.
Query1 패널에서 표시되는 텍스트를 다음 GraphQL 쿼리 문자열로 바꿉니다.
query { vProductsbySuppliers(filter: { SupplierLocationID: { eq: 7 } }) { items { CompanyName SupplierLocationID ProductCount } } }
Query1 창에서 실행 단추를 선택합니다. GraphQL 쿼리의 결과는 JSON 형식의 결과 창으로 반환됩니다.
리본에서 엔드포인트 복사 단추를 선택합니다.
링크 복사 패널이 나타나면 복사 단추를 선택합니다. 이 자습서의 샘플 애플리케이션에서 사용할 메모장이나 다른 위치에 이 문자열을 저장합니다. 예를 들어 다음과 유사하게 표시됩니다.
https://api.fabric.microsoft.com/v1/workspaces/<work space id>/graphqlapis/<graph api id>/graphql
이제 GraphQL용 API가 연결 및 요청을 수락할 준비가 되었습니다. API 편집기를 사용하여 GraphQL 쿼리 및 스키마 탐색기를 테스트하고 프로토타입을 생성하여 API에 노출된 데이터 형식 및 필드를 확인할 수 있습니다. 자세한 내용은 패브릭 포털의 SQL 데이터베이스에서 GraphQL API 만들기를 참조하세요.
데이터를 쿼리하는 웹 애플리케이션 만들기
지금까지 이 자습서에서는 Contoso의 판매 및 제품을 저장하는 데이터베이스를 만들고 T-SQL(Transact-SQL)을 사용하여 공급업체 및 조인 엔터티를 추가했습니다. 이제 개발자가 T-SQL을 학습하지 않고도 데이터를 사용할 수 있도록 허용하고 단일 인터페이스에서 여러 Microsoft Fabric 구성 요소를 쿼리할 수도 있습니다. 이 자습서에서 만든 GraphQL 엔드포인트에 액세스하는 자체 호스팅 .NET REST 인터페이스에서 이 애플리케이션을 로컬로 실행합니다. 이 애플리케이션을 웹 애플리케이션으로 Microsoft Azure에 직접 배포하거나 원하는 다른 웹 서버에 배포할 수도 있습니다.
GraphQL용 패브릭 API에서 SQL 데이터베이스를 사용하여 웹 애플리케이션 만들기
자연 재해 또는 기타 중단으로 인해 위치에 공급망 중단이 있는 경우 영향을 받는 모든 공급업체를 표시하는 애플리케이션을 만들라는 요청을 받았습니다. 이 코드는 GraphQL 쿼리를 사용하여 자습서의 마지막 섹션에서 만든 SQL In Fabric GraphQL 엔드포인트의 쿼리에 액세스하는 ASP.NET 애플리케이션을 만드는 방법을 보여 줍니다.
- 운영 체제에 적합한 .NET SDK를 설치합니다.
- 이 위치에서 리소스를 열고 표시되는 모든 단계를 따릅니다.
이 자습서의 애플리케이션 샘플 스크린샷은 다음과 같습니다.